MapReduce1.x与MapReduce2.x差异
一.MapReduce1.x简介
1.图解
2.JobTracker
主节点,单点,负责调度所有的作用和监控整个集群的资源负载。
3.TaskTracker
从节点,自身节点资源管理和JobTracker进行心跳联系,汇报资源和获取task。
4.Client
以作业为单位,规划作业计算分布,提交作业资源到HDFS,最终提交作业到JobTracker。
二.MapReduce1.x的弊端
1.JobTracker负载过重,存在单点故障。
2.资源管理和计算调度强耦合,其它计算框架难以复用其资源管理。
3.不同框架对资源不能全局管理。
三.Hadoop2.x简介【基于YARN】
1.图解
2.ResourceManager
主节点,负责整个集群的资源管理。
3.NodeManager
与ResourceManager汇报资源,管理Container生命周期,计算框架中的角色都以Container表示。
4.Container
默认NodeManager启动线程监控Container大小,超出申请资源额度会kill掉。支持Linux内核的Cgroup。
5.Client
ResourceManager-client:请求资源创建ApplicationMaster-client。
ApplicationMaster-client:与ApplicationMaster交互。
四.YARN
YARN【Yet Another Resource Negotiator】:Hadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的。
核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现:
1.ResourceManager:负责整个集群的资源管理和调度。
2.ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。
YARN的引入,使得多个计算框架可运行在一个集群中 每个应用程序对应一个ApplicationMaster 目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等。