Ubuntu搭建Spark运行环境
前言
因为之前研究的方向是分布式系统,重点放在了Hadoop分布式文件系统上。现如今,社会对机器学习的需求势如破竹。为了调整研究方向,而且不抛弃原本的研究成果,研究反向便从分布式系统转为分布式机器学习算法(刚起步,可能这种说法会不太正确)。Spark MLlib是Apache Spark的可扩展的机器学习库,并提供有Scala,Java,Python的API。Mahout 是 Apache旗下的一个开源项目,提供了一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。因此,从今往后重点将会放在Spark Mlib和Mahout上。本文着重描述Spark环境的搭建以及环境测试。
1 基本环境搭建
1.1 环境变量配置
使用vim编辑环境变量文件:/etc/profile:
1 #install vim 2 sudo apt-get install vim 3 #edit env. profile 4 sudo vim /etc/profile
在/etc/profile文件末尾添加如下内容(为了方便以后更深入学习机器学习,以下配置文件包含protobuf,Mahout等配置。注意:各软件的安装位置需要按需修改):
1 #Java env. 2 export JAVA_HOME=/your_Java_home 3 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 4 export PATH=$JAVA_HOME/bin:/usr/local/protobuf/bin:$PATH 5 6 #Scala env. 7 export SCALA_HOME=/your_Scala_home 8 export PATH=$SCALA_HOME/bin:$PATH 9 10 #Spark env. 11 export SPARK_HOME=/your_Spark_home 12 export PATH=$SPARK_HOME/bin:$PATH 13 14 #Python env. 15 export PYTHONPATH=/your_python_home 16 17 #Hadoop env. 18 export HADOOP_HOME=/your_hadoop_home 19 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 20 export PATH=$PATH:$HADOOP_HOME/bin 21 export HADOOP_HOME_WARN_SUPPRESS=not_null 22 23 #Mahout env. 24 export MAHOUT_HOME=/your_Mahout_home 25 export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf 26 export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
由于进行Spark基本环境测试时,使用了Hadoop文件操作功能(上传),另需部署Hadoop伪分布式环境。本文着重描述Spark环境搭建,因此不再赘述Hadoop环境搭建。
2 基本环境测试及结果
2.1 启动Hadoop
首先,进入Hadoop根目录,如图红框所示。
其次,使用如下命令启动Hadoop。(备注:注释行命令也可启动Hadoop,不过此方法已经被取代了。)
最后,通过jps查看Hadoop各个组件是否正确启动。若出现异常,请查阅相关官方文档。
1 #./sbin/start-all.sh 2 ./sbin/start-dfs.sh
2.2 启动Spark
由于环境变量配置好了,因此直接使用pyspark启动python shell模式的spark。(官方文档中提供有Scala模式的spark启动模式)
至此,命令行环境搭建已经完毕。可使用官方文档提供的案例进行测试。注意:需要提前上传测试文件到HDFS。可查阅相关的Hadoop Shell命令。
3 IDE环境搭建
3.1 Edit Configurations
红框是需要注意的地方。
重点一:需要新建一个空python文件才能进行配置。
重点二:Environment variables中的PYTHONPATH是配置Spark根目录下的python。
3.2 Project Settings
为了确保测试代码的库都完整导入,需要进行Project的Settings修改。
File->Settings->Project Structure->如图所示,将spark路径下的py4j和pyspark库添加到Add Conetent Root中。(若此步骤之后仍有报错,可能需要先使用pip install py4j。)
4 IDE环境测试及结果
4.1 Word Count测试
重点一:sc位于pyspark.shell中。
重点二:若textFile指定HDFS上的文件,需要事先上传测试文件。(官方文档中写明,可以使用本地文件)
重点三:saveAsTextFile将结果存储到HDFS上时,不能多次存到同一个文件夹。(注意:这个名字是文件夹,结果会有三个文件,或者更多个文件?)
重点四:Process finished with exit code 0。此时才表示成功执行测试案例。
4.2 查看测试结果集
使用Hadoop Shell命令查看wc_output_02文件夹下,存在三个文件。可进一步使用cat命令查看结果。
总结
整个环境搭建过程中,未遇到特大的问题。官方文档中提供的Examples可以在命令行中直接使用,但在pycharm上则需要添加部分语句,不过算是比较容易解决的小问题。
本文来自博客园,作者:蔡斌冰,转载请注明原文链接:https://www.cnblogs.com/caibinbing/p/7143307.html