【问题标题】:Different output files不同的输出文件
【发布时间】:2013-03-03 17:03:55
【问题描述】:

我希望 hadoop ( 0.22.0 ) 将内容写到不同的文件中,例如 部分-r-00000
部分-r-00001
部分-r-00002
部分-r-00003
每个reduce-job都有一个不同的文件。 我知道我可以使用 MultipleOutputs-Class,但这让我只能更改“部分”短语,但这不是我想要的。我希望能够说出哪个reducer 使用哪个输出文件以及它最后得到的数字。

【问题讨论】:

  • 你想打破这个漂亮的文件命名约定吗?作业完成后,您可以随时更改文件名。
  • 作业完成后如何更改文件名?在减少类的清理中,文件不存在。之后我就没有任何控制权了。 -- 我已经阅读了源代码,看起来最后的数字来自 TaskID,这是 reducer 的唯一标识符。所以我尝试将减速器的数量设置为 9(我不想 part-r-00001 ... part-r-00009 ),但仍然只有 part-r-00001 :/
  • 哦,伙计,这份工作。waitForCompletion 是我正在寻找的:D 非常感谢你。

标签: java hadoop


【解决方案1】:

当然你有控制权。作业完成时(例如,在 job.waitForCompletion(true) 之后)。您知道输出路径和使用的减速器数量。只需重命名文件,就是这样......要运行更多的reducer,您应该使用一个分区器类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多