[MapReduce程序分布式启动运行全流程]

 

1.job.waitForCompletion,请求运行一个app,向ResourcesManager申请资源

2.ResourcesManager返回jobId给客户端,并分配HDFS上的资源路径

3.拷贝jar包到HDFS上的资源路径下,查看数据输入的目录,并计算map任务切片规划

  • 查看目录中共有几个文件
  • 对每个文件:判断,剩余的长度是否>128M*1.1(),如果是则划分为一个128M的任务片,否则,剩余的长度划分为一个切片

4.先把切片信息变成数组,序列化这个切片数组job.split

5.将job对象编程xml配置文件上传job.xml

6.上传程序的jar包文件

7.客户端向ResourceManager请求一个容器来运行一个进程(MRAppMaster):1.5G+1core,可能要放入到任务调度队列中

8.ResourceManager指定nodemanager,nodemanage领取任务创建容器,到HDFS资源路径中拷贝job.jar,job.xml和job.split

9.客户端向指定的nodemanager发送启动MRAppMaster程序的shell命令

10.MRappMaster根据job.split和job.xml获知要启动多少MapTask和ReduceTask,它就会向ResourceManager申请相应数量的容器

11.MRAppMaster向创建好的容器发送启动MapTask或ReduceTask的命令

MapReduce程序内部数据处理全流程

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值