hadoop2的思想架构

mapreduce 2 思想架构

mr2解决了mr1的jobTracker的单点颈瓶问题,这个问题会影响hadoop的扩展性,集群的可靠性,mr1中jobTracker负责集群作业的分发,管理,调度,同时还必须和集群中所有的节点保持通信,了解集群的资源情况和运行的状态,所以jobTracker就负担的太多了,而TaskTracker就只负责作业运行,所以jobTracker的工作太过于沉重。
mr2中将资源管理和作业管理拆开,全局资源管理器(resourceManager)负责整个集群的资源管理。分离出来的作业管理由作业应用主体管理(Applicatoon Master),TaskTracker演化成节点管理器(node manager)。这样全局资源管理器和局部的资源管理器就组成了数据的计算框架。app Mstr与资源管理器通信获取资源,与接点管理器配合完成任务
(1)资源管理器
资源管理器根据功能不同分为2个组件:一个是调度器一个是应用管理器
调度器:根据集群中的容量,队列,资源等限制,将资源分配给正在运行的应用,虽然叫做调度器单他只负责资源的分配,不负责作业是否运行失败,硬件是否失败,是否重启任务。调度器根据各个应用的资源需求和资源容器(containne各个节点的内存,cpu,磁盘等资源封装在一起的一个抽象的概念)
应用管理器:负责接收作业,获取第一个资源容器用于执行应用的主题任务并为重启的任务主题分配容器
(2)节点管理器(node manager)
节点管理器是每个节点的代理框架。负责启动容器,监控容器的资源使用(cpu,内存,io),并把这些信息发送给调度器。应用对应的应用主体负责向调度器请求资源容器,并跟踪这些容器的状态执行情况
每一个节点都会有一个节点管理器,他们主要职责是;
(1)启动调度器分配给应用的容器
(2)保证已启用的容器不会超过分配给应用的资源量
(3)为task构建容器环境
(4)为所在的节点管理一个存储本地资源的服务
应用主体和应用是一一对应的,他主要职责是:
(1)与调度器协商分配资源
(2)与节点管理器协作,在合适的容器中运行组件task,,并监控这些task
(3)如果调度器出现故障,应用主体则会想调度器重启申请资源
(4)计算出应用程序消耗的资源,并转化为调度器可用的信息包
(5)在应用主体出现故障后,应用管理器会重启负责重启他,但由应用主体自己从之前保存的应用程序执行状态中恢复应用程序
应用主体有一下组件:
原文地址:https://www.cnblogs.com/zhangXingSheng/p/6222587.html