mapper或reducer如何将数据写入hdfs?

ou6hu8tu  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(463)

在mapreduce程序中,我们只需要设置输出路径 FileOutputFormat.setOutputPath 并使用mapper或reducer的 context.write(key, value) ;
文件编写概念实际上是如何工作的?
mapper/reducer将不断地发出记录。
每个记录都会直接发送到hdfs吗?

一旦申请完成,那么它将做一个 copyFromLocal ?
或者
它在本地文件系统中为每个Map器或还原器创建一个临时文件?
http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapreducetutorial.html#example:\u wordcount\u v1.0版

uklbhaso

uklbhaso1#

记录被写入字节流,并定期刷新到hdfs上的磁盘。每个记录不是单独写的,因为这将是一个非常昂贵的操作。此外,数据不会写入本地文件系统,因为这将是一个非常昂贵的操作。
每当我对hadoop有任何疑问时,我都倾向于利用hadoop的开源特性,深入研究源代码。在本例中,您需要查看输出数据时使用的类—textoutputformat和fsdataoutputstream。

相关问题