夜雨聆风学习资料网

ARTICLE · 1090616

Hadoop 源码学习手册 05 · YARN:把集群资

Hadoop 源码学习手册 05 · YARN:把集群资

Hadoop 源码学习手册 05 · YARN:把集群资

以前 Hadoop 1.x 的 JobTracker 又管资源又管作业,一挂全挂,还只能跑 MapReduce。YARN 直接把这两件事拆开:RM 只管分资源,每个应用自带一个 AM 管自己的活,于是同一个集群能同时跑 MapReduce、Spark、Flink。

整个架构就像个写字楼物业。RM 是总调度台,NM 是楼层管家,AM 是每个租户的项目经理。Container 就是一个工位,本质是道普通进程,靠 cgroups 限制 CPU 和内存。它可不是 Docker 那种物理容器。

一个 Container 从申请到落地,是 RM、AM、NM 三方接力。AM 每隔 1 秒发心跳去 RM 那排队要资源。RM 按层级队列分好,优先把同节点的工位塞给任务,省网络传输。分配结果顺带塞进心跳回给 AM,不搞额外连接。

AM 拿到凭证后,带着 token 去找对应 NM 启动进程。为了防止网络超时重传导致重复分资源,每次请求都带个递增的 responseId,RM 一看就知道这是不是重发。NM 这边也不含糊,先下载依赖,再拉起进程,最后清理现场,全靠状态机驱动。

RM 不启动进程,AM 不分配资源,NM 不决策——三者各司其职。

原文Hadoop 源码学习手册 05 · YARN:把集群资源切成容器分给应用|口袋通识馆
山西,2小时前,

相关学习资料