hadoop模块之——YARN

yarn:作业调度和全局资源管理系统。

yarn的相关服务:

resourcemanager(master):老大,负责资源管理;负责client端的作业提交请求;负责接受nodemanage的汇报(心跳);接受aapMaster的反馈;
nodemanager(slave):小弟,管理当前节点的资源;接受rm的命令;接受appMaster的命令;
container:容器;用于资源(内存、cpu、磁盘、网络等)抽象。
AppMaster : 作业的老大;负责整个作业重提交到结束的资源申请、监控、追踪、管理等。

作业(job)的提交:

配合mapreduce提交作业,并处理

 

mapreduce设计思路(设计框架)= = job调用过程

为了实现对大量数据的分析处理并汇总,需要hdfs和yarn做辅助工具。

 

客户端(client)用户封装的jar包(mapreduce程序)中包含appMaster --- 主管类,maptask ----- 计算任务类,reducetask------ 汇总数据类,mywcclient-----用户驱动类。

1、启动hdfs和yarn(包括rm和nm)为client服务,启动用户驱动类把任务(job)提交到RM,

2、RM把job放到job队列中,并返回jobid和hdfspath给client,

3、这时client把数据文件分片并把分片结果job.split上传到hdfs,同时上传资源文件(jar包),

4、然后RM为计算task分配一个资源,并启用nodemanager(物理硬件,管理资源)把hdfs的jar包和job.split分片信息下载到节点(nodemanager)中,每一个节点上都能启动一个或者多个Containner(在容器上启动一个JVM,运行java需要JVM---就是用来运行maptask和reducetask的)来执行java程序,

5、Containner和client建立连接,并启动appmaster --------- java -cp appMaster

6、之后,appmaster根据job.split分片信息向RM申请剩下所需的nodemanager,(nm怎么知道要执行maptask程序而不是其他程序呢?-------nm通过心跳获取job队列描述信息,决定要执行什么程序S),用来运行maptask程序的资源(包含各种硬件资源:内存,cpu等),并把jar包下载到各节点中,其他节点的maptask由appmaster启动,maptask给appMaster返回一个执行成功的状态,然后appMaster启动reducetask。(maptask和reduce执行结果都在hdfs中)

 

 

你可能感兴趣的:(hadoop)