博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark 的 Yarn-cluster 模式和 Yarn-client 模式
阅读量:6259 次
发布时间:2019-06-22

本文共 1347 字,大约阅读时间需要 4 分钟。

Spark 支持 Yarn 集群的部署模式,在 Spark On Yarn 模式下,每个 Spark 的 Executor 作为一个 Yarn container 在运行,同事支持多个任务在同一个 container 中运行。

Yarn 的 Application Master 概念:在 Yarn 中,每个 application 都有一个 Application 都有一个 Application Master 进程,它是 Application 启动的第一个容器,负责从 ResourceManager 中申请资源,分配资源,同时通知 NodeManager 来为 Application 启动 Container。

Spark On Yarn 有两种模式,一种是 Yarn-client 模式,一种是 Yarn-cluster 模式。一般情况下,Yarn-client 模式使用在调试模式下,Yarn-cluster 模式使用在生产环境中。

1,Yarn-cluster 模式

在 Yarn-cluster 模式下,driver 运行在 Appliaction Master 上,Appliaction Master 进程同时负责驱动 Application 和从 Yarn 中申请资源,该进程运行在 Yarn container 内,所以启动 Application Master 的 client 可以立即关闭而不必持续到 Application 的生命周期,下图是 Yarn-cluster 模式:

在 Yarn-cluster 模式中,当用户向 Yarn 中提交一个应用程序后,Yarn 将分两个阶段运行该应用程序:

  1. 第一个阶段是把 Spark 的 driver 作为一个 ApplicationMaster 在 Yarn 集群中先启动;
  2. 第二个阶段是由 ApplicationMaster 创建应用程序,然后为它向 ResourceManager 申请资源,并启动 Executor 来运行 Task,同时监控它的整个运行过程,直到运行完成。

应用的运行结果不能在客户端显示(可以在 history server 中查看),所以最好将结果保存在 HDFS 而非 stdout 输出,客户端的终端显示的是作为 Yarn 的 job 的简单运行状况。

2,Yarn-client 模式

在 Yarn-client 中,driver 运行在 client 上,通过 ApplicationMaster 向 RM 获取资源。本地 driver 负责与所有的 executor container 进行交互,并将最后的结果汇总。结束掉终端,相当于 kill 掉这个 Spark 应用。因为 driver 在客户端,所以可以通过 webUI 访问 driver 的状态,默认是 访问,而 Yarn 通过 http:// hadoop1:8088 访问。工作流程如下图:

具体的执行流程如下图所示:

对比两种模式可以看出一点,Yarn-client 模式下的 driver 进程执行在本地机器上,而 Yarn-cluster 模式下的 driver 进程执行在 Yarn 集群上面。

参考:

转载地址:http://ixasa.baihongyu.com/

你可能感兴趣的文章
OpenStack简介
查看>>
我的友情链接
查看>>
Linux_ 文本处理三剑客中的“大宝剑“—Grep家族
查看>>
监控摄像机供电方式的设计
查看>>
节前车票好买 网络售票预售期将延长
查看>>
gradle idea 整合WEB开发
查看>>
JS加密Java解密
查看>>
mysql主从数据库不同步的2种解决方法
查看>>
could't create native thread的问题跟踪
查看>>
vue刷新页面-
查看>>
hiberante 注册自定义类型
查看>>
JVM参数调优八大技巧
查看>>
你都好意思骗我了,我哪好意思不信
查看>>
js动态添加的DIV中的onclick事件简单实例
查看>>
yum升级 CentOS 内核支持reiserfs
查看>>
nginx开启gzip缓存
查看>>
-bash: ulimit: pipe size: cannot modify limit: Invalid argument
查看>>
从租用企业邮箱到自建邮件服务器需要注意什么
查看>>
json解析
查看>>
暗黑三的一些你需要注意的事情
查看>>