1. 程式人生 > >storm集群部署和配置過程詳解

storm集群部署和配置過程詳解

多少 帶來 進程 創建 使用 命令 介紹 aml 可能

---恢復內容開始---

先整體介紹一下搭建storm集群的步驟:
  1. 設置zookeeper集群
  2. 安裝依賴到所有nimbus和worker節點
  3. 下載並解壓storm發布版本到所有nimbus和worker節點
  4. 配置storm.yaml
  5. 啟動相關後臺進程

1 配置zookeeper集群

我們知道storm通過zookeeper來協調整個集群。zookeeper不是用來做消息傳遞,因此storm不會給zookeeper帶來很大的壓力。單節點的zookeeper在大多情形下是可以勝任的,但是如果你想得到更好的可靠性或者部署大集群的話,你可能就需要一個大的zookeeper集群。關於zookeeper的部署在這裏就不多做介紹,具體請參考:here。 關於zookeeper的部署這裏再補充兩點:
  1. 把zookeeper運行在一個監督進程之下是非常關鍵的,因為zookeeper是一個fail-fast的進程,當它遇到任何錯誤的時候都會自動退出,具體請參考: here
  2. 定時的去壓縮和轉移zookeeper數據也是非常關鍵的,因為zookeeper不具備壓縮和清楚數據機制,如果我們不設置一個cron管理這些數據,zookeeper產生的數據會很快的占滿磁盤,具體請參考: here
ps:如果zookeeper啟動失敗,查看一下它bin目錄下的zookeeper.out文件,配置一下它的myid試試。

2 安裝依賴到nimbus和worker節點

storm需要依賴的是:
  1. Java 6
  2. Python 2.6.6
需要註意,storm對大多數版本的依賴都做了測試,但是storm並不保證對任何版本的依賴都能正常工作。

3 下載解壓storm發布版本到nimbus和worker節點

下一步就是下載解壓storm壓縮文件到每一臺機器,storm發布版本可以從這裏下載from here。

4 配置storm.yaml文件

storm裏面有一個文件conf/storm.yaml,它就是storm的配置文件。關於這個文件的所有默認值可以從這裏得到here。storm.yaml中的配置會覆蓋掉default.yaml中的配置。下面配置一個集群必須修改的配置: 1) storm.zookeeper.servers:配置zookeeper集群的列表
  1. storm.zookeeper.servers:
  2. - "111.222.333.444"
  3. - "555.666.777.888"
如果你的zookeeper集群使用的端口不是默認端口,那麽你還得配置storm.zookeeper.port。 2) storm.local.dir :storm的nimbus和work進程需要一個目錄來存放一小部分狀態數據,比如jars、confs等等。我們需要在每臺機器上創建這個目錄並且賦予其相應的權限。
  1. storm.local.dir: "/mnt/storm"
3) nimbus.host:worker節點需要知道哪個機器是master節點,以便自己從maser節點下載jars和confs。
  1. nimbus.host: "111.222.333.44"
4) supervisor.slots.ports:對於每一臺worker機器,它決定了這臺機器一共可以運行多少個worker進程。每個worker進程會獨占一個端口來接收消息,這個參數就是配置了哪些端口會分配給worker進程。如果你在這配置了5個端口,那麽storm將能分配5個worker進程給這臺機器,如果配置3個端口,那麽storm也只能分配3個worker進程。storm默認分配4個worker進程到6700,6701,6702,6703端口。比如:
  1. supervisor.slots.ports:
  2. - 6700
  3. - 6701
  4. - 6702
  5. - 6703

5 通過storm命令運行storm相關的守護進程

最後一步就是啟動所有storm相關守護進程。當然,把這些進程都納入到監督進程管理之下是很有必要的。storm也是一個fail-fast系統,這就意味著這些進程一但遇到異常就會終止。storm之所以會這麽設計,是為了它可以在任何時候安全的終止和在進程重啟的時候恢復。這就是storm為不在進程中保存相關狀態的原因,如果nimbus或supervisor節點重啟,運行著的topoloies不會受到任何影響。下面就是啟動storm相關進程的命令:
  1. Nimbus:在master節點運行“bin/storm nimbus”
  2. Supervisor:在每一臺worker節點運行“bin/storm supervisor”,supervisor進程負責在worker節點上啟動和停止相應的worker進程
  3. UI:運行“bin/storm ui” ,一個通過頁面管理和展示storm集群運行狀態的工具,可以通過“http://nimbus host:8080”來訪問。
我們可以看到啟動storm服務進程相當簡單直接,storm產生的log會保存在各臺機器的storm/logs目錄中,storm通過logback管理它的日誌,我們可以通過修改其logback.xml文件來改變其log的目錄及內容。

---恢復內容結束---

storm集群部署和配置過程詳解