首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop、Mahout实时处理替代方案

Hadoop、Mahout实时处理替代方案
EN

Stack Overflow用户
提问于 2011-10-01 18:21:51
回答 4查看 5.6K关注 0票数 18

我打算在我的项目中使用hadoop作为“计算集群”。然而,后来我读到,Hadoop没有集成到实时系统中,因为与作业启动相关的开销。我正在寻找解决方案,可以使用这种方式-作业可以很容易地扩展到多台机器,但不需要太多的输入数据。更重要的是,我想使用机器学习作业,例如使用实时创建的神经网络。

我可以使用什么库/技术来实现此目的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-01 18:50:20

您说得对,Hadoop是为批处理而设计的。

读到这个问题,我想到了最近由Twitter开源的Storm框架,它可以被认为是“用于实时处理的Hadoop”。

Hadoop使得在计算机集群上编写和扩展复杂的实时计算变得很容易,就像

为批处理所做的那样进行实时处理。Storm保证每条消息都会被处理。而且它的速度很快--你可以用一个小集群每秒处理数百万条消息。最棒的是,您可以使用任何编程语言编写Storm拓扑。

(来自:InfoQ post)

但是,我还没有用过它,所以在实践中我真的不能说太多。

推特工程博客帖子:http://engineering.twitter.com/2011/08/storm-is-coming-more-details-and-plans.html

Github:https://github.com/nathanmarz/storm

票数 10
EN

Stack Overflow用户

发布于 2011-10-02 20:41:00

考虑到你想要在“秒”范围内得到实时响应,我推荐这样的方式:

  1. 设置了一个批处理模型,以尽可能多地进行预计算。本质上,尝试做所有不依赖于“最后一秒”数据的事情。在这里,您可以使用常规的Hadoop/Mahout设置,每天运行这些批处理,或者(如果需要)每小时甚至15分钟运行一次。
  2. 使用实时系统来完成无法预先计算的最后几项工作。为此,您应该考虑使用前面提到的s4或最近发布的twitter storm

有时,它非常简单,将预计算值全部存储在内存中,并简单地执行最后一次聚合/过滤/排序/...内存中的步骤。如果您能做到这一点,您就可以真正地进行扩展,因为每个节点都可以完全独立于所有其他节点运行。

也许为realtime组件提供一个NoSQL后端会有所帮助。有很多可用的: mongodb,redis,riak,cassandra,hbase,couchdb,...

这完全取决于您的实际应用程序。

票数 4
EN

Stack Overflow用户

发布于 2011-10-02 02:29:48

也试试S4,它最初是由雅虎发布的!现在它的Apache孵化器项目。它已经存在了一段时间了,当我做概念验证时,我发现它对一些基本的东西很好。虽然还没有被广泛使用过。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7619629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档