【问题标题】:Map reduce value list order problemMap reduce值列表顺序问题
【发布时间】:2011-11-27 17:56:36
【问题描述】:

正如我们所知,Hadoop 使用每个键对值进行分组,并将它们发送到相同的 reduce 任务。 假设我在 hdfs 上的文件中有下一行。 第 1 行 线2 第 3 行 …… 亚麻布 在地图任务中,我打印文件名和行。 在减少我收到不同的订单。例如 key=> { line3, line1, line2,....} 现在,我有下一个问题。我想获取这个值列表,以便它们位于文件中, 作为 key =>{ line1, line2,...linen} 有什么办法吗?

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    如果您使用TextInputFormat,您将获得<LongWritable, Text> 作为映射器输入。 LongWritable 部分(或键)是文件中行的位置(不是行号,而是我认为从文件开头的位置)。您可以使用该部分来跟踪哪一行是第一行。例如,映射器可以将<Filename, TextPair(Position, Line)> 输出为输出,而不是像您现在所做的那样输出<Filename, Line>。然后,您可以根据 Pair 的第一部分(位置)对 reducer 获得的键进行排序,并且您应该以相同的顺序取回行。

    【讨论】:

    • 如果有不止一个reducer,那么这些行会去不同的reducer。如果使用这种方法的 i/p 和 o/p 的顺序应该相同,那么应该只有一个 reducer。
    • 没有 Praveen,我认为你不正确,我会使用 api 直接输出到 hdfs,因此我会有正确的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多