hadoop是一个可行的解决方案,用于管理单台机器上的数据批处理吗?

时间:2015-06-23 11:45:39

标签: hadoop parallel-processing batch-processing

我有一系列命令行应用程序,它们接收~3GB数据文件中的原始数据。这些应用程序链接在一起以产生更小的输出。我有一个6核系统,每个应用程序只需要一个核心,所以我想我可以并行运行6个。

我一直在尝试自动执行此过程(包括整理结果),并且已经阅读了Hadoop作为解决此问题的可能方法。

Hadoop是否是一个合适的解决方案,如果是这样,我应该使用它的哪些部分(或者还有其他更适合的东西)?

修改

为了使这一点更加清晰,粗略的管道看起来像这样:

     .-> [A] -> W1 -> [B] -> X1 -> [C] -> Y1 -.
    /                                          \
V -<                                            >- [D] -> Z
    \                                          /
     `-> [M] -> W2 -> [B] -> X2 -> [C] -> Y2 -`

..其中

  • [A, B, C, D]是命令行应用程序。
  • V是一个3GB的数据文件(其中有数百个并且正在计数)。
  • W1&amp; W2是大约3MB的中间文件。
  • X1&amp; X2是〜200KB的中间文件。
  • Y1&amp; Y2是〜200KB的中间文件。
  • Z是最终报告。

2 个答案:

答案 0 :(得分:0)

这取决于您的要求。如果您的数据会增加,并且它是原始的或非结构化的格式,如您所说,那么hadoop可以帮助您。

  1. 您可以使用map-reduce为其提供一系列输入,将根据键和值列表生成给予reducer的输出。您可以使用不同的方式进行map-reduce和编程语言。您将获得有关hadoop here的更多信息。
  2. 如果你有一个像从文件或数据库获取数据的处理,处理它并将输出存储回文件或数据库,你的数据相对较小(因为它说通常在你有非常大的数据时使用hadoop结核病)然后你也可以看看spring-batch

答案 1 :(得分:0)

我认为你不应该使用Hadoop,除非你真的需要它。

因此,在您的情况下,根据您所说的内容和合理的数据量,支付使用Hadoop的成本是没有意义的。

我的2美分。