Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop mapper或reducer如何将数据写入HDFS?_Hadoop_Hdfs - Fatal编程技术网

Hadoop mapper或reducer如何将数据写入HDFS?

Hadoop mapper或reducer如何将数据写入HDFS?,hadoop,hdfs,Hadoop,Hdfs,在MapReduce程序中,我们只需设置输出路径FileOutputFormat.setOutputPath,并使用mapper或reducer的上下文将结果写入HDFS文件。write(key,value) 文件编写概念实际上是如何工作的 Mapper/Reducer将持续发送记录 每个记录是否会直接发送到HDFS 或 一旦应用程序完成,它将执行copyFromLocal 或 是否在本地文件系统中为每个映射器或还原器创建临时文件 记录被写入字节流,并定期刷新到HDFS上的磁盘。每个记录都不

在MapReduce程序中,我们只需设置输出路径
FileOutputFormat.setOutputPath
,并使用mapper或reducer的
上下文将结果写入HDFS文件。write(key,value)

文件编写概念实际上是如何工作的

  • Mapper/Reducer将持续发送记录

    每个记录是否会直接发送到HDFS

一旦应用程序完成,它将执行
copyFromLocal

是否在本地文件系统中为每个映射器或还原器创建临时文件


记录被写入字节流,并定期刷新到HDFS上的磁盘。每个记录都不是单独编写的,因为这将是一个非常昂贵的操作。此外,数据不会写入本地文件系统,因为这将是一个非常昂贵的操作


每当我对Hadoop有疑问时,我都倾向于利用它的开源特性,深入研究源代码。在本例中,您需要查看输出数据时使用的类—TextOutputFormat和FSDataOutputStream。

映射任务刷新本地磁盘中的数据(“溢出记录”是其名称)。Reduce tasks将数据发送到HDFS。当您说“Reduce tasks将数据发送到HDFS”时,这是否意味着Map Reduce将数据附加到一个文件中?我不知道Map Output实现的细节,但我记得在某个地方读到过哪个Map操作将您的输出写入SequenceFile格式以及每个文件的io.file.buffer.size大小。合并器将在此之前执行,排序操作将读取这些文件。但我现在没有任何参考资料。