开发者社区> 问答> 正文

MapTask工作机制有哪些阶段,作用分别是什么呢?

MapTask工作机制有哪些阶段,作用分别是什么呢?

展开
收起
游客vqgchj4kfdzsu 2021-12-05 23:56:06 345 0
1 条回答
写回答
取消 提交回答
  • (1)Read阶段:Map Task通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。

    (2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。

    (3)Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中。

    (4)Spill阶段:即“溢写”,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。

    (5)Combine阶段:当所有数据处理完成后,MapTask对所有临时文件进行一次合并,以确保最终只会生成一个数据文件。

    2021-12-06 10:26:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Flink中的两类新型状态存储 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
Android内存泄漏自动化链路分析组件--Probe 立即下载