hadoop1.x的时候 MapReduce存在的问题
- job类型
- 只能是MapReduce任务
- 集群资源管理
- 只有一个jobTracker ,单点故障(SPOF)
- 每个Slave机器可运行的最大Map Task和Reduce Task数量固定
- 难以共享集群
- Spark Storm
yarn 工作流程
- 1 用户向yarn提交应用程序 ,其中报告用户程序,相关文件,启动applicationMaster命令
- 2 ResourceManager 为该应用程序分配一个Container,并且与Container 所在的NodeManager 通信,要求NodeManager在这个Container中启动应用程序对应的applicationMaster
- 3 applicationMaster首先会向ResourceManager注册 ,用户可以直接通过ResourceManager查看应用程序状态,然后为它准备该应用程序各个任务申请资源,并监控他们的运行状态直到运行结束 重复4-7步骤
- 4 applicationMaster 采取轮询的方式通过RPC协议向ResourceManager申请和领取资源
- 5 一旦applicationMaster申请到资源后,便会与申请到的Container所对应的nodeManager进行通信,并且要求它在该Container中启动任务
- 6 任务启动,nodeManager为要启动的任务配置好环境,包括环境变量,jar包,二进制程序
- 7 各个任务通过RPC 协议向其对应的applicationMaster汇报自己的运行状态和进度,以让applicationMaster随时掌握各个人物的运行状态,从而可以再任务运行失败是重启任务
- 8 运行完毕后,applicationMaster会向ResourceManager要求注销自己