1.Yarn基础_介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15014327/article/details/83033540

一.Yarn介绍

  • Apache Hadoop YARN 一种新的Hadoop资源管理器,为上层提供统一的资源管理与任务调度及监控,提高集群管理效率、资源使用率、数据共享效率。MapReduce已经在hadoop-0.23上进行了全面检修,称之为MapReduce 2.0(MRv2)或YARN。

  • MRv2的基本思想是将JobTracker的两个主要功能,资源管理和作业调度/监视分成单独的守护进程。

二.MRv1和Yarn对比

由上图可知,

MRv1主要由JobTracker和TaskTracker组成。

JobTracker主要功能:

  • 资源管理,协调平衡集群中的计算节点,合理分配。
  • 任务调度,一个作业对应多个任务,负责任务调度、状态监控、容错管理等。

TaskTracker主要功能:

  • 执行任务,响应JobTracker命令,如启动、停止任务等。
  • 汇报心跳:汇报节点健康状况、资源使用情况等。汇报任务执行进度、任务运行状态等。

MRv2主要由ResourceManager、NodeManager、ApplicationMaster和Container组成。

  • ResourceManager 简称RM。整个集群同一时间提供服务的RM只有一个,它负责集群资源的统一管理和调度。以及还需要处理客户端的请求,例如:提交作业或结束作业等。并且监控集群中的NM,一旦某个NM挂了,那么就需要将该NM上运行的任务告诉AM来如何进行处理。
  • NodeManager 简称NM。整个集群中会有多个NM,它主要负责自己本身节点的资源管理和使用,以及定时向RM汇报本节点的资源使用情况。接收并处理来自RM的各种命令,例如:启动Container。NM还需要处理来自AM的命令,例如:AM会告诉NM需要启动多少个Container来跑task。
  • ApplicationMaster 简称AM。每个应用程序都对应着一个AM。例如:MapReduce会对应一个、Spark会对应一个。它主要负责应用程序的管理,为应用程序向RM申请资源(Core、Memory),将资源分配给内部的task。AM需要与NM通信,以此来启动或停止task。task是运行在Container里面的,所以AM也是运行在Container里面。
  • Container 封装了CPU、Memory等资源的一个容器,相当于是一个任务运行环境的抽象。

三.总结对比

1.MRv1不足

  • JobTracker单点故障,如果它挂掉,整个系统无法运转
  • JobTracker负载过重,限制了集群扩展,随着节点规模的增大,称为集群的瓶颈
  • 仅支持MR计算框架,适合批处理、基于磁盘的计算

2.Yarn改进

  • 资源管理与计算框架解耦设计,一个集群资源共享给上层各个计算框架,按需分配,提高资源利用率
  • 运维成本显著下降,只需运维一个集群,同时运行满足多种业务需求的计算框架
  • 集群内数据共享一致,数据不再需要集群间拷贝转移,达到共享互用
  • 避免单点故障、集群资源扩展得到合理解决

猜你喜欢

转载自blog.csdn.net/qq_15014327/article/details/83033540
今日推荐