美文网首页
Hadoop Shuffle的流程

Hadoop Shuffle的流程

作者: 清明小雨 | 来源:发表于2015-10-24 21:17 被阅读0次

    Shuffle描述的是从Map执行完毕到Reduce开始运行之前数据的传递过程。
    主要分为两个阶段:

    1. Map result-->磁盘
    1. map task会将结果放到内存的缓冲区中,当缓冲区中占用的比例超过阈值时,tasktracker会启动一个线程将结果写入磁盘,combiner会在spill之前执行一轮。
    2. 当多个map task都将结果写入磁盘,会在磁盘中生成大量小文件,tasktracker会启动另一个线程将这些小文件合并为一个大文件,合并之前会再次进行combiner,同时会保存一个索引文件,记录应该发送到每个reducer的数据块在大文件中的偏移量。
    2. 磁盘-->Reduce input
    1. reducer 会通过heartbeat周期性的向jobtrakcer查询map的进度和datanode节点地址和当前reducer在大文件中的偏移量(查找索引文件)
    2. 如果有mapper 完成任务,会启动多个线程通过http协议向对应datanode请求数据,获取数据之后会进行归并排序,使得具有相同的key的kv对连在一起,每个key启动一个reduce task进行相应的处理。

    相关文章

      网友评论

          本文标题:Hadoop Shuffle的流程

          本文链接:https://www.haomeiwen.com/subject/uoathttx.html