spark的提交方式总体来说有两种,分别是standalone模式和yarn模式。

这两种模式又分别有两种提交方式,分别是:

  • standalone下的client提交方式。(客户端提交)
  • standalone下的cluster提交方式。(集群提交)
  • yarn下的client提交方式。(客户端提交)
  • yarn下的cluster提交方式。(集群提交)

下面分别来说说这几种提交方式。

Standalone模式下的两种提交方式:

1、standalone-client任务提交方式

执行流程:

1、client模式提交任务后,会在客户端启动Driver。

2、Driver与Master通信,为当前的Application申请资源。

3、资源申请成功。Driver将Task发送到Worker执行。

4、Worker将Task执行情况和执行结果返回给Driver端。

总结:

Standalone-client适合测试使用,不适合生产使用。

Driver进程是在客户端启动的,这里的客户端是指提交任务的那个节点。Driver端可以看到Task执行的情况。

Standalone-client为什么不适合生产环境呢?是因为假如要提交100个Application到集群运行,Driver每次都会在client端启动,会导致客户端100次网卡流量暴增的问题。

2、Standalone-cluster模式提交任务:

执行流程:

1、cluster模式下提交应用程序后,会向Master申请启动Driver。

2、Master接受请求后,随机在一台Worker启动Driver。

3、Driver启动后,向Master申请资源。

4、资源申请成功后,Driver将Task发送到Worker执行。

5、Worker将执行情况和执行结果返回给Driver端。

总结:

Driver进程是在集群中某一台Worker上执行的,客户端无法查看Task执行情况。假如要提交100个应用程序到集群上,每次Driver会随机在集群中某台Worker上执行。

总结Standalone两种方式提交任务,Driver与集群通信包括:

1、申请资源。

2、分发任务。

3、回收结果。

4、监控Task执行情况。

Yarn模式下的两种提交方式:

1、Yarn-clien方式提交任务:

执行流程:

1、客户端提交了一个Application,在客户端启动了一个Driver。

2、应用程序启动后会向ResourceManager(RS)发送请求,请求启动一个ApplicationMaster(AM)资源。

3、RS收到请求,随机在一台NM(NodeManager)启动AM,这里的NM相当于Standalone的Worker节点。

4、AM启动后,会向RS申请一批资源,用于启动Executor。

5、RS收到请求,向AM返回一批NM节点。

6、AM会向NM发送命令启动Executor。

7、Executor启动后会反向注册给Driver,Driver发送Task到Executor执行,并监控执行情况和结果。

总结:

与Standalone-client类似,Yarn-client同样适用于测试环境,因为Driver运行在本地,大量提交Application会导致网卡流量激增问题。

client模式下ApplicationMaster的作用(注意,client模式的AM和cluster的AM作用不同):

1、为Application申请资源。

2、给NM发送消息启动Executor。

注意,这里的AM只用申请资源的功能,没用任务调度的功能。

Yarn-cluster任务提交方式:

执行流程:

1、客户端提交了Application,发送请求到RS,请求启动一个AM。

2、AM收到请求,在集群中随便找个节点启动AM(相当于Driver端)。

3、AM启动后,向RS申请一批资源,用于启动Executor。

4、RS收到请求,向AM返回一批NM节点,用来启动Executor。

5、AM连接到NM,发送命令启动Executor。

6、Executor反向注册到AM所在节点的Driver,Driver发送Task到Executor。

总结:

cluster方式提交任务后,Driver(AM)是分布到集群各个节点的,不会造成网卡流量激增的问题。缺点是任务提交后无法查看日志,只能通过Yarn查看日志。

ApplicationMaster作用:

1、申请资源。

2、给NM发消息启动Executor。

3、任务调度。

centos7.6查看什么进程跑的流量_Spark的提交方式有哪些?有什么区别?相关推荐

  1. 查看redis进程_redis安装(启动三种方式)

    一.安装redis 第 1 步:下载redis安装包 [root@hadoop105 redis]# wget http://download.redis.io/releases/redis-4.0. ...

  2. CentOS查看每个进程的网络流量

    所需工具nethogs 安装:yum install -y nethogs 使用:nethogs eth0 sudo nethogs -s //按接收流量大小排序 如上图,PID一列就是进程的PID, ...

  3. centos查看网络速率_Centos7下查看各进程的网络速率状况

    Centos7下查看各进程的网络速率状况 2017年10月20日 13:52:47 bobpen 阅读数:4221更多java 我的分类: linuxmysql 版权声明:本文为博主原创文章,未经博主 ...

  4. centos7查看mysql进程显示端口_CentOS查看进程端口号以及kill操作

    在启动软件时或者开发过程时常会遇到端口被占用的情况,例如下面的错误,9999端口被占用: 我们这个时候就要看一下到底哪个进程偷偷占用了9999端口,可以使用如下命令: netstat -apn | g ...

  5. linux父进程和子进程查看,linux查看父子进程

    python多进程代码 test.py #coding=utf-8 import multiprocessing import time def func(msg): print "msg: ...

  6. 查看某个进程是否还有外部请求进来

    背景   有一个服务改造重构了,部署到了新的服务器上,旧的服务需要干掉并迁移走,旧的服务没有请求日志等信息,需要进行判断是否有请求.所以只能从网络层面来看了. 操作步骤 1. 查看进程和端口 一般情况 ...

  7. linux终止yum进程,【Linux】CentOS7中yumbackend.py进程的结束方法

    环境: CentOS Linux release 7.3.1611 (Core) 今天启动这个不怎么用的机器,才启动,就发现后台的yum无法进行安装,持续报这个错误 Loaded plugins: f ...

  8. Linux查看实时网卡流量的几种方式

    Linux查看实时网卡流量的几种方式 来源  https://www.jianshu.com/p/b9e942f3682c 在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查 ...

  9. 如何查看Linux系统的带宽流量

    转自: https://tonydeng.github.io/sdn-handbook/FAQ.html 如何定位丢包问题 如何知道哪个网卡在丢包:netstat -i 如何知道什么时候丢包:perf ...

最新文章

  1. ICCV 2021 Workshop 盘点
  2. Wsus存储更新文件的磁盘已满
  3. viewPager开启界面导航之旅
  4. Python-OpenCV 笔记2 -- 图像的基本属性和操作
  5. java头像选择系统_Android+超高仿微信图片选择器(头像选择)
  6. mac终端修改默认python_Mac 修改默认python的版本
  7. 多目标遗传优化算法nsga2求解复杂约束问题【python源码实现,实数编码】
  8. ++ 优化 频繁new_Java性能优化的50个细节,我必须分享给你!
  9. 【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件
  10. python3.6字典有序_为什么Python 3.6以后字典有序并且效率更高?
  11. Java 9 中的 9 个新特性
  12. 华纳传媒和Discovery合并交易将提前完成 华纳CEO将在交易之前辞职
  13. 索尼PS5上手体验公布:体积巨大运行安静
  14. 2013下半年(11月)信息系统项目管理师考试题型分析(综合知识、案例分析、论文)...
  15. 关于sql server 的那些事
  16. 少年Vince之遐想
  17. Spring Boot应用热启动的一种方式
  18. linux 区别 挂起 阻塞_踩坑之java执行linux命令死锁阻塞挂起
  19. Java程序设计(面向对象)- 基本概念
  20. 检查评分汇总表缺项计算机,综合检查评分表.docx

热门文章

  1. 你真的懂语音特征吗?
  2. 初学者入门知识图谱必看的能力:推理
  3. 一文讲全了Python 类和对象内容
  4. python让你再也不为文章配图与素材发愁,让高清图片占满你的硬盘! #华为云·寻找黑马程序员#
  5. Robin负载均衡策略存在问题及CSE解决方案
  6. 【华为大咖分享】4.反脆弱,高效能组织的能力构建(后附PPT下载地址)
  7. jsp文件里java代码的作用_如何使用JSP 2避免JSP文件中的Java代码?
  8. 多个数字数组_九章算法 | 谷歌面试题:多个数组的交集
  9. js 拾遗 js时间戳转换
  10. python编程从入门到实践之外星人入侵