gpt4 book ai didi

hadoop - 如何在Hadoop中两次执行OutputFormat.RecordWriter write(key,value)两次

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

我有一种情况,我需要两次遍历OutputFormat的键/值对。在本质上:

 OutputFormat.getRecordWriter() // returns RecordWriteType1
... and when all those are complete across all machines
OutputFormat.getRecordWriter() // return RecordWriterType2

两个RecordWriterType1 / 2的类型相同。有没有办法做到这一点?

谢谢,
马可。

最佳答案

不幸的是,您不能简单地对化简器数据运行两次。

您确实有一些选择可以解决:

  • 使用身份缩减器将排序后的数据输出到HDFS,然后使用身份映射器对数据运行两个作业-浪费但很简单,如果您没有那么多数据
  • 如上所述,但是您可以使用仅映射作业和键比较器来模拟化简函数,因为您知道输入已被排序(您需要确保将拆分大小设置为足够大,以确保来自第一个的所有数据reducer输出文件在单个映射器中处理,并且不会拆分为2个以上的映射器实例
  • 您可以将化简器键/值写入化简器中的本地磁盘,然后在化简器的清理方法中,按照第二个选项中的详细说明打开本地文件并进行处理(使用组比较器确定键边界) 。
  • 如果您浏览ReduceTask的源代码,甚至可以“滥用”本地磁盘上的合并排序段,然后再次运行数据,但是此选项纯属纯朴的黑客...
  • 关于hadoop - 如何在Hadoop中两次执行OutputFormat.RecordWriter write(key,value)两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144490/

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