hadoop2.x学习笔记(一):YARN

一、YARN产生的背景

MapReduce1.x存在的问题:单点故障&节点压力大不易扩展。

资源利用率&成本

催生了YARN的诞生 

不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度。

XXX on YARN的好处:与其他计算框架共享集群资源,按资源需要分配,进而提高集群资源的利用率。

XXX:Spark/MapReduce/Storm/Flink

二、YARN概述

1 Yet Another Resource Negotiator

2 通用资源管理系统

3 为上层应用提供统一的资源管理和调度

三、YARN的架构

1 ResourceMananger:RM

  整个集群提供服务的RM只有一个(生产中有两个,一个主,一个备),负责集群资源的统一管理和调度。

    |-- 处理客户端的请求:提交一个作业、杀死一个作业。

    |--监控NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉AM如何进行处理。

2 NodeManager:NM

  整个集群中有多个,负责自己本身节点资源管理和使用。

    |--定时向RM汇报本节点的资源使用情况。

    |--接收并处理来自RM的各种命令:启动Container等。

    |--处理来自AM的命令。

    |--单个节点的资源管理。

3 ApplicationMaster:AM

  每一个应用程序对应一个:MR、Spark,负责应用程序的管理。

    |--为每个应用程序向RM申请资源(core、memory),分配给内部task。

    |--需要与NM通信:启动/停止task,task是运行在Container里面,AM也是运行在Container里面。

4 Container

  |--封装了CPU、Memory等资源的一个容器

  |--是一个任务运行环境的抽象。

5 Client

  |--提交作业。

  |--查询作业的运行进度。

  |--杀死作业。

四、YARN执行流程

 

五、YARN的环境搭建

1 yarn-site.xml

<property>

  <name>yarn.nodemanager.aux-services</name>

  <value>mapreduce_shuffle</value>

</property>

2 mapred-site.xml

<property>

  <name>mapreduce.framework.name</name>

  <value>yarn</value>

</property>

3 启动YARN相关的进程

sbin/start-yarn.sh

 

4 验证

  |-- jps

    |--ResourceManager

    |--NodeManager

  |-- http://master01:8088/

5 停止YARN相关的进程

sbin/stop-yarn.sh

 

六、MapReduce作业提交到YARN上运行

命令:

hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3 //前者是Map的数量,后者是取样的数量
posted @ 2018-04-28 15:40  老王和小杨  阅读(...)  评论(...编辑  收藏