7.3MapReduce工作流程
发布网友
发布时间:2024-09-30 19:25
我来回答
共1个回答
热心网友
时间:2024-10-16 02:17
(1) 初始阶段,InputFormat从HDFS读取数据并执行分片操作。
(2) 随后,每个分片启动一个map任务独立处理。
(3) map任务输出经过分区、排序、合并后,分发给所有rece节点,此过程称为shuffle。
(4) rece节点处理结果后写入HDFS。
map任务间不直接通信,rece间也不直接交换信息,均由MapRece框架处理。
详细分阶段说明如下:
InputFormat模块读取HDFS文件,并进行格式验证和分片。
记录阅读器(Record Reader)根据分片读取数据,输出key-value对。
用户自定义的map函数处理key-value,输出中间结果。
中间结果进行shuffle处理,包括分区、排序、合并,形成key-list[value]。
rece函数处理key-value,输出结果。
OutputFormat检查输出格式,并确保输出目录存在,然后将结果写入HDFS。
文件在HDFS中存储为多个block,每个block有多个副本。分片是对整个文件的处理,逻辑上合并block。
分片数量由用户定义,过多会消耗管理资源,理想情况下与block大小一致。
Map端Shuffle涉及缓存处理、分区、排序、合并,并在一定条件下写入磁盘。
Rece端Shuffle包括从多个Map任务接收数据、缓存处理、分区、排序、合并,并在达到条件时写入磁盘。
系统角度看,MapRece运行涉及部署、任务分配、处理、结果写入HDFS。
参考资料:
https://www.icourse163.org/learn/XMU-1002335004#/learn/content?type=detail&id=1214310152&sm=1