Hadoop系列文章索引
讲完了hadoop的HDFS和MapReduce之后,还剩下最后一个部分,那就是yarn集群。yarn是从hadoop2.0开始引入的,它负责管理集群中的资源(主要是硬件资源,内存、cpu、存储器等),以及调度运行在yarn上的各种任务。
yarn把资源管理和作业监控进行了分离,分别用资源管理器(ResouceManager)和应用管理器(ApplicationMaster)来管理。
我们可以用http://node01:8088/cluster来查看yarn集群的监控管理界面。
yarn总体上是一个Master/Slave结构(主从架构),主要由ResourceManager、NodeManager、ApplicationMaster和Container几个部分组成。
ResourceManager负责管理集群中的硬件资源,给ApplicationMaster分配空闲的Container运行并监控运行状态。
NodeManager就是各个节点的管理器,定时向ResourceManager汇报本节点资源的使用情况和各个Container的运行状态,同时会接收并处理来自ApplicationMaster的Container启动和停止的请求。
ApplicationMaster负责监控应用,跟踪应用执行状态,重启失败任务等。它向ResourceManager协调资源,并与NodeManager协同工作完成Task的执行和监控。
Container是资源的一个抽象,它封装了某个节点的多维度资源,内存、CPU、磁盘、网络等。当ApplicationMaster向ResourceManager申请资源时,ResourceManager就是用Container的方式来返回资源的。
yarn有三种调度器:FIFO Scheduler(先进先出队列调度器,按照任务的先后顺序执行,如果一个任务执行后还有剩余资源供下一个任务执行,就会并行执行第二个任务,以此类推)、Capacity Scheduler(容量调度器,它把资源按照比例划分,划分再把每个部分划分成几个队列,并行执行任务,比例是可调的,这是Hadoop默认使用的调度器)、Fair Scheduler(公平调度器,第一个任务占用100%的资源,如果第一个任务未完成又来一个任务,就会各占50%,以此划分资源)。
yarn的介绍就到这里了,如果还想深入了解,可以访问官方文档http://hadoop.apache.org/docs/r2.7.5/hadoop-yarn/hadoop-yarn-site/YARN.html
感谢观看,如果您觉得文章写得还不错,不妨点个赞。如果您觉得有什么疑惑或者不对的地方,可以留下评论,看到我会及时回复的。如果您关注一下我,那么我会更高兴的,谢谢!