Spark on YARN 部署实验

目录

一、实验目的

二、实验环境

三、安装 Spark

四、配置步骤

1. 启动 Hadoop 集群

2. 将 spark 自带的与 Hadoop 集成的 jar 包上传到 hdfs

3. 编辑 spark-defaults.conf 文件

五、测试

1. 运行 spark 的示例 run-example 并提交到 yarn

2. Kettle 提交 Spark 作业到 yarn

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

4. 执行 SparkSQL


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

一、实验目的

  • 只在一台机器上安装 Spark,基于已有的 Hadoop 集群,使用 YARN 调度资源。
  • 不启动 Master 和 Worker 进程提交 Spark 作业。
  • 通过 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 集群的安装配置参考“Hadoop 集群安装配置实验”。

三、安装 Spark

        只在 192.168.56.101 一台机器上上安装 Spark,具体安装步骤参考“Spark 安装配置实验”。

四、配置步骤

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 作业的配置参考“Pentaho Work with Big Data(二)—— Kettle 提交 Spark 作业”。

# 将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 的相关配置,参考“用 beeline 连接 SparkSQL”。

# 启动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 所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值