一 介绍

基于YARN的提交模式,总共有2种:一种是基于YARN的yarn-cluster模式;一种是基于YARN的yarn-client模式。

 

需要将提交应用程序的spark-submit的脚本中加上--master参数,设置为yarn-cluster或者yarn-client。如果没有设置,默认就是standalone模式。

 

 

spark-submit --class com.spark.sql.SyncHive2MySQL \

--master yarn-client/yarn-cluster \

--deploy-mode client/cluster \

--num-executors 1 \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 1 \

--conf "spark.ui.port=4040"

/opt/run/spark-app.jar

 

 

二 Spark ON Yarn 的 Job History 配置

# yarm-site.xml 需要开启日志聚合功能

yarn.log-aggregation-enabled= true

# 配置log dir

yarn.log-aggregation-enbaled = true

yarn.log,server.urtl:

http://hadoop-all-02:19888.jobhistory.job

 

 

# Spark的job history 服务启动

start-historyserver.sh(18080)

# 在spark-defaults中配置,将event归档

spark.eventLog.enabled true

spark.eventLog.dirhdfs://hdfs-cluster/spark-history

# spark_env.sh,配置SPARK_HISTORY_OPTS然后展示归档文件的的event

SPARK_HISTORY_OPTS=-Dspark.history.fs.logDirectory=hdfs://hdfs-cluster/spark-history–Dspark.history.ui.port=18080

spark.yarn.historyServer.addresshtttp://hadoop-all-01:18080

 

三 yarn-cluster 流程图spark基础之基于yarn两种提交模式分析

3.1 提交应用程序,发送请求到RM,向RM申请启动ApplicationMaster的Container资源。

3.2 RM分配该Container资源到某一个NM,通知该NM启动ApplicationMaster,这个AM就相当于Driver,用于分配

3.3 NM启动Application Master

3.4 Application Master启动之后,向RM申请一批Container资源,用韵启动Executors

3.5 分配Container资源到各个NM

3.6 启动Executor

3.7 Executor然后向Driver反向注册

 

 

 

四 yarn-client流程图

spark基础之基于yarn两种提交模式分析

4.1 提交应用程序,向RM发送请求,申请启动Application Master所需资源

4.2 RM分配Container资源给某一个NM

4.3 该NM根据分配的Container启动ApplicationMaster,这个ApplicationMaster与yarn-cluster中的AM区别在于:它不运行SparkContext,只是和SparkContext进行联系,进行资源分派

4.4 SparkContext启动完毕后,与AM建立通信,向RM注册申请运行Executor的Container资源

4.5 RM通知NM根据分配的Container资源启动Executor

4.6 Executor启动之后,需要向SparkContext反向注册,申请任务集

4.7 SparkContext分配任务集给Executor,并向DriverEndpoint汇报运行状态

 

五MapReduce On YARN的流程:

# 客户端向RM申请Container资源运行AM

# 分配资源后,RM通知NM启动AM

# AM向RM申请Container资源运行Job

# 通知NM启动相关的Task

# AM 监控和调度Task的运行



相关文章:

  • 2021-05-07
  • 2021-09-08
  • 2021-05-15
  • 2021-11-27
  • 2021-08-18
  • 2021-10-12
猜你喜欢
  • 2021-05-06
  • 2021-10-27
  • 2021-12-18
  • 2021-05-18
  • 2021-10-09
  • 2022-12-23
  • 2021-09-07
相关资源
相似解决方案