5

我正在设计一个原型实时监视器,用于处理相当大量(>30G/天)的流式数字数据。我想用 Clojure 写这个,因为这种语言似乎很适合这种“观察者 + 状态机”系统,这可能最终会成为。

我为框架找到的两个主要候选者是 Lamina 和 Storm。还有 Riemann 和 Pulse,但前者似乎更像是一个完整的解决方案而不是一个框架,我宁愿不承诺最终设计;Pulse 的 repo 看起来有点无人维护?

我想知道的是;这两个项目针对什么样的数据和工作流程进行了优化?Storm 似乎更成熟,但 Lamina 似乎更可组合和“Clojureic”(我的背景是 Python,所以我倾向于高度评价它)。

我从网上阅读中发现:

  • Storm 似乎专注于大数据(流),核心是带有 Clojure DSL 的纯 Java。它似乎为许多现有数据源预先构建了处理程序。

  • Lamina 更像是一个轻量级的、可重用的组件,它执行 Clojure 对抽象进行编码的事情,这意味着它可以被重用为其他事件系统的基础。数据源需要在代码中处理。

  • 两者都有一组有用的聚合/拆分/计算库函数开箱即用。Lamina 的 graphviz 集成是一个不错的选择。

4

3 回答 3

8

Storm 可能不是一个糟糕的选择,但“每天超过 30GB”的数字数据不是大数据,而是微小数据。任何半现代计算机都可以在一个带有 lamina 的节点上轻松处理这么多数据。无论如何,您可能都想使用 Storm,这样一旦您进入需要更多服务器的领域,您就可以轻松扩展,但我想在设置 Storm 时会有一些初始摩擦(以及维护集群方面的一些持续摩擦) ,如果你永远不必扩大规模,这将被浪费。

于 2013-06-18T03:42:19.617 回答
4

Storm 结合了集群管理和流中故障节点的处理,因为它被设计为“类似于 Hadoop,但用于流式传输”,根据我对您的要求的理解,这似乎更接近您的用例。

于 2013-06-17T17:04:50.030 回答
1

Lamina 似乎是一个不错的选择,但它似乎完全缺乏 Storm 的杀手级功能——集群计算管理。Storm 集群将负责将计算分布到节点集群中的大部分繁琐工作,只要您将其置于 Storm 框架中,您就可以只专注于业务逻辑。据我所知,Lamina 提供了一种组织计算的好方法,但是如果你需要的话,你必须处理扩展它的所有细节。

于 2013-06-18T00:09:05.830 回答