扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。
创新互联专注于肥城网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供肥城营销型网站建设,肥城网站制作、肥城网页设计、肥城网站官网定制、小程序开发服务,打造肥城网络公司原创品牌,更为您提供肥城网站排名全网营销落地服务。
- JobTracker是集群的事务的集中处理,存在单点故障
- JobTracker需要完成得任务太多,既要维护job的状态又要维护job的task的状态,造成资源消耗过多
- 在 TaskTracker 端,用Map/Reduce Task作为资源的表示过于简单,没有考虑到CPU。内存,等资源情况,将两个需要大消耗量的Task调度到一起,很容易出现OOM。
- 把资源强制划分为 Map/Reduce Slot,当只有 MapTask 时,TeduceSlot 不能用;当只有 ReduceTask 时,MapSlot 不能用,容易造成资源利用不足。
MRv2 最基本的想法是将原 JobTracker 主要的资源管理和 Job 调度/监视功能分开作为两个单独的守护进程。有一个全局的ResourceManager(RM)和每个 Application 有一个ApplicationMaster(AM),Application 相当于 MapReduce Job 或者 DAG jobs。ResourceManager和 NodeManager(NM)组成了基本的数据计算框架。ResourceManager 协调集群的资源利用,任何 Client 或者运行着的 applicatitonMaster 想要运行 Job 或者 Task 都得向 RM 申请一定的资源。ApplicatonMaster 是一个框架特殊的库,对于 MapReduce 框架而言有它自己的 AM 实现,
用户也可以实现自己的 AM,在运行的时候,AM 会与 NM 一起来启动和监视 Tasks。
ResourceManager:ResoueceMananer是基于应用程序对集群资源的需求进行调度的yarn集群的主控制节点,负责协调和管理整个集群,相应用户提交的不同的类型的应用程序,解析、调度、监控等工作。ResourceManager会为每一个application启动一个MRappmaster,并且MRappmaster分散在各个nodemanager上。
ResourceManager只要有两个部分组成:
- 应用程序管理器(ApplicationsManager, ASM): 管理和监控所有的应用程序的MRappmaster,启动应用程序的MRappmaster,以及MRappmaster失败重启
- 调度器(Scheduler):底层是一个队列,负责应用程序的执行时间和顺序
- FIFO(先进先出的队列):先提交的任务先执行 后提交的后执行 内部只维护一个队列
- Fair 公平调度器:所有的计算任务进行资源的平分,全局中如果只有一个job那么当前的job占用所有的资源
- Capacity(计算能力调度器):可以根据实际的job任务的大小,进行资源的配置
NodeManager:Nodemanager是yarn集群中正真资源的提供者,也是真正执行应用程序的容器的提供者,监控应用程序的资源情况(cpu、网络、IO、内存)。并通过心跳向集群的主节点ResourceManager 进行汇报以及更新自己的健康状况。同时也会监督container的生命周期管理,监控每个container的资源情况
MRAppMaster:为当前的job的mapTask和reduceTask向ResourceManager 申请资源、监控当前job的mapTask和reduceTask的运行状况和进度、为失败的MapTask和reduceTask重启、负责对mapTask和reduceTask的资源回收。
Container:Container 是一个容器,一个抽象的逻辑资源单位。容器是由ResourceManager Scheduler 服务动态分配的资源构成的,它包括该节点上的一定量的cpu、网络、IO、内存,MapReduce 程序的所有 Task 都是在一个容器里执行完成的。
hadoop 1.x:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流