Apache Storm 官方文檔 —— 配置
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:此類包含所有可配置項的列表,對於創建拓撲配置信息很有幫助
- defaults.yaml:所有配置項的默認值
- 配置 Storm 集群:說明了如何創建、配置一個 Storm 集群
- 在生產環境中運行拓撲:列出了在集群中運行拓撲的一些有用的配置項
- 本地模式:列出了使用本地模式時比較有用的配置項
- 轉載自 並發編程網 - ifeve.com
最後更新:2017-05-22 15:03:07