Spark Yarn模式
一、安装
spark官网:http://spark.apache.org
spark3.1.2下载地址:https://mirrors.bfsu.edu.cn/apache/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz
# 下载安装包wget https://mirrors.bfsu.edu.cn/apache/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz# 解压安装包tar -zxvf spark-3.1.2-bin-hadoop3.2.tgz# 修改目录名称mv spark-3.1.2-bin-hadoop3.2 spark-yarn
二、修改配置
- 修改hadoop配置文件yarn-site.xml,并分发到各服务器
# 修改yarn-site.xml文件配置vim /opt/hadoop-3.2.2/etc/hadoop/yarn-site.xml
增加如下配置
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true --><property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true --><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>
分发配置
xsync /opt/hadoop-3.2.2/etc/hadoop/yarn-site.xml
- 配置spark-env.sh
# 模板复制spark-env.sh
mv spark-env.sh.template spark-env.sh
# 修改spark-env配置
vim spark-env.sh
# 增加如下配置
YARN_CONF_DIR=/opt/hadoop-3.2.2/etc/hadoop
- 启动hdfs以及yarn集群
myhadoop.sh start
三、提交应用
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.1.2.jar \
10
—class 表示要执行的jar包的主类
—master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟CPU数量
spark-examples_2.12-3.1.2.jar 运行的应用所在的jar包
数字10表示程序的入参
查看http://192.168.8.103:8088/页面,查看执行记录

四、配置历史服务器
- 修改配置文件名称
# 进入spark-yarn的conf目录下
cd spark-yarn/conf
# 修改spark-defaults.conf.template文件名
mv spark-defaults.conf.template spark-defaults.conf
- 修改spark-defaults.conf配置文件
vim spark-defaults.conf
# 增加如下内容
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop102:8020/spark-log
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080
注意:需要启动hadoop集群,HDFS上的/spark-log目录需要提前存在
hadoop fs -mkdir /spark-log
- 修改spark-env.sh文件,添加日志配置
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/spark-log
-Dspark.history.retainedApplications=30"
-Dspark.history.ui.port: webUI访问的端口号为18080
-Dspark.history.fs.logDirectory:指定历史服务器日志存储路径
-Dspark.history.retainedApplications:指定保存Application历史记录的个数,如果超过这个值,旧的应用信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数
- 启动历史服务器
sbin/start-history-server.sh
- 重新提交应用
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.1.2.jar \
10
- Web页面查看日志:http://192.168.8.103:8088
