一、三种提交模式

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的提交模式

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,这里的NameNode相当于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 \

最新文章

  1. CSS Position 定位属性
  2. iOS键盘监听的通知
  3. 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
  4. TYVJ P1016 装箱问题 Label:01背包 DP
  5. 将COleDateTime类型数据转换成char *数据
  6. Wix#可以直接写C#代码来生成Wix的MSI安装文
  7. Nodejs负载均衡:haproxy,slb以及node-slb - i5ting的个人空间 - 开源中国社区
  8. C#反射 获取程序集信息和通过类名创建类实例(转载)
  9. Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案
  10. OpenStack调研
  11. Linux下查看access访问日志IP统计命令
  12. Python——正则表达式
  13. python日常小计
  14. vlc-ts
  15. Ionic异常及解决
  16. MT【40】一道联赛二试题
  17. K8S 使用简单的NFS 作为 持久存储的 StorageClass 的简单测试.
  18. [数据库]_[初级]_[sqlite3简单使用]
  19. Spring启动时获取自定义注解的属性值
  20. 20145217《网络对抗》 逆向及BOF进阶实践学习总结

热门文章

  1. 【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据
  2. Java8一Lambda与函数式接口
  3. pytest用例传参的多种方式
  4. web前端布局HTML+CSS
  5. Node学习之(第二章:http模块)
  6. 根据域名获取ip地址
  7. 一文看懂Java Worker 设计模式
  8. 一个关于integer表示范围的问题
  9. Win10 C盘 系统和保留 占用空间 非常大
  10. python之文件的相关操作