配置storm.yamljava
storm發行版在conf/storm.yaml包含了一些配置信息。你能夠在這裏看到默認配置。storm.yaml裏面的配置比default.xml的優先級要高, 下面是要運行storm集羣所必須的配置:安全
1. storm.zookeeper.servers 這個配置storm集羣使用的zookeeper集羣的地址,好比:網站
storm.zookeeper.servers:ui
- "111.222.333.444"線程
- "555.666.777.888"設計
2. storm.local.dir Nimbus和Supervisor在本地磁盤上須要一個目錄來存儲一些狀態信息(jar包, 配置文件之類的東西)你應該在每臺機器上建立那個目錄,分配正確的權限,好比:日誌
storm.local.dir: "/mnt/storm"orm
3. java.library.path 這是storm所依賴的本地依賴(ZeroMQ和JZMQ)的加載地址, 默認的是:/usr/local/lib:/opt/local/lib:/usr/lib, 大多狀況下是對的,因此你應該不用更改這個配置。server
4. nimbus.host 全部工做機器須要nimbus機器的地址, 這樣它們才知道去哪裏獲取jar包和配置文件:xml
nimbus.host: "111.222.333.44"
5. supervisor.slots.ports 對於每一臺工做機器,這個配置指定在這臺工做機器上運行多少工做進程, 每一個進程使用一個獨立端口來接收消息,這個配置同時也指定使用哪些端口。若是你在這裏定義5個端口, storm會在這個機器上最多分配5個工做進程。若是分配3個端口,那麼最多分配3個進程。默認的配置是4個:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
啓動守護進程
最後一步是啓動storm的全部守護進程。仍是前面說的那樣,對於每一個進程都要有監控!storm是一個fail-fast系統,出現什麼不可預知的錯誤的時候它都會退出的。storm被設計成在任什麼時候候均可以安全退出, 在任什麼時候候都能正確重啓, 這就是storm爲何不在線程內存儲狀態 — 若是Nimbus和Supervisor重啓的話,不會影響正在運行的topology。下面介紹如何啓動這些線程:
Nimbus 在Nimbus機器上運行bin/storm nimbus
Supervisor 在每臺工做機器上運行bin/storm supervisor, supervisor負責啓動和終止工做機器上的工做進程。
UI storm UI是一個能夠查看storm運行狀態的的一個網站,經過bin/storm ui運行,訪問地址: http://{nimbus.host}:8080/。
就像你能看到的同樣,運行storm集羣很簡單。這些進程會往你解壓storm發行版的目錄的子目錄logs目錄裏面打日誌。