【问题标题】:How to process a large file in Hadoop?如何在Hadoop中处理一个大文件?
【发布时间】:2014-06-12 02:58:30
【问题描述】:

这是一个菜鸟问题

我有一个 hadoop 设置并考虑使用 Giraph 或 Hama 进行基于图形的计算。我的表单中有一个大文件

3 4 3 7 3 8 5 6

其中每一列表示顶点,每一行表示边。对于普通程序,我将整个文件读入类似

的形式

3: [4,7,8] 5:[6]

这意味着顶点 3 的边数为 4、7、8,而 5 的边数为 6。

如何处理 Hadoop 中大文件的这种情况?像这样阅读意味着将全部内容加载到 RAM 中?在 Hadoop 中最好的方法是什么?

【问题讨论】:

    标签: hadoop giraph hama


    【解决方案1】:

    Hadoop 做水平并行。对于大型输入文件,它将输入分成一些较小的文件(显然由用户定义)。然后将较小的集合发送到不同的节点。这样您就不需要在内存有限的单台机器上加载大的输入文件。至此,hadoop 框架完成了这项工作。

    之后,您需要实现您的业务/域逻辑。您必须从输入集中生成一些键值对。之后,Hadoop 会将所有键值对发送到下一个阶段。它将为您提供所有唯一的键值对,您必须将它们合并以获得最终输出。

    需要注意的地方。 1) Hadoop 是 MAP-REDUCE 范式的框架。 2)大输入文件并不总是意味着使用hadop对您的问题是实用的。如果你的问题没有一些并行性,hadoop 可能不会帮助你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 2012-11-20
      相关资源
      最近更新 更多