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