推ter 流處理框架:Summingbird

jopen 10年前發布 | 13K 次閱讀 分布式/云計算/大數據 Summingbird

Summingbird是一個庫,能夠讓你編寫 MapReduce 程序看起來像原生的 Scala 或 Java 集合。并在一些著名的分布式MapReduce平臺上轉換并執行他們,包括 StormScalding.。

在純Scala中的一個字數計算聚集可能是這樣的:

  def wordCount(source: Iterable[String], store: MutableMap[String, Long]) =
    source.flatMap { sentence =>
      toWords(sentence).map(_ -> 1L)
    }.foreach { case (k, v) => store.update(k, store.get(k) + v) }

在Summingbird計算的話看起來像這樣:

  def wordCount[P <: Platform[P]]
    (source: Producer[P, String], store: P#Store[String, Long]) =
      source.flatMap { sentence =>
        toWords(sentence).map(_ -> 1L)
      }.sumByKey(store)


 

項目主頁:http://www.baiduhome.net/lib/view/home/1390573543804

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!