这是一个noobie问题
我有一个hadoop设置并且考虑使用uisng 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中最好的方法是什么?
答案 0 :(得分:0)
Hadoop执行水平并行。对于大型输入文件,它会将输入分成一些较小的文件(显然由用户定义)。然后将较小的集合发送到不同的节点。因此,您不需要在内存有限的单台机器中加载大输入文件。到这里hadoop框架做了劳动。
之后,您需要实现业务/域逻辑。您必须从输入集生成一些键值对。之后,Hadoop会将所有键值对发送到下一个阶段。它将为您提供所有唯一的键值对,您必须将它们合并才能获得最终输出。
要点。 1)Hadoop是MAP-REDUCE范例的框架。 2)大输入文件并不总是意味着hadop使用对你的问题是实用的。如果你在问题上没有一些并行性,那么hadoop可能对你没有帮助。