本文记录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的运行,说明我们的环境没有问题了。