Spark的Yarn模式运行机制

Yarn模式运行机制

Yarn Cluster模式--用于生产

  • cluster模式提交任务流程图
  • Client先向RM(ResourceManager)提交请求,并上传jar到HDFS上
  • RM在集群中选择一个NM,在其上启动AppMaster,在AppMaster中实例化SparkContext(Driver)
  • AppMaster向RM注册应用程序,注册的目的是申请资源。RM监控App的运行状态直到结束
  • AppMaster申请到资源后,与NM通信,在Container中启动Executor进程
  • Executor向Driver反向注册,申请任务
  • Driver对应用进行解析,最后将Task发送到Executor上
  • Executor中执行Task,并将执行结果或状态汇报给Driver
  • 应用执行完毕,AppMaster通知RM注销应用,回收资源

Yarn Client 模式--用于调试

  • Yarn Client提交任务流程图
  • 启动应用程序实例化SparkContext,向RM申请启动AppMaster
  • RM在集群中选择一个NM,在其上启动AppMaster
  • AppMaster向RM注册应用程序,注册的目的是申请资源。RM监控App的运行状态直到结束
  • AppMaster申请到资源后,与NM通信,在Container中启动Executor进程
  • Executor启动之后向Driver反向注册,申请任务
  • Driver对应用进行解析,最后将Task发送到Executor上
  • Executor中执行Task,并将执行结果或状态汇报给Driver
  • 应用执行完毕,AppMaster通知RM注销应用,回收资源

Client模式与Cluster模式的区别

  • client模式:

  • Driver运行在客户端

  • 适用于调试,能直接看见各种日志

  • 连接断了,任务就挂了

  • cluster模式:

  • Driver运行在AppMaster中(运行在集群中)

  • 适合于生产,日志需要登录到某个节点才能看到

  • 连接断了,任务不受影响

核心组件:

Master(Cluster Manager):集群中的管理节点,管理集群资源,通知 Worker 启动 Executor 或 Driver

Worker :集群中的工作节点,负责管理本节点的资源,定期向Master汇报心跳,接收Master的命令,启动Driver或 Executor

Driver:执行 Spark 应用中的 main 方法,负责实际代码的执行工作。其主要任务:

  • 负责向集群申请资源,向master注册信息
  • Executor启动后向 Driver 反向注册
  • 负责作业的解析、生成Stage并调度Task到Executor上
  • 监控Task的执行情况,执行完毕后释放资源
  • 通知 Master 注销应用程序

Executor:是一个 JVM 进程,负责执行具体的Task。Spark 应用启动时, Executor节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。如果有 Executor 节点发生了故障或崩溃, 会将出错节点上的任务调度到其他Executor 节点上继续运行。Executor 核心功能:

  • 负责运行组成 Spark 应用的任务,并将结果返回给 Driver 进程
  • 通过自身的 Block Manage 为应用程序缓存RDD

集群部署方式

Standalone:独立模式,Spark 原生的简单集群管理器,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统,使用 Standalone 可以很方便地搭建一个集群;

Hadoop YARN:统一的资源管理机制,在上面可以运行多套计算框架,如MapReduce、Storm 等,根据driver 在集群中的位置不同,分为 yarn client 和 yarn cluster;

Apache Mesos:一个强大的分布式资源管理框架,它允许多种不同的框架部署在其上

提交任务时,以下参数共同决定了 Spark 运行方式:

  • master MASTER_URL :决定了 Spark 任务提交给哪种集群处理
  • deploy-mode DEPLOY_MODE:决定了 Driver 的运行方式,可选值为 Client(缺省值) 或 Cluster

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值