当前位置:   article > 正文

Spark系列-5、Spark的部署方式之Spark on YARN

spark on yarn

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

大数据系列文章目录

官方网址http://spark.apache.org/https://databricks.com/spark/about
在这里插入图片描述

前言

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,配置历史服务器相关属性。

设置环境变量

在【$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
  • 1
  • 2
  • 3
  • 4

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

cd /export/server/spark/conf

scp -r spark-env.sh root@node2.cn:$PWD 
scp -r spark-env.sh root@node3.cn:$PWD

  • 1
  • 2
  • 3
  • 4
  • 5

历史服务MRHistoryServer地址

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

## 在node1.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.cn:19888/jobhistory/logs</value>

</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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


cd /export/server/hadoop/etc/hadoop

scp -r yarn-site.xml root@node2.cn:$PWD 
scp -r yarn-site.xml root@node3.cn:$PWD 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

历史服务HistoryServer地址

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

## 在node1.cn上修改
vim /export/server/spark/conf/spark-defaults.conf

## 添加内容
spark.yarn.historyServer.address	node1.cn:18080
  • 1
  • 2
  • 3
  • 4
  • 5

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

cd /export/server/spark/conf

scp -r spark-defaults.conf root@node2.cn:$PWD 
scp -r spark-defaults.conf root@node3.cn:$PWD
  • 1
  • 2
  • 3
  • 4

配置依赖Spark Jar包

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

## 启动HDFS,在node1.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/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

## 在node1.itcast.cn上操作
vim /export/server/spark/conf/spark-defaults.conf

## 添加内容
spark.yarn.jars hdfs://node1.cn:8020/spark/apps/jars/*
  • 1
  • 2
  • 3
  • 4
  • 5

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

## 在node1.cn上操作
cd /export/server/spark/conf

scp -r spark-defaults.conf root@node2.cn:$PWD 
scp -r spark-defaults.conf root@node3.cn:$PWD

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

YARN 资源检查

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

## 编辑yarn-site.xml文件,在node1.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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

cd /export/server/hadoop/etc/hadoop

scp -r yarn-site.xml root@node2.cn:$PWD 
scp -r yarn-site.xml root@node3.cn:$PWD

  • 1
  • 2
  • 3
  • 4
  • 5

启动服务

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

## 启动HDFS和YARN服务,在node1.cn执行命令
hadoop-daemon.sh start namenode hadoop-daemons.sh start datanode yarn-daemon.sh start resourcemanager yarn-daemons.sh start nodemanager
## 启动MRHistoryServer服务,在node1.cn执行命令
mr-jobhistory-daemon.sh start historyserver

## 启动Spark HistoryServer服务,,在node1.cn执行命令
/export/server/spark/sbin/start-history-server.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

提交应用

先将圆周率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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

运行完成在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.spark.submit.SparkSubmit \ hdfs://node1.cn:8020/spark/apps/spark-chapter01_2.11-1.0.0.jar \
/datas/wordcount.data /datas/swcy-output
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

结束

本篇文章讲了Spark的部署方式Spark on YARN,Spark on YARN也是目前企业使用最多的一种部署方式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/982789
推荐阅读
相关标签
  

闽ICP备14008679号