我有一个我希望分发的系统,我希望在其中以分布式方式处理许多非常大的不可拆分的二进制文件。这些是几百 Gb 的数量级。由于各种固定的、特定于实现的原因,这些文件不能并行处理,而必须由同一进程按顺序处理直到结束。
该应用程序是用 C++ 开发的,所以我会考虑使用 Hadoop 管道将数据流进和流出。每个实例都需要按顺序处理 100Gb 到 200Gb 的数据(当前存储在一个文件中),并且应用程序当前(可能)受到 IO 限制,因此每个作业都完全在本地运行非常重要。
我非常热衷于 HDFS 来托管这些数据——自动维护冗余副本和在添加新节点时重新平衡的能力将非常有用。我也热衷于 map reduce,因为它计算简单,并且要求尽可能靠近数据托管计算。但是,我想知道 Hadoop 是否适合这个特定的应用程序。
我知道,为了表示我的数据,可以生成不可拆分的文件,或者生成巨大的序列文件(在我的情况下,单个文件的大小约为 10Tb - 如果我将所有数据打包到一)。因此可以使用 Hadoop 处理我的数据。然而,我的模型似乎不太适合 Hadoop:社区是否同意?或者有建议以最佳方式布置这些数据?甚至对于可能更适合该模型的其他集群计算系统?
这个问题可能是 hadoop 上现有问题的重复,但除了我的系统需要每个单个文件一个数量级或两个以上的数据之外(以前我已经看到有关几个 Gb 大小的单个文件的问题) . 因此,请原谅我之前已经回答过这个问题 - 即使对于这种大小的数据也是如此。
谢谢,
亚历克斯