1.主从架构
resourcemanager rm
nodemanager nm
reduce task 可能等到所有的map task跑完,才开始计算;
也有可能map task才跑60%,就开始计算。 主要看计算逻辑的嵌套。
1.1 client向rm提交应用程序(作业),其中包含application master和启动命令等;
1.2 applications manager会给这个作业,分配第一个container容器,来运行applicationmaster。
1.3 application master就向applications manager注册,就可以在web界面查看作业的运行状态。
1.4 application master采取轮询的方式通过【RPC】协议向resource scheduler去申请和领取资源
(哪台DN机器,领取多少内存 CPU)
1.5 一旦application master拿到资源列表,就和对应的DN机器进行通信,要求启动container来运行task任务。
1.6 nm为task任务设置好运行的环境(container容器),将任务启动命令写在脚本里,通过脚本启动task。
1.7 然后各个task任务,通过【rpc】协议向application master主程序汇报进度和状态,以此可以随时掌握task的运行状态。
当task任务运行失败,也会重启container任务。
1.8 当所有的任务完成,application master向applications manager申请注销和关闭作业。
这个时候在web可以看任务是否完成,成功还是失败。