gpt4 book ai didi

hadoop - hadoop作业输出文件

转载 作者:行者123 更新时间:2023-12-02 21:26:51 25 4
gpt4 key购买 nike

我目前有一个hadoop oozie工作正在运行。输出文件是自动生成的。预期的输出文件数仅为一个;但是,有两个输出文件称为part-r-00000和part-r-00001。有时,第一个(part-r-00000)有数据,而第二个(part-r-00001)没有数据。有时,第二个有,而第一个没有。谁能告诉我为什么?另外,如何将输出文件设置为part-r-00000?

最佳答案

在Hadoop中,输出文件是Reducers的产品(或者Mappers,如果它是仅在 map 端执行的工作,在这种情况下,它将是part-m-xxxxx文件)。如果您的作业使用了两个化简器,则意味着每一个完成其部分后,它将以part-r-xxxxx的形式写入输出目录,其中的数字表示哪个化简器将其写出了。

也就是说,您不能指定单个输出文件,而只能指定目录。要将所有文件从输出目录放入单个文件,请使用:

hdfs dfs -getmerge <src> <localdst> [addnl]

或者,如果您使用的是旧版的hadoop:
hadoop fs -getmerge <src> <localdst> [addnl]

有关更多信息,请参见 shell guide

至于为什么输出文件之一为空,则根据 grouping comparator将数据从Mappers传递到Reducers。如果指定两个 reducer ,但只有一组(由分组比较器标识),则不会从一个 reducer 写入数据。另外,如果化简器中的某些逻辑阻止了写操作,那是另一个原因,可能无法从一个化简器写入数据。

关于hadoop - hadoop作业输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com