Hadoop是小数据的好解决方案吗?

时间:2013-09-18 12:25:54

标签: mongodb hadoop mapreduce

我们在MongoDB中有一组数据,我们正在减少地图(两次)我们现在将使用Mongo的地图缩减,但我正在考虑如何在未来扩展和改善性能并思考关于Hadoop。

我正在阅读的关于Hadoop的大部分内容都是关于大数据,数TB的内容,当我们要处理数兆字节时,10s可能是成千上万条记录。 (可能有很多这些并发运行虽然如此,而单个任务总量很小可能很大。)

我们真的希望通过小数据获得疯狂的性能,而不是让大数据成为可能。即获取map减少MongoDB中需要10秒的结果,在Hadoop中需要几秒或几秒。

这可能吗?
Hadoop是否适合这种情况?
如果不是那些其他技术可以实现这一目标吗?

可以在此问题中找到我需要的确切问题的详细信息和我的解决方案:Linear funnel from a collection of events with MongoDB aggregation, is it possible?

4 个答案:

答案 0 :(得分:3)

这可能吗?

NO。无论您的数据有多小,在运行MR作业时总会有一些初始延迟,因为很多事情都发生在幕后,例如检查输入/输出路径,分割创建,地图创建等等。这是不可避免的。 / p>

Hadoop是否适合这个?

NO。您不能指望Hadoop会以纳米或几毫秒的速度为您提供结果。

如果没有其他技术可以实现这一目标吗?

如果你需要一些非常快速的东西,并且能够更好地扩展,请查看 Storm

答案 1 :(得分:0)

  

我正在阅读的关于Hadoop的大部分内容都是关于大数据,数TB的内容,当我们要处理数兆字节,10s或者数千条记录时。

使hadoop速度提升的一个原因是它具有Map Reduce的聚类功能,当然,这些事情只适用于“大数据”(无论这意味着什么,现在都是一天)。

实际上,map reduce通常比小数据上的聚合框架慢,因为实际运行平均地图需要多长时间才能减少。

Map reduce实际上是为你做的事情而设计的。

您可以考虑将数据存储在传统数据库中并使用该数据库聚合框架,即SQL或MongoDB。

答案 2 :(得分:0)

Hadoop无法满足您的要求。首先是基础设施要求及其管理。如果您的数据是以MB为单位,那么运行map-reduce的成本将更多地放在hadoop上,而不是Mongo或其他类似技术。

此外,我还建议扩展您现有的mongoDB基础架构。使用Hadoop技术无法轻松实现基于查询和文档的灵活性(如简易索引和数据检索)。

答案 3 :(得分:0)

Hadoop'一般'正在通过诸如Tez之类的项目向低延迟处理发展。并且有类似hadoop的替代方案,例如Spark

但是对于事件处理,通常这意味着Storm,未来可能已经在这里,请参阅Storm and Hadoop: Convergence of Big-Data and Low-Latency Processing(另请参阅slideshare from Hadoop Summit)。

Hadoop是一个庞大的生态系统。旧(1.0),新(1.3)和前沿(2.0及以上)之间的能力存在巨大差异。其中一些技术可以取代Mongo自己的M / R吗?我当然这么认为。您的问题可以分解成许多并行任务(这对我来说实际上并不清楚)?然后介于Spark / YARN / Tez之间的某个解决方案,当你向其投入更多硬件时,它将更快

当然,对于首先在一个主机RAM中的工作集,总会有一个SMP RDBMS将围绕集群运行圆圈...