12、基于yarn的提交模式

一、三种提交模式

1、Spark内核架构,其实就是第一种模式,standalone模式,基于Spark自己的Master-Worker集群。

2、第二种,是基于YARN的yarn-cluster模式。

3、第三种,是基于YARN的yarn-client模式。

4、如果,你要切换到第二种和第三种模式,很简单,将我们之前用于提交spark应用程序的spark-submit脚本,加上--master参数,设置为yarn-cluster,或yarn-client,即可。
  如果你没设置,那么,就是standalone模式。

 

二、基于YARN的提交模式

image

1、基于YARN的yarn-cluster模式

流程详细分析:

spark-submit提交(yarn-cluster),发送请求到ResourceManager,请求启动ApplicationMaster,ResourceManager接收到请求后,会在某个NodeManager上分配container,启动ApplicationMaster
ResourceManager分配Container,在某个NodeManager上,启动ApplicationMaster

ApplicationMaster(相当于是Driver)

ApplicationMaster找ResourceManager,请求container,启动Executor

ResourceManager分配一批container,用于启动Executor
ApplicationMaster所在的NodeManager上,可能会启动Executor

ApplicationMaster连接其他NodeManager,来启动Executor,这里的NodeManager相当于Wroker
Executor启动后,向ApplicationMaster反向注册

 

2、基于YARN的yarn-client模式

流程详细分析:
spark-submit提交(yarn-client),会在本地启动Driver进程
发送给ResourceManager,请求启动ApplicationMaster


ResourceManager分配Container,在某个NodeManager上启动ApplicationMaster,但这里的ApplicationMaster,其实只是一个ExecutorLauncher


ExecutorLauncher(ApplicationMaster)申请Container,启动executor


ResourceManager分配一批Container
,ExecutorLauncher(ApplicationMaster)所在的NodeManager上,可能会启动Executor


ExecutorLauncher(ApplicationMaster)连接其他NodeManager,用Container资源,启动Executor
Executor反向注册到本地的Driver上

 

3、以上两种模式对比

1、yarn-client模式用于测试,因为driver运行在本地客户端,负责调度application,会与yarn集群产生超大量的网络通信,从而导致网卡流量激增,
可能会被公司的运维给警告,好处在于,直接执行时,本地可以看到所有log,方便调试

2、
yarn-cluster,用于生产环境,因为driver运行在NodeManager,没有网卡流量激增的问题,缺点在于,调试不方便,本地用spark-submit提交后,看不到log,
只能通过yarn application -logs application_id这种命令来查看,很麻烦

 

4、设置

##修改spark-env.sh
[root@spark1 ~]# vim /usr/local/spark/conf/spark-env.sh        #写入hadoop的home
export HADOOP_HOME=/usr/local/hadoop



###脚本文件

yarn-cluster:


/opt/module/spark/bin/spark-submit \

--class com.zj.spark.core.WordCountCluster \

--master yarn-cluster \

--num-executors 3 \

--driver-memory 100m \

--executor-memory 100m \

--executor-cores 3 \
/opt/module/datas/sparkstudy/java/mysparkstudy-1.0-SNAPSHOT-jar-with-dependencies.jar \



yarn-client:
/opt/module/spark/bin/spark-submit \

--class com.zj.spark.core.WordCountCluster \

--master yarn-client \

--num-executors 3 \

--driver-memory 100m \

--executor-memory 100m \

--executor-cores 3 \

/opt/module/datas/sparkstudy/java/mysparkstudy-1.0-SNAPSHOT-jar-with-dependencies.jar \
posted @ 2019-07-17 09:25  米兰的小铁將  阅读(272)  评论(0编辑  收藏  举报