Hadoop-Yarn资源调度流程

Hadoop-Yarn资源调度流程_第1张图片
Hadoop-Yarn资源调度流程_第2张图片

  1. Client向YARN提交program信息到ResourceManager,一个program对应一个ApplicationMaster(在Container中)。

  2. ResourceManager为该program向NodeManager申请一个资源(Container),并且要求Container启动ApplicationMaster

  3. ApplicationMaster向ResourceManager注册,然后为各个任务task采用轮询的方式通过RPC协议向ResourceManager申请Container,会要求NodeManager分配资源

  4. Application Master再发送请求到NodeManager,启动任务task

  5. NodeManager设置Container的运行时环境(包括环境变量、JAR包、二进制程序等),里面的ContainerLauncher通过脚本启动任务

  6. 各个任务向ApplicationMaster汇报自己的状态和进度,ApplicationMaster可以在任务失败时重启任务

  7. 在应用程序运行过程中,NodeManager和ResourceManager的交互(心跳),Application Master和task交互是一直进行的。用户可随时通过ResourceManage查询应用程序的当前运行状态

  8. 应用程序运行完成后,Application Master向Resource Manager 销并关闭自己
    Hadoop-Yarn资源调度流程_第3张图片
    送一份Map Resource流程图
    Hadoop-Yarn资源调度流程_第4张图片
    Hadoop-Yarn资源调度流程_第5张图片

你可能感兴趣的:(大数据,Linux系统)