storm1.x支持主節點nimbus高可用 多master集羣部署

storm集羣搭建
storm集羣也是由主節點和從節點組成的。
storm版本的變更:
storm0.9.x
storm0.10.x
storm1.x
前面這些版本里面storm的核心源碼是由java+clojule組成的。
storm2.x
後期這個版本就是全部用java重寫了。
(阿里在很早的時候就對storm進程了重寫,提供了jstorm,後期jstorm也加入到apachestorm
負責使用java對storm進行重寫,這就是storm2.x版本的由來。)
注意:
在storm0.9.x的版本中,storm集羣只支持一個nimbus節點,主節點是存在問題。
在storm0.10.x以後,storm集羣可以支持多個nimbus節點,其中有一個爲leader,負責真正運行,其餘的爲offline。


主節點(控制節點 master)【主節點可以有一個或者多個】
職責:負責分發代碼,監控代碼的執行。
nimbus:
ui:可以查看集羣的信息以及topology的運行情況
logviewer:因爲主節點會有多個,有時候也需要查看主節點的日誌信息。

從節點(工作節點 worker)【從節點可以有一個或者多個】
職責:負責產生worker進程,執行任務。
supervisor:
logviewer:可以通過webui界面查看topology的運行日誌


規劃一下集羣部署情況
主節點:
192.168.1.100
nimbus
ui
logviewer
192.168.1.101
nimbus
logviewer
從節點
192.168.1.101
supervisor
logviewer
192.168.1.102
supervisor
logviewer
開始部署storm集羣(centos6.8):
部署之前需要確認一下服務器的基本環境
storm集羣部署需要依賴如下環境:
=======================================
python2.6.6及以上【centos6.8自帶】
jdk1.7【需要安裝】
集羣節點之間ssh免密碼登陸【需要配置】
zookeeper【storm集羣是依賴於zookeeper的,需要安裝】
=======================================
jdk的安裝【集羣的所有節點都需要安裝】
1:下載jdk1.7的壓縮包。解壓。
2:在/etc/profile文件中配置JAVA_HOME環境變量
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
集羣節點之間ssh免密碼登陸
建議百度一下 ssh免密碼登陸
zookeeper的安裝【建議先安裝一個單機的服務】
1:首先下載zookeeper的安裝包 zookeeper-3.4.6.tar.gz
2:上傳到192.168.1.100這臺服務器的/usr/local目錄下
3:解壓,重命名
cd /usr/local
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
4:修改配置文件
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/usr/local/zookeeper/data
5:啓動zk單機服務
cd zookeeper
bin/zkServer.sh start
開始安裝storm集羣
1:下載storm的安裝包apache-storm-1.0.2.tar.gz
2:上傳到192.168.1.100這臺服務器的/usr/local目錄下
3:解壓,重命名
tar -zxvf apache-storm-1.0.2.tar.gz
mv apache-storm-1.0.2 storm
4:修改配置文件
cd storm/conf
vi storm.yaml
storm.zookeeper.servers:
- "192.168.1.100"
nimbus.seeds: ["hadoop100","hadoop101"]
##注意:nimbus.seeds指定的時候最好指定主機名,否則在webui界面查詢的時候會重複顯示節點信息。
storm.local.dir: "/usr/local/storm/tmp"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
【注意:yaml文件的格式,屬性必須頂格,縮進只能使用空格,一點不能使用製表符。】
5:把修改後的storm目錄拷貝到其他所有主從節點【主從節點配置完全一樣】
scp -rq /usr/local/storm 192.168.1.101:/usr/local
scp -rq /usr/local/storm 192.168.1.102:/usr/local
6:分別啓動主從節點的進程
192.168.1.100
nimbus:nohup bin/storm nimbus >/dev/null 2>&1 &
ui:nohup bin/storm ui >/dev/null 2>&1 &
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
192.168.1.101
nimbus:nohup bin/storm nimbus >/dev/null 2>&1 &
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &
192.168.1.102
supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
7:訪問storm的ui界面來查看集羣信息
http://192.168.1.100:8080/
問題排查:
1:如果發現無法在webui界面查看日誌信息
只可能是兩個問題
一:可能是logviewer進程沒啓動
二:主機名和ip的映射關係沒有配置
2:服務器的8080端口被佔用導致ui進程啓動失敗
修改storm.yaml文件
ui.port: 8081
最完整的屬性配置在storm-core.jar中的defaults.yaml文件中

發佈了207 篇原創文章 · 獲贊 67 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章