我打算在我的项目中使用hadoop作为“计算集群”。然而,后来我读到,Hadoop没有集成到实时系统中,因为与作业启动相关的开销。我正在寻找解决方案,可以使用这种方式-作业可以很容易地扩展到多台机器,但不需要太多的输入数据。更重要的是,我想使用机器学习作业,例如使用实时创建的神经网络。
我可以使用什么库/技术来实现此目的?
发布于 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
发布于 2011-10-02 20:41:00
考虑到你想要在“秒”范围内得到实时响应,我推荐这样的方式:
有时,它非常简单,将预计算值全部存储在内存中,并简单地执行最后一次聚合/过滤/排序/...内存中的步骤。如果您能做到这一点,您就可以真正地进行扩展,因为每个节点都可以完全独立于所有其他节点运行。
也许为realtime组件提供一个NoSQL后端会有所帮助。有很多可用的: mongodb,redis,riak,cassandra,hbase,couchdb,...
这完全取决于您的实际应用程序。
发布于 2011-10-02 02:29:48
也试试S4,它最初是由雅虎发布的!现在它的Apache孵化器项目。它已经存在了一段时间了,当我做概念验证时,我发现它对一些基本的东西很好。虽然还没有被广泛使用过。
https://stackoverflow.com/questions/7619629
复制相似问题