大数据Spark on YARN

本文档详细介绍了如何在YARN集群上配置和运行SparkApplication。内容包括设置环境变量、配置历史服务(MRHistoryServer和HistoryServer)、配置Spark相关jar包、禁用YARN资源检查,以及启动服务和提交应用的步骤。通过这些配置,可以有效地监控和管理Spark应用在YARN上的执行情况。
摘要由CSDN通过智能技术生成


1 属性配置

将Spark Application提交运行到YARN集群上,至关重要,企业中大多数都是运行在YANR
上,文档: http://spark.apache.org/docs/2.4.5/running-on-yarn.html#launching-spark-on-yarn 。

当Spark Application运行到YARN上时,在提交应用时指定master为yarn即可,同时需要告知
YARN集群配置信息(比如ResourceManager地址信息),此外需要监控Spark Application,配置
历史服务器相关属性。

1.1 设置环境变量

在【$SPARK_HOME/conf/spark-env.sh】配置文件中,添加如下内容:

vim /export/server/spark/conf/spark-env.sh
## 添加内容
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/spark/conf
scp -r spark-env.sh root@node2.oldlu.cn:$PWD
scp -r spark-env.sh root@node3.oldlu.cn:$PWD

1.2 历史服务MRHistoryServer地址

在【$HADOOP_HOME/etc/hadoop/yarn-site.xml】配置文件中,指定MRHistoryServer地址
信息,添加如下内容,

## 在node1.oldlu.cn上修改
vim /export/server/hadoop/etc/hadoop/yarn-site.xml
## 添加内容
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node1.oldlu.cn:19888/jobhistory/logs</value>
</property>

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/hadoop/etc/hadoop
scp -r yarn-site.xml root@node2.oldlu.cn:$PWD
scp -r yarn-site.xml root@node3.oldlu.cn:$PWD

1.3 历史服务HistoryServer地址

在【$SPARK_HOME/conf/spark-defaults.conf】文件增加SparkHistoryServer地址信息:

## 在node1.oldlu.cn上修改
vim /export/server/spark/conf/spark-defaults.conf
## 添加内容
spark.yarn.historyServer.address node1.oldlu.cn:18080

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/spark/conf
scp -r spark-defaults.conf root@node2.oldlu.cn:$PWD
scp -r spark-defaults.conf root@node3.oldlu.cn:$PWD

1.4 配置依赖Spark Jar包

当Spark Application应用提交运行在YARN上时,默认情况下,每次提交应用都需要将依赖
Spark相关jar包上传到YARN 集群中,为了节省提交时间和存储空间,将Spark相关jar包上传到
HDFS目录中,设置属性告知Spark Application应用。

## 启动HDFS,在node1.oldlu.cn上操作
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
## hdfs上创建存储spark相关jar包目录
hdfs dfs -mkdir -p /spark/apps/jars/
## 上传$SPARK_HOME/jars所有jar包
hdfs dfs -put /export/server/spark/jars/* /spark/apps/jars/

在【$SPARK_HOME/conf/spark-defaults.conf】文件增加Spark 相关jar包存储HDFS位置信息:

## 在node1.oldlu.cn上操作
vim /export/server/spark/conf/spark-defaults.conf
## 添加内容
spark.yarn.jars hdfs://node1.oldlu.cn:8020/spark/apps/jars/*

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

## 在node1.oldlu.cn上操作
cd /export/server/spark/conf
scp -r spark-defaults.conf root@node2.oldlu.cn:$PWD
scp -r spark-defaults.conf root@node3.oldlu.cn:$PWD

1.5 YARN 资源检查

由于使用虚拟机运行服务,默认情况下YARN检查机器内存,当内存不足时,提交的应用无法
运行,可以设置不检查资源,命令如下:

## 编辑yarn-site.xml文件,在node1.oldlu.cn上操作
vim /export/server/hadoop/etc/hadoop/yarn-site.xml
## 添加内容
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/hadoop/etc/hadoop
scp -r yarn-site.xml root@node2.oldlu.cn:$PWD
scp -r yarn-site.xml root@node3.oldlu.cn:$PWD

2 启动服务

Spark Application运行在YARN上时,上述配置完成,以此启动服务:HDFS、YARN、
MRHistoryServer和Spark HistoryServer,命令如下:

## 启动HDFS和YARN服务,在node1.oldlu.cn执行命令
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start resourcemanager
yarn-daemons.sh start nodemanager
## 启动MRHistoryServer服务,在node1.oldlu.cn执行命令
mr-jobhistory-daemon.sh start historyserver
## 启动Spark HistoryServer服务,,在node1.oldlu.cn执行命令
/export/server/spark/sbin/start-history-server.sh

3 提交应用

先将圆周率PI程序提交运行在YARN上,命令如下:

SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \
10

运行完成在YARN 监控页面截图如下:在这里插入图片描述
设置资源信息,提交运行WordCount程序至YARN上,命令如下:

SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--driver-memory 512m \
--executor-memory 512m \
--executor-cores 1 \
--num-executors 2 \
--queue default \
--class cn.oldlu.spark.submit.SparkSubmit \
hdfs://node1.oldlu.cn:8020/spark/apps/spark-chapter01_2.11-1.0.0.jar \
/datas/wordcount.data /datas/swcy-output

当WordCount应用运行YARN上完成以后,从8080 WEB 页面点击应用历史服务连接,查看应
用运行状态信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵广陆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值