远在 Hadoop v1 版本时期,Yarn 还没有出现,资源管理是和 Hadoop 耦合在一起的,我们没法在 Hadoop 集群运行除了 MapReduce 以外其他计算框架的任务,在策略和管理上也没那么成熟。Yarn 的出现可是说是为 Hadoop 生态圈大数据技术的百花齐放奠定了一个基础,一直到目前为止 Yarn 仍然是在大数据领域最常用的一个资源调度框架,Spark/Flink/Hive 等常用的计算框架都可以依赖 Yarn 来做资源调度,它的重要性不言而喻。
本篇面试内容划重点:调度流程、调度器的类别、调度策略。
关键概念和角色和资源调度流程
ResourceManager
ResourceManager 内部主要有两个组件:Scheduler 和 ApplicationManager。
- Scheduler 是一个资源调度器,它主要负责协调集群中各个应用的资源分配,且只负责调度容器 Containers,不会关心应用程序监控及其运行状态等信息,也不会插手任务失败的问题。调度的方式后面会有详细说明。
- ApplicationManager 负责系统中所有应用程序的管理工作。接收 Client 端的应用提交请求,为应用分配第一个 Container 来运行 ApplicationMaster,并监控 ApplicationMaster,在遇到失败时重启 ApplicationMaster 运行的 Container。
NodeManager
NodeMa