yarn版本:hadoop2.7.0
spark版本:spark1.4.0
0.前期环境准备:
jdk 1.8.0_45
hadoop2.7.0
Apache Maven 3.3.3
1.编译spark on yarn
下载地址:http://mirrors.cnnic.cn/apache/spark/spark-1.4.1/spark-1.4.1.tgz
解压后进入spark-1.4.1
执行如下命令,Setting up Maven’s Memory Usage
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
编译spark,使其支持yarn
mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.0 -DskipTests clean package
编译会进行很长时间,期间maven会下载很多东西,还会输出很多warning,一般warning不会有影响,编译成功后会显示build success。
3.添加环境变量
export HADOOP_HOME=your hadoop dir export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=HADOOP_HOME/etc/hadoop export YARN_HOME=$HADOOP_HOME export YARN_CONF_DIR=HADOOP_HOME/etc/hadoopexport PATH=$PATH:$HADOOP_CONF_DIRexport SPARK_HOME=your spark direxport PATH=$PATH:$SPARK_HOME/bin
4.执行例子程序,计算pi
向yarn提交任务执行程序的格式
$ ./bin/spark-submit --class path.to.your.Class --master yarn-cluster [options] <app jar> [app options】
因此执行计算pi的例子程序格式如下:
bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --num-executors 3 --driver-memory 4g --executor-memory 2g --executor-cores 1 examples/target/spark-examples_2.10-1.4.0.jar 10
例子程序在examples/target下,选择class为org.apache.spark.examples.SparkPi即为计算pi的类
提交成功后可以查看http://localhost:8088查看yarn的管理界面,查看对应任务后的tracking UI即可查看spark的管理界面
任务成功结束后可以在对应的log的stdout下看到计算的最后pi的结果,例如我的电脑上地址为:
http://mmc:8088/logs/userlogs/application_1436998397621_0011/container_1436998397621_0011_01_000001/stdout
致谢:http://spark.apache.org/docs/latest/running-on-yarn.html #官方文档
http://spark.apache.org/docs/latest/building-spark.html#building-a-runnable-distributio #官方文档
http://database.51cto.com/art/201404/435669.htm
http://blog.csdn.net/jiushuai/article/details/26693569
http://sofar.blog.51cto.com/353572/1352713
5.小结:如果网上资料太少,官方文档最重要,虽然看官方文档真的很头疼,网上资料很多,但是有的帖子比较老,spark的最新版本的解决方法跟网上的帖子还是有些差别,版本方面一定要看清楚,否则
他的成功了,你的不一定成功,如果出错一定学会看log,一行一行的看下来你会收获很多。
要善于总结别人的帖子,不要一味的找到一个就开干,不然最后错了去查错都不知道自己哪些操作导致的,会影响进度
spark感觉很麻烦,作为一个新手要好好学习