目录
1. Yarn模式运行流程
2. 安装Yarn模式
3. 日志查看
Yarn模式是指Spark直接调用Yarn进行资源调度,Standalone下资源调度用的是Spark自身的Master和ApplicationMaster;
在Yarn模式下直接直接用Yarn的ResourceManager、NodeManager和Container环境做资源调度,Spark计算框架的ApplicationMaster和Executor存在于Container中。
Spark ApplicationMaster负责和Yarn交互做资源调度,
Spark Driver负责和Executor交互做任务调度,
Spark中的Master和Worker没有了,换成了对应的yarn的RM和NM,Executor和Driver依然存在。
(1)客户端提交应用程序,SparkSubmit
(2)让RM启动Spark的ApplicationMaster程序,用于Spark与Yarn之间资源交互
(3)AM向RM申请资源,用于启动Executor
(4)RM获取集群的资源信息(NM)
(5)RM将资源信息发送给AM,由AM中的Driver判断任务调度的地址
(6)Driver划分任务,分配任务task发送给Executor执行
(7)Executor执行任务,执行完毕后,通知Driver
(8)Driver和AM交互通知RM回收资源
(9)Executor、Container、Driver、ApplicationMaster就都释放资源消失
(10)最终留下Yarn的RM和NM,在client端打印结果。
(1)修改hadoop配置文件yarn-site.xml添加如下内容
[kevin@hadoop100 hadoop]$ vi yarn-site.xml
yarn.nodemanager.pmem-check-enabled
false
yarn.nodemanager.vmem-check-enabled
false
这里默认是true,本地测试时为避免任务失败都改成false了
(2)修改spark-env.sh,添加配置
[kevin@hadoop100 conf]$ vi spark-env.sh
YARN_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop
(3)分发配置文件
[kevin@hadoop100 conf]$ xsync /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
[kevin@hadoop100 conf]$ xsync spark-env.sh
(4)启动HDFS和Yarn集群服务,就可以正常开始运行了,Spark的Yarn模式配置完毕
(1)修改配置文件spark-default.conf,添加信息
spark.yarn.historyServer.address=hadoop100:18080
spark.history.ui.port=18080
这里把历史日志地址选在了hadoop100这台主机上,端口是18080
(2)重启Spark的历史服务
[kevin@hadoop100 spark]$ sbin/stop-history-server.sh
[kevin@hadoop100 spark]$ sbin/start-history-server.sh
(3)启动hadoop历史服务
[kevin@hadoop100 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
(4)历史服务配置完毕,点开18080端口查看历史服务
ps:如果Web端显示不了,可能是由于hadoop中配置文件设定主机名冲突,四个.site文件检查一下,确保服务的主机名信息一致