Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS而且运行在yarn上,而后就能够开始部署spark on yarn了,假设如今准备环境已经部署完毕,这里是在CDH 环境下部署Sparkjava
除了上面的环境准备,安装Spark前,还应该保证Scala正常安装,基于Scala的状况下,就能够开始部署Spark了,vim
首先仍是解压Spark,安装位置就是/bigdata/sparkoop
tar -xvzf spark-1.6.2-bin-hadoop2.6.tgz mv spark-1.6.2-bin-hadoop2.6 /bigdata/ ln -s /bigdata/spark-1.6.2-bin-hadoop2.6 /bigdata/spark cd /bigdata/spark
这里为了方便升级,使用/bigdata/sprak指向具体的spark目录,接下来能够配置环境变量,以方便随时输入命令来提交相关程序,直接在环境变量配置文件的PATH变量最后追加 :/bigdata/spark/bin 便可配置,配置完成后source一下便可生效性能
而后一样是处理配置文件:spa
cp conf/spark-env.sh.template conf/spark-env.sh cp conf/slaves.template conf/slaves
这时slaves不用作任何修改默认便可,若是有多台spark,也能够配置除master以外的主机名列表,这个不用配置也能够scala
执行 vim conf/spark-env.sh 编辑配置文件,在最后追加以下配置:code
# JDK目录 export JAVA_HOME=/usr/local/java/jdk1.8.0_73 # Scala目录 export SCALA_HOME=/usr/local/scala/scala-2.11.8 # Master IP地址 export SPARK_MASTER_IP=192.168.0.187 # Worker运行内存 export SPARK_WORKER_MEMORY=2G # hadoop配置文件目录 cdh中默认是以下目录 这个hadoop必须运行在yarn上 spark才能直接经过此配置文件目录经过yarn进行调度 export HADOOP_CONF_DIR=/etc/hadoop/conf # spark master端口 默认7077 下面是可选的 export SPARK_MASTER_PORT=7077 # 此项默认 也是可选的 export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
配置完这些项以后,spark就能够跑在yarn上了,到这里就部署完了,也不必启动spark的master和slaves服务,由于是靠yarn进行任务调度,因此直接提交任务便可blog