1

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

我读到的关于 Hadoop 的大部分内容都在谈论大数据,TB 级的东西,当我们要处理兆字节,10 到 100 万条记录时。(虽然其中可能有许多同时运行,因此虽然单个任务很小,但总体可能很大)。

我们真的想从小数据中获得疯狂的性能,而不是让大数据成为可能。即在 MongoDB 中获得需要 10 秒的 map reduce 结果,而在 Hadoop 中需要几秒或亚秒。

这可能吗?
Hadoop 适合这个吗?
如果不是,还有哪些其他技术可以使这成为可能?

这是所需的确切问题的详细信息以及我迄今为止的解决方案,可以在以下问题中找到:Linear funnel from a collection of events with MongoDB aggregation, is it possible?

4

4 回答 4

3

这可能吗?

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

Hadoop 适合这个吗?

不。您不能指望 Hadoop 会在几毫秒或几毫秒内为您提供结果。

如果不是,还有哪些其他技术可以使这成为可能?

如果您需要一些真正快速且扩展性更好的东西,请查看Storm

于 2013-09-18T12:41:34.550 回答
0

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

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

于 2013-09-18T13:05:23.083 回答
0

我读到的关于 Hadoop 的大部分内容都在谈论大数据,TB 级的东西,当我们要处理兆字节,10 到 100 万条记录时。

赋予 hadoop 速度的一件事是它与 Map Reduce 的聚类能力,当然,这些东西只真正适用于“大数据”(无论这意味着什么现在)。

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

Map reduce 真的是为你所做的事情而设计的。

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

于 2013-09-18T12:58:30.757 回答
0

Hadoop“总体上”正朝着更低延迟的处理方向发展,例如通过Tez等项目。还有一些类似 hadoop 的替代品,比如Spark

但是对于事件处理,通常这意味着 Storm,未来可能已经在这里,请参阅Storm 和 Hadoop:大数据和低延迟处理的融合(另请参阅Hadoop 峰会的幻灯片)。

Hadoop 是一个庞大的生态系统。旧版 (1.0)、新版 (1.3) 和最新版 (2.0 及更高版本) 在功能上存在巨大差异。其中一些技术能否取代 Mongo 自己的 M/R?我当然这么认为。您的问题可以拆分为许多并行任务吗(这实际上对我来说并不清楚)?然后在 Spark/YARN/Tez 之间的某个地方,有一个解决方案会随着您投入更多硬件而变得更快。

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

于 2013-09-18T14:53:34.827 回答