閱讀932 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Apache Storm 官方文檔 —— 使用非 JVM 語言開發

  • 兩個部分:創建拓撲,以及使用其他語言實現 spouts 與 bolts

  • 由於 Storm 的拓撲都是基於 thrift 結構的,所以使用其他語言創建拓撲也是一件很容易的事情
  • 使用其他語言實現的 spouts 與 bolts 稱為“多語言組件”(multilang components)或者“脫殼”(shelling)
    • 這是具體的實現協議:多語言接口協議
    • thrift 結構允許你定義以一個程序和腳本的方式定義多語言組件(例如,可以使用 python 程序和文件實現 bolt)
    • 在 Java 中,需要覆寫 ShellBolt 或者 ShellSpout 來創建多語言組件
      • 注意,輸出域是在 thrift 結構中聲明的,所以在 Java 中你需要這樣創建多語言組件:
        • 在 Java 中聲明域,並通過在 shellbolt 的構造器中指定輸出域來處理其他語言的代碼
    • 多語言組件在 STDIN/STDOUT 中使用 JSON 消息來和子進程通信
    • 已經實現了 Ruby,Python 等語言的相關協議,例如,python 支持 emit、anchor、ack 與 log等操作
  • “storm shell” 命令簡化了構造 jar 包與向 nimbus 上傳文件的過程
    • 構建 jar 文件並將其上傳
    • 使用 nimbus 的 host/port 以及 jar 文件的 id 來調用你的程序

以非 JVM 語言實現 DSL 的相關說明

譯者注:由於本文部分內容與另一篇文檔定義 Storm 的非 JVM 語言 DSL重複,這裏不再羅列,詳情請參閱該文檔。

最後更新:2017-05-22 13:32:17

  上一篇:go  Apache Storm 官方文檔 —— Metrics
  下一篇:go  Apache Storm 官方文檔 —— 定義 Storm 的非 JVM 語言 DSL