MapReduce是否适合数据聚合?

时间:2013-03-10 02:11:14

标签: mapreduce

我正在使用名为XBus的数据聚合平台。我需要先介绍它。 XBus聚合了许多不同类型的数据源,如RDBMS,XML文件,JSON文件,Web服务和其他一些数据源。用户可以定义一个数据流程流,其中包含许多操作,如join,order-by,filter,combine,group-by。然后该流程将被转换为XQuery脚本。 SAXON(XML流程引擎)将在单台计算机(服务器)中处理XQuery脚本

但是如果数据量很大,则需要很长时间才能完成。所以,我正在考虑MapReduce框架,它可以处理分布式环境中的大量数据。但我不确定MapReduce是否合适。

有一个问题可以表明我的怀疑。

由于它是一个数据聚合平台,原始数据存储在许多不同的系统中。在使用MapReduce处理数据之前是否有必要我们必须从这些系统中收集相关数据并将它们放入Mapreduce(HDFS)?如果是这样,它需要很长时间才能完成,对吧?

1 个答案:

答案 0 :(得分:0)

是的,您必须将数据加载到HDFS然后进行处理。 MapReduce是否适用取决于不同的因素:

  • 将数据加载到HDFS所需的时间远远小于处理群集中所有数据并产生最终结果所需的时间。
  • 是否可以将所有不同来源的数据存储在HDFS中,只能存储HDFS,这样就无需在每次作业运行之前将所有新数据加载到HDFS上。
  • 您是否使用相同的转换处理不同的输入?在这里,您可以从重复运行相同的作业中获益,但输入数据不同。
  • 每个作业运行的所有输入数据都会发生变化吗?或者也许可以为不同的输入XML文件运行作业,并同时使用相同的MR作业转换它们。

当您决定使用MR时,您可能会发现Cascading很有用。它是用于定义复杂数据流的数据API。该项目提供了诸如分叉,连接,标记,分组等抽象。