拉米娜与风暴

CLF*_*CLF 5 events clojure stream-processing lamina-clojure apache-storm

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

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

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

我在网上看到的内容:

  • Storm似乎是以Big Data(流)为重点,核心是带有Clojure DSL的直接Java.它似乎具有针对许多现有数据源的pre = built处理程序.

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

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

ama*_*loy 8

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


Art*_*ldt 4

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