首页 > 技术文章 > spark on yarn 安装笔记

prisoner 2015-07-16 16:37 原文

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/hadoop
export PATH=$PATH:$HADOOP_CONF_DIR

export SPARK_HOME=your spark dir
export 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感觉很麻烦,作为一个新手要好好学习

推荐阅读