大数据面试之Yarn


说明,感谢亮哥长期对我的帮助,此处多篇文章均为亮哥带我整理。以及参考诸多博主的文章。如果侵权,请及时指出,我会立马停止该行为;如有不足之处,还请大佬不吝指教,以期共同进步。

1.Yarn

1.1 Yarn 是什么?

YARN是Hadoop2.0版本新引入的资源管理系统,直接从MR1演化而来。

 核心思想:将MP1中JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。

  1)ResourceManager:负责整个集群的资源管理和调度。
  2)ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。

 YARN的出现,使得多个计算框架可以运行在一个集群当中。
  1)每个应用程序对应一个ApplicationMaster。
  2)目前可以支持多种计算框架运行在YARN上面比如MapReduce、Storm、Spark、Flink等。

参考

1.2 YARN的基本架构

从YARN的架构图来看,它主要由ResourceManager和ApplicationMaster、NodeManager、
    ApplicationMaster和Container等组件组成。

ResourceManager(RM)
    1)处理客户端请求;
    2)启动或监控ApplicationMaster;
    3)监控NodeManager;
    4)资源的分配与调度。

NodeManager(NM)
    1)单个节点上的资源管理;
    2)处理来自ResourceManager上的命令;
    3)处理来自ApplicationMaster上的命令。
  
ApplicationMaster(AM)  
    1)负责数据的切分;
    2)为应用程序申请资源并分配给内部的任务;
    3)任务的监控与容错。

Container

    对任务运行环境进行抽象,封装CPU、内存等多维度的资源以及环境变量、启动命令等任务运行相关的信息。
    比如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。
    YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

1.3 MapReduce on YARN

1、MapReduce on TARN
  1)YARN负责资源管理和调度;
  2)ApplicationMaster负责任务管理。

2、MapReduce ApplicationMaster
  1)MRAppMaster;
  2)每个MapReduce启动一个MRAppMaster;
  3)MRAppMaster负责任务切分、任务调度、任务监控和容错。

3、MRAppMaster任务调度
  1)YARN将资源分配给MRAppMaster;
  2)MRAppMaster进一步将资源分配给内部任务。

4、MRAppMaster容错
  1)MRAppMaster运行失败后,由YARN重新启动;
  2)任务运行失败后,由YARN重新申请资源。

1.4 Yarn工作流程

Yarn工作流程

1.5 Spark on YARN

Driver: 用户编写的程序的main函数就运行在driver上面,用户调用spark的api驱动driver进行工作,
    比如计划任务(schedule)、分发任务、收集结果等。
Cluster Manager:指yarn、Mesos等集群管理者。
Executor:实际执行任务的进程,运行在集群中的节点上。

参考

Spark on Yarn 架构解析程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值