Spark on YARN的原理就是依靠yarn來調度Spark,比默認的Spark運行模式性能要好的多,前提是首先部署好hadoop HDFS并且運行在yarn上,然后就可以開始部署spark on yarn了,假設現在準備環境已經部署完畢,這里是在CDH 環境下部署Spark
除了上面的環境準備,安裝Spark前,還應該保證Scala正常安裝,基于Scala的情況下,就可以開始部署Spark了,
首先還是解壓Spark,安裝位置就是/bigdata/spark
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
Apache Spark。 這里為了方便升級,使用/bigdata/sprak指向具體的spark目錄,接下來可以配置環境變量,以方便隨時輸入命令來提交相關程序,直接在環境變量配置文件的PATH變量最后追加?:/bigdata/spark/bin?即可配置,配置完成后source一下即可生效
然后同樣是處理配置文件:
cp conf/spark-env.sh.template conf/spark-env.sh cp conf/slaves.template conf/slaves
這時slaves不用做任何修改默認即可,如果有多臺spark,也可以配置除master之外的主機名列表,這個不用配置也可以
執行?vim conf/spark-env.sh?編輯配置文件,在最后追加如下配置:
# 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}
yarn啟動命令? 配置完這些項之后,spark就可以跑在yarn上了,到這里就部署完了,也沒必要啟動spark的master和slaves服務,因為是靠yarn進行任務調度,所以直接提交任務即可