【问题标题】:How to Hadoop Map Reduce entire file如何 Hadoop 映射减少整个文件
【发布时间】:2015-04-21 16:22:00
【问题描述】:

我玩过各种流式映射减少字数的示例,其中 Hadoop/Hbase 似乎占用了一个大文件并在节点之间平均地破坏它(在换行符处)。然后它将部分文档的每一行提交到我的代码的地图部分。我的问题是,当我有很多小的非结构化和半结构化文档时,如何让 Hadoop 将整个文档提交到我的地图代码?

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    文件拆分由 InputFormat.getSplits 计算。因此,对于每个输入文件,它都会获得拆分数量,并且每个拆分都提交给映射器。现在基于 InputFormat Mapper 将处理输入拆分。

    我们有不同类型的输入格式,例如 TextInputFormat,它将文本文件作为输入,并且对于每个拆分,它提供行偏移作为键和整行作为值,以在 Mapper 中的映射方法。其他 InputFormat 也是如此。

    现在,如果您有很多小文件,假设每个文件都小于块大小。然后每个文件将提供给不同的映射器。如果文件大小超过块大小,则将其分成两个块并在两个块上执行。

    考虑一个示例,其中每个输入文件为 1MB,而您有 64 个这样的文件。还假设您的块大小为 64MB。

    现在您将为每个文件启动 64 个映射器。

    假设您有 100 MB 的文件,并且您有 2 个这样的文件。

    现在您的 100 MB 文件将被拆分为 64MB + 36MB,并且将启动 4 个映射器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      相关资源
      最近更新 更多