如何在hadoop中处理一个大文件?

v9tzhpje  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(642)

这是个无关紧要的问题
我有一个hadoop设置,并考虑使用giraph或hama进行基于图形的计算。我在表格里有一个大文件
3 4 3 7 3 8 5 6
其中每列表示顶点,每行表示边。对于普通程序,我将整个文件读入
3: [4,7,8] 5: [6]
也就是说顶点3的边是4,7,8,顶点5的边是6。
如何在hadoop中处理大文件的这种情况?这样读意味着把所有的内容都加载到内存中?在hadoop中最好的方法是什么?

ercv8c1e

ercv8c1e1#

hadoop实现了水平并行。对于一个大的输入文件,它会将输入分成一些较小的文件(显然是由用户定义的)。然后将较小的集合发送到不同的节点。因此,您不需要在内存有限的单机中加载一个大的输入文件。到目前为止hadoop框架做了大量的工作。
之后,您需要实现业务/域逻辑。您必须从输入集生成一些键值对。之后hadoop将把所有的键值对发送到下一个阶段。它将为您提供所有唯一的键值对,您必须将它们合并以获得最终输出。
注意事项。1) hadoop是map-reduce范式的框架。2) 大的输入文件并不总是意味着hadop的使用对于您的问题是切实可行的。如果您的问题中没有一些并行性,hadoop可能不会帮助您。

相关问题