本文記錄Spark on Yarn的集羣環境的搭建,並通過通過SparkPi實例程序來測試集羣。在搭建本集羣之前必須先搭建好Hadoop集羣,搭建Hadoop集羣請參考:Hadoop集羣環境搭建(三臺).
主要內容:
- 安裝Spark
- 運行SparkPi
1.安裝Spark
1.1.下載
下載
這裏注意版本,我的hadoop版本是2.7.3,那我下載2.1.1,而Spark2.1.1依賴的Scala的2.11,所以後面用到Scala編程時注意Scala的版本。
1.2.解壓
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/soft
1.3.修改配置文件
進入 spark-2.1.1-bin-hadoop2.7/conf下
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
在spark-env.sh下加入如下配置
# Hadoop 的配置文件目錄
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# YARN 的配置文件目錄
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# SPARK 的目錄
export SPARK_HOME=/opt/soft/spark-2.1.1-bin-hadoop2.7
# SPARK 執行文件目錄
export PATH=$SPARK_HOME/bin:$PATH
複製/opt/soft/spark-2.1.1-bin-hadoop2.7 到其它主機
scp -r /opt/soft/spark-2.1.1-bin-hadoop2.7/ hadoop2:/opt/soft
scp -r /opt/soft/spark-2.1.1-bin-hadoop2.7/ hadoop3:/opt/soft
將 /opt/soft/spark-2.1.1-bin-hadoop2.7/ 的權限賦給hadoop用戶(三臺主機都要)
chown -R hadoop:cloud /opt/soft/spark-2.1.1-bin-hadoop2.7/
1.4.啓動hadoop集羣(hadoop用戶)
進入hadoop的目錄執行如下命令
./sbin/start-dfs.sh
./sbin/start-yarn.sh
可以看到hdfs和yarn的進程都已經啓動成功了。
2.運行SparkPi
進入/opt/soft/spark-2.1.1-bin-hadoop2.7/目錄下
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 1G \
--num-executors 3 \
--executor-memory 1G \
--executor-cores 1 \
./examples/jars/spark-examples_2.11-2.1.1.jar 100
如果看到控制檯出現這個,說明運行成功。
我們可以根據圖中的tracking URL進入yarn的管理界面查看運行日誌。
http://hadoop1:8088/proxy/application_1498145157994_0002/
運行結果如下:
Pi is roughly 3.1415423141542314
至此已經完成的Spark on Yarn 的環境搭建,並通過測試SparkPi的運行,說明我們的環境沒有問題了。