Spark on YARN 部署实验

        以前的Spark部署都是使用的standalone方式,集群中的每台机器都安装部署Spark,然后启动Master和Worker进程运行Spark。今天尝试一下Spark on YARN的部署方式。

一、实验目的
1. 只在一台机器上安装Spark,基于已有的Hadoop集群,使用YARN调度资源。
2. 不启动Master和Worker进程提交Spark作业。
3. 通过YARN的WebUI查看Spark作业的执行情况。

二、实验环境:
4台CentOS release 6.4虚拟机,IP地址为
192.168.56.101
192.168.56.102
192.168.56.103
192.168.56.104

192.168.56.101是Hadoop集群的主,运行NameNode和ResourceManager进程。
192.168.56.102、192.168.56.103是Hadoop的从,运行DataNode和NodeManager进程。
192.168.56.104安装Pentaho的PDI,安装目录为/home/grid/data-integration。

Hadoop版本:2.7.2
Spark版本:1.5.0
PDI版本:6.0

Hadoop集群的安装配置参考 http://blog.csdn.net/wzy0623/article/details/50681554

三、安装Spark
只在192.168.56.101一台机器上上安装Spark,具体安装步骤参考 http://blog.csdn.net/wzy0623/article/details/50946766

四、配置步骤
1. 启动Hadoop集群
# 启动hdfs
/home/grid/hadoop-2.7.2/sbin/start-dfs.sh
# 启动yarn
/home/grid/hadoop-2.7.2/sbin/start-yarn.sh

2. 将spark自带的与Hadoop集成的jar包上传到hdfs
hadoop fs -put /home/grid/spark/lib/spark-assembly-1.5.0-hadoop2.6.0.jar /user/

3. 编辑spark-defaults.conf文件,添加如下一行
spark.yarn.jar=hdfs://master:9000/user/spark-assembly-1.5.0-hadoop2.6.0.jar
修改后的spark-defaults.conf文件如图1所示


图1

五、测试
1. 运行spark的示例run-example,提交到yarn
cd $SPARK_HOME/bin
cp run-example run-example2
# 需要将EXAMPLE_MASTER设置成yarn
vi run-example2
EXAMPLE_MASTER="yarn"
# 执行示例
./run-example2 org.apache.spark.examples.SparkPi 2
执行结果如图2所示


图2

2. Kettle提交Spark作业到yarn

以下是本实验相关的步骤,关于PDI提交Spark作业的配置参考http://blog.csdn.net/wzy0623/article/details/51097471

# 将yarn和spark配置文件拷贝到客户端机器
scp /home/grid/hadoop/etc/hadoop/yarn-site.xml 192.168.56.104:/home/grid/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh54/
scp /home/grid/spark/conf/spark-defaults.conf 192.168.56.104:/home/grid/spark/conf/

修改PDI的Spark例子
cp /home/grid/data-integration/samples/jobs/Spark\ Submit/Spark\ submit.kjb /home/grid/data-integration/test/Spark\ Submit\ Sample.kjb
在Kettle中打开/home/grid/data-integration/test/Spark\ Submit\ Sample.kjb文件,编辑Spark Submit Sample作业项,填写如图3所示的信息


图3

执行Spark Submit Sample作业,结果如图4所示


图4


3. 在yarn的WebUI查看作业的运行情况

http://192.168.56.101:8088/

正在执行的spark作业如图5所示


图5

点击“ApplicationMaster”,进入Spark作业页面,如图6所示


图6

作业执行完,应用历史页面如图7所示


图7

4. 执行SparkSQL
关于用beeline连接SparkSQL的相关配置,参考http://blog.csdn.net/wzy0623/article/details/50999197
# 启动mysql,用于存储hive的元数据
mysqld &
# 启动hive元数据存储服务
hive --service metastore > /tmp/grid/hive_metastore.log 2>&1 &
# 启动spark thriftserver服务
$SPARK_HOME/sbin/start-thriftserver.sh --master yarn
此时在yarn的WebUI查看应用的运行情况,如图8所示

图8
# 登入beeline
$SPARK_HOME/bin/beeline -u jdbc:hive2://192.168.56.101:10001/
执行SparkSQL查询:
use test;
select * from session_test;
select count(*) from session_test;
此时在yarn的WebUI查看Spark作业的运行情况,如图9所示

图9

参考:

http://blog.csdn.net/xiao_jun_0820/article/details/46561097

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页