spark环境配置Word文档格式.docx
《spark环境配置Word文档格式.docx》由会员分享,可在线阅读,更多相关《spark环境配置Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
并保存到home目录.
$tar-zxfscala-2.9.3.tgz$sudomvscala-2.9.3/usr/lib$sudovim/etc/profile#addthefollowinglinesattheendexportSCALA_HOME=/usr/lib/scala-2.9.3exportPATH=$PATH:
$SCALA_HOME/bin#saveandexitvim#makethebashprofiletakeeffectimmediatelysource/etc/profile#test$scala-version
3.下载预编译好的Spark
下载预编译好的Spark,
spark-0.7.2-prebuilt-hadoop1.tgz.
如果你想从零开始编译,则下载源码包,但是我不建议你这么做,因为有一个Maven仓库,twitter4j.org,被墙了,导致编译时需要翻墙,非常麻烦。
如果你有DIY精神,并能顺利翻墙,则可以试试这种方式。
4.本地模式
4.1解压
$tar-zxfspark-0.7.2-prebuilt-hadoop1.tgz
4.2设置SPARK_EXAMPLES_JAR环境变量
$gedit/etc/profile#addthefollowinglinesattheendexportSPARK_EXAMPLES_JAR=/home/jay/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar#saveandexitvim#makethebashprofiletakeeffectimmediately$source/etc/profile
这一步其实最关键,很不幸的是,官方文档和网上的博客,都没有提及这一点。
我是偶然看到了这两篇帖子,RunningSparkPi,
Nullpointerexceptionwhenrunning./runspark.examples.SparkPilocal,才补上了这一步,之前死活都无法运行SparkPi。
4.3(可选)设置SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH
$gedit/etc/profile#addthefollowinglinesattheendexportSPARK_HOME=/home/jay/spark-0.7.2exportPATH=$PATH:
$SPARK_HOME/bin#saveandexitvim#makethebashprofiletakeeffectimmediately$source/etc/profile
4.4现在可以运行SparkPi了
$cd~/spark-0.7.2$./runspark.examples.SparkPilocal
5.集群模式
5.1安装Hadoop
用VMwareWorkstation创建三台CentOS虚拟机,hostname分别设置为master,slave01,slave02,设置SSH无密码登陆,安装hadoop,然后启动hadoop集群。
参考我的这篇博客,在CentOS上安装Hadoop.
5.2Scala
在三台机器上都要安装Scala2.9.3,按照第2节的步骤。
JDK在安装Hadoop时已经安装了。
5.3在master上安装并配置Spark
解压
设置SPARK_EXAMPLES_JAR环境变量
在in
conf/spark-env.sh
中设置SCALA_HOME
$cd~/spark-0.7.2/conf$mvspark-env.sh.templatespark-env.sh$vimspark-env.sh#addthefollowinglineexportSCALA_HOME=/usr/lib/scala-2.9.3#saveandexit
在conf/slaves,添加Sparkworker的hostname,一行一个。
$vimslavesslave01slave02#saveandexit
(可选)设置SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH
5.4在所有worker上安装并配置Spark
既然master上的这个文件件已经配置好了,把它拷贝到所有的worker。
注意,三台机器spark所在目录必须一致,因为master会登陆到worker上执行命令,master认为worker的spark路径与自己一样。
$cd$scp-rspark-0.7.2dev@slave01:
~$scp-rspark-0.7.2dev@slave02:
~
按照第5.3节设置SPARK_EXAMPLES_JAR环境变量,配置文件不用配置了,因为是直接从master复制过来的,已经配置好了。
5.5启动Spark集群
在master上执行
$cd~/spark-0.7.2$bin/start-all.sh
检测进程是否启动
$jps11055Jps2313SecondaryNameNode2409JobTracker2152NameNode4822Master
浏览master的webUI(默认http:
//localhost:
8080).这是你应该可以看到所有的word节点,以及他们的CPU个数和内存等信息。
##5.6运行SparkPi例子
$cd~/spark-0.7.2$./runspark.examples.SparkPispark:
//fang:
7077
(可选)运行自带的例子,SparkLR和SparkKMeans.
#LogisticRegression#./runspark.examples.SparkLRspark:
7077#kmeans$./runspark.examples.SparkKMeansspark:
7077./kmeans_data.txt21
5.7从HDFS读取文件并运行WordCount
$cd~/spark-0.7.2$hadoopfs-putREADME.md.$MASTER=spark:
7077./spark-shellscala>
valfile=sc.textFile("
hdfs:
//master:
9000/user/dev/README.md"
)scala>
valcount=file.flatMap(line=>
line.split("
"
)).map(word=>
(word,1)).reduceByKey(_+_)scala>
count.collect()
5.8停止Spark集群
$cd~/spark-0.7.2$bin/stop-all.sh
二、安装工具sbt,来运行Scala程序
1、下载sbt通用平台压缩包:
sbt-0.13.5.tgz
http:
//www.scala-sbt.org/download.html
2、建立目录,解压文件到所建立目录
$sudomkdir/opt/scala/sbt
$sudotarzxvfsbt-0.13.5.tgz-C/opt/scala/
3、建立启动sbt的脚本文件
/*选定一个位置,建立启动sbt的脚本文本文件,如/opt/scala/sbt/目录下面新建文件名为sbt的文本文件*/
$cd/opt/scala/sbt/
$vimsbt
/*在sbt文本文件中添加
BT_OPTS="
-Xms512M-Xmx1536M-Xss1M-XX:
+CMSClassUnloadingEnabled-XX:
MaxPermSize=256M"
java$SBT_OPTS-jarbin/sbt-launch.jar"
$@"
然后按esc键输入:
wq保存退出,注意红色字体中的路径可以是绝对路径也可以是相对路径,只要能够正确的定位到解压的sbt文件包中的sbt-launch.jar文件即可*/
/×
修改sbt文件权限×
/
$chmodu+xsbt
4、配置PATH环境变量,保证在控制台中可以使用sbt命令
$vim~/.bashrc
/*在文件尾部添加如下代码后,保存退出*/
exportPATH=/opt/scala/sbt/:
$PATH
/*使配置文件立刻生效*/
$source~/.bashrc
5、测试sbt是否安装成功
/*第一次执行时,会下载一些文件包,然后才能正常使用,要确保联网了,安装成功后显示如下*/
$sbtsbt-version
[info]Setcurrentprojecttosbt(inbuildfile:
/opt/scala/sbt/)
[info]0.13.5
6、sbt命令下运行Scala程序
编写好Scala程序,保存为.scala形式,拷贝程序文件到安装目录下,命令行下进入安装目录,运行sbt命令,显示出info信息,之后运行run命令,即可运行写好的Scala程序。
三、Scala程序也可在eclipse中编写运行,只需安装一个Scala-IDE插件
1、安装完eclipse后,直接安装Scala-IDE即可,
2、重启eclipse,运行Scala程序。
Goto“File”-“New”-“Other…”andselect“ScalaProject”fromthefolder“ScalaWizards”
Choseaprojectnameandselect“Finish”
Select“File”-“New”-“ScalaObject”tocreateanewobject,Enter
Hello
asthenamefortheobjectandput
greeter
asthepackagenameabove
Savethefileandselect“Run”-“Run”fromthemenu.Chosetorunas“ScalaApplication”
四、使用sbt工具将Scala程序打包,在spark集群环境下运行
如下Scala程序代码:
此段程序主要功能通过两个job并行分析spark自带的README.md文件中包含a和b字母分别有多少行。
一、我们还需要建立一个simple.sbt文件,来加入spark库依赖,scala程序执行的时候便可以调用spark库。
建立好simple.sbt文件后,由于需要对整个工程进行打包成jar文件才能执行,官网建议使用sbt(simplebuildtool)这个工具对整个工程进行打包,而sbt对工程的目录有一定的要求,二、如下图所示建立好工程目录。
由于sbt工具并不是linux自带的软件,因此还需要安装,安装好了sbt工具后,运行sbtpackage命令(电脑需要联网),电脑会分析工程自行下载一些其他需要的文件,然后将文件打包,在我的电脑上在下图所示的目录中会生成simple-project_2.10-1.0.jar的包。
三、
这个时候进入spark安装目录下,运行spark-submit命令并附带一些参数便可得到结果。
我们看到包含a的行数为73行,包含b的行数为35行。