拉米娜与风暴

时间:2013-06-17 08:07:19

标签: events clojure apache-storm stream-processing lamina

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

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

我想知道的是;这两个项目针对哪些数据和工作流程进行了优化?风暴似乎更加成熟,但Lamina似乎更具有组合性和“Clojureic”(我的背景是Python,所以我倾向于高度评价)。

我在网上阅读时发现:

  • Storm似乎是以Big Data(流)为重点,核心是带有Clojure DSL的直接Java。它似乎为许多现有数据源预先构建了处理程序。

  • Lamina更像是一个轻量级,可重用的组件,可以对Clojure进行抽象编码,这意味着它可以是reused as a base for other eventing systems。数据源需要用代码处理。

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

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

Storm结合了集群管理和流程中失败节点的处理,因为它被设计为像Hadoop一样,但是用于流式传输",根据我对你的要求的理解,它似乎更接近你的用例。

答案 2 :(得分:1)

Lamina似乎是一个不错的选择,但它似乎完全缺乏Storm的核心功能 - 集群计算管理。 Storm集群将处理在整个节点集群中分配计算的大部分肮脏工作,只要您将其放在Storm框架中,就可以专注于业务逻辑。从我所看到的,Lamina提供了一种组织计算的好方法,但是如果你需要的话,你将不得不处理扩展的所有细节。