Hadoop入门之Mapreduce部分流程解析

来源:互联网 发布:windows lts 编辑:程序博客网 时间:2024/05/19 21:02

1.建立连接后,任务文件的分片

(1)客户端和resourcemanager建立连接后需要提交一些文件来构建Job任务,分片的文件是其中之一,还有Job.xml 和Jar
(2)分片主要的作用是为后面的Maptask过程确定启动多少个maptask及其所要处理的文件的划分(默认以文件或者blackSzie划分)
(3)具体分片数量的确定在 org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(JobContext)


2.提交文件到Yarn生成MRAppMaster进行Map和reduce过程的调度 


3.执行Maptask过程



(1)MRAppMaster 根据分片文件的配置信息,在相应的机器上启动相应的Maptask任务(YarnChild)

(2)maptask按照要求读取指定文件(一行一行)经过Map过程的处理(用户自己写的),最后收集处理后根据设置输出指定分区的数据
    使用到partition类来确定分区(即reduce获取的输入)


4.shuffle过程衔接Map和Reduce (这里还没学到不做总结)

5.MRAppMaster启动指定数量的reducetask,各个reducetask从每个maptask输出的分区上获取属于自己的数据
   执行相关模块的内容(其中有用户自定义的reduce过程),最后在要输入的目录下每个reducetask会生成一个最终的文件.




原创粉丝点击