大数据之ZKFC和YARN的job提交

自动容灾(ZKFC)

ZKFC(是一个进程,和NN在同一个物理节点上)有两只手,分别拽着NN和Zookeeper。
(监控NameNode健康状态,并向Zookeeper注册NameNode);集群一启动,2个NN谁是
Active?谁又是Standby呢?
2个zkfc先判断自己的NN是否健康,如果健康,2个zkfc会向zoopkeeper集群抢着创建一个
节点,结果就是只有1个会最终创建成功,从而决定active地位和standby位置。如果
ZKFC1抢到了节点,ZKFC2没有抢到,ZKFC2也会监控watch这个节点。
如果ZKFC1的Active NN异常退出,ZKFC1最先知道,就访问ZK,ZK就会把曾经创建的节
点删掉。删除节点就是一个事件,谁监控这个节点,就会调用callback回调,ZKFC2就会
把自己的地位上升到active,但在此之前要先确认ZKFC1的节点是否真的挂掉?这就引入
了第三只手的概念。

ZKFC2通过ssh远程连接NN1尝试对方降级,判断对方是否挂了。确认真的不健康,才会
真的 上升地位之active。所以ZKFC2的步骤是:
1.创建新节点。
2.第三只手把对方降级。
3.把自己升级
那如果NN都没毛病,ZKFC挂掉了呢?Zoopkeeper有一个客户端session机制,集群启动
之后,2个ZKFC除了监控自己的NN,还要和Zoopkeeper建立一个tcp长连接,并各自获取
自己的session。只要一方的session失效,Zoopkeeper 就会删除该方创建的节点,同时另
一方创建节点,上升地位。

yarn的job提交

图示
在这里插入图片描述
`

  1. 调⽤waitForCompletion⽅法每秒轮询作业的进度,内部封装了submit()⽅法,⽤于
    创建JobCommiter实例,并且调⽤其的submitJobInternal⽅法。提交成功后,如果有状
    态改变,就会把进度报告到控制台。错误也会报告到 控制台
  2. JobCommiter实例会向ResourceManager申请⼀个新应⽤ID,⽤于MapReduce作业
    ID。这期间JobCommiter也会进⾏检查输出路径的情况,以及计算输⼊分⽚。
  3. 如果成功申请到ID,就会将运⾏作业所需要的资源(包括作业jar⽂件,配置⽂件和计算
    所得的输⼊分⽚元数据⽂件)上传到⼀个⽤ID命名的⽬录下的HDFS上。此时副本个数默认是
  4. 准备⼯作已经做好,再通知ResourceManager调⽤submitApplication⽅法提交作
    业。
  5. ResourceManager调⽤submitApplication⽅法后,会通知Yarn调度器 (Scheduler),调度器分配⼀个容器,在节点管理器的管理下在容器中启动 application master进程。
  6. application master的主类是MRAppMaster,其主要作⽤是初始化任务,并接受来⾃任务的进度和完成报告。
  7. 然后从HDFS上接受资源,主要是split。然后为每⼀个split创建MapTask以及参数指定的ReduceTask,任务ID在此时分配
  8. 然后Application Master会向资源管理器请求容器,⾸先为MapTask申请容器,然后再为ReduceTask申请容器。(5%)
  9. ⼀旦ResourceManager中的调度器(Scheduler),为Task分配了⼀个特定节点上的容器,Application Master就会与NodeManager进⾏通信来启动容器。
  10. 运⾏任务是由YarnChild来执⾏的,运⾏任务前,先将资源本地化(jar⽂件,配置⽂件,缓存⽂件)
  11. 然后开始运⾏MapTask或ReduceTask。
  12. 当收到最后⼀个任务已经完成的通知后,application master会把作业状态设置为
    success。然后Job轮询时,知道成功完成,就会通知客户端,并把统计信息输出到控制台


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值