開源ScalaStorm

banq發表於2013-11-12
velvia/ScalaStorm · GitHub

scalaStorm提供一個基於Storm的Scala DSL,進行實時分散式計算,也提供開發Storm topology的Scala和SBT框架。

經典的單詞計數topology程式碼SplitSentence 如下:
class SplitSentence extends StormBolt(outputFields = List("word")) {
def execute(t: Tuple) = t matchSeq {
case Seq(sentence: String) => sentence split " " foreach
{ word => using anchor t emit (word) }
t ack
}
}


相比使用Java要簡單多,見Storm使用介紹:http://www.jdon.com/bigdata/storm.html

好處:
1. 使用matchSeq DSL 能夠啟用 Scala 基於tuple的模式匹配,這給你一個多麼好的命名和標識每個元件的方式,想象一下匹配不同型別的tuple,象一個join, 容易靈活。

2.傳送DSL 讀起來象英文,易於攜帶多個引數(val1, val2, ...)

3.輸出欄位易於宣告

4.當發射和確認發生時,易於精準觀察到。

對Scala程式設計師有用特性:
Auto-boxing of Scala primitives in tuple emit and matchSeq
BoltDsl trait能對thread/actor/class都使用DSL

相關文章