Apache Storm 官方文件 —— 配置
阿新 • • 發佈:2018-12-22
Storm 有大量配置項用於調整 nimbus、supervisors 和拓撲的行為。有些配置項是系統級的配置項,在拓撲中不能修改,另外一些配置項則是可以在拓撲中修改的。
每一個配置項都在 Storm 程式碼庫的 defaults.yaml 中有一個預設值。可以通過在 Nimbus 和 Supervisors 的環境變數中定義一個 storm.yaml 來覆蓋預設值。最後,在使用 StormSubmitter 提交拓撲時也可以定義基於具體拓撲的配置項。但是,基於拓撲的配置項僅僅能夠覆蓋那些以 “TOPOLOGY” 作為字首的配置項。
Storm 0.7.0 以上版本支援覆寫每個 Bolt/Spout 的配置資訊。不過,使用這種方式只能修改以下幾個配置項:
- “topology.debug”
- “topology.max.spout.pending”
- “topology.max.task.parallelism”
- “topology.kryo.register”:由於序列化對拓撲中的所有元件都是可見的,這一項與其他幾項稍微有一些不同,詳細資訊可以參考 Storm 的序列化
Storm 的 Java API 支援兩種自定義元件配置資訊的方式:
- 內建型:在需要配置的 Spout/Bolt 中覆寫
getComponentConfiguration
方法,使其返回特定元件的配置表; - 外接型:
TopologyBuilder
中的setSpout
與setBolt
addConfiguration
方法的ComponentConfigurationDeclarer
物件,通過addConfiguration
方法就可以覆寫對應元件的配置項(同時也可以新增自定義的配置資訊——譯者注)。
配置資訊的優先順序依次為:defaults.yaml < storm.yaml < 拓撲配置 < 內建型元件資訊配置 < 外接型元件資訊配置。
相關資料
- Config:此類包含所有可配置項的列表,對於建立拓撲配置資訊很有幫助
- 配置 Storm 叢集:說明了如何建立、配置一個 Storm 叢集
- 在生產環境中執行拓撲:列出了在叢集中執行拓撲的一些有用的配置項
- 本地模式:列出了使用本地模式時比較有用的配置項