Hadoop之应用程序运行过程(面试)

来源:互联网 发布:java axis简单入门 编辑:程序博客网 时间:2024/06/07 15:57

Hadoop2.0,YARN也采用了Master/Slave结构。

Master-ResourceManager:负责整个集群资源的管理与调度,主要这么几个功能包括:

处理来自客户端的请求启动管理ApplicationMaster,接收来自ApplicationMaster的资源申请管理和接受来自NodeManager的资源汇报信息

Slave-NodeManager:负责管理Hadoop集群中单个计算节点,主要

从ApplicationMaster接收有关管理Container的命令(启动,停止Container等)向ResourceManager汇报各个Container运行状态。

注:Container是YARN中资源的抽象(就是封装了类似于某个机器上1个cpu,2g内存等;然后AM申请到这些资源,就到某台机器上运行任务)

运行过程

简版:

用户提交应用程序到RM上RM分配一个Container启动AMAM向RM注册,并开始申请资源,以在NM上启动任务NM启动任务,并且各个任务向AM汇报状态所有任务完成,AM向RM注销自己

详版:

用户将应用程序提交到ResourceManager上;ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信并在这个Container中启动应用程序的ApplicationMaster;ApplicationMaster向ResourceManager注册自己并与之通信(用户就可以通过ResourceManager查看程序状态),为内部要执行的任务申请资源,申请到资源后则与对应的NodeManager通信,以启动内部任务,AM并监听这些任务。NodeManager为任务设置好运行环境(包括环境变量,jar包等),将命令写到脚本中并通过脚本启动任务。各个任务通过某个RPC协议向ApplicationMaster汇报自己的运行状态。应用程序运行完成后,ApplicationMaster则向ResourceManager注销自己。

参考:董的博客
这里写图片描述
2015年10月22日晚

0 0