Apache Storm 官方文檔 —— 使用非 JVM 語言開發
- 兩個部分:創建拓撲,以及使用其他語言實現 spouts 與 bolts
- 由於 Storm 的拓撲都是基於 thrift 結構的,所以使用其他語言創建拓撲也是一件很容易的事情
- 使用其他語言實現的 spouts 與 bolts 稱為“多語言組件”(multilang components)或者“脫殼”(shelling)
- 這是具體的實現協議:多語言接口協議
- thrift 結構允許你定義以一個程序和腳本的方式定義多語言組件(例如,可以使用 python 程序和文件實現 bolt)
- 在 Java 中,需要覆寫 ShellBolt 或者 ShellSpout 來創建多語言組件
- 注意,輸出域是在 thrift 結構中聲明的,所以在 Java 中你需要這樣創建多語言組件:
- 在 Java 中聲明域,並通過在 shellbolt 的構造器中指定輸出域來處理其他語言的代碼
- 注意,輸出域是在 thrift 結構中聲明的,所以在 Java 中你需要這樣創建多語言組件:
- 多語言組件在 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