这两天有粉丝问我,在一个成熟大数据系统中,最不能缺少的核心是什么?我仔细思考了一下,是消息系统之王的 Kafka 吗?不,还有 RocketMQ 和 Pulsar 可以选。是人人都会接触的协调系统 Zookeeper 吗?也未必,Redis 如日中天!接下来,我顺着一个成熟大数据系统的工作模式反复考虑,最终有了结论:任何一个分布式程序执行,都需要从系统申请资源。我认为,大数据系统的核心是 Hadoop 集群中的资源管理模块——YARN!YARN 从 Hadoop 2.0 之后被引入,一经推出,便迅速成为最受欢迎的分布式资源调度框架,负责管理集群中的全部资源,以及调度运行在YARN之上的各种计算任务。
像 HDFS 的核心组件一样,YARN 同样是主从结构,核心是Resource Manager、NodeManager、ApplicationMaster、Container 组件。
YARN 的实现逻辑与基本架构
YARN 的功能非常强大,但实现原理也非常复杂。JobTracker、TaskTracker模型的最大缺陷是扩展性差,YARN 利用 Resource Manager 解耦后分而治之,大大提升了扩展性。
基于 Hadoop 构建大数据生态的公司集群规模一般都很大,主要是 BATJ 华为等一线互联网大厂,而 Hadoop 最核心的 3 大部分就是 HDFS、YARN、MapReduce。YARN 自从诞生开始,就越来越被大量企业作为大数据领域核心基础平台使用,掌握了 YARN 就等于掌握了 Hadoop 的核心,也就拥有了大数据领域的核心竞争力!