1、集羣規劃html
2、前置條件shell
3、集羣搭建apache
四. 啓動集羣vim
5、高可用驗證 服務器
這裏搭建一個 3 節點的 Storm 集羣:三臺主機上均部署 Supervisor
和 LogViewer
服務。同時爲了保證高可用,除了在 hadoop001 上部署主 Nimbus
服務外,還在 hadoop002 上部署備用的 Nimbus
服務。Nimbus
服務由 Zookeeper 集羣進行協調管理,若是主 Nimbus
不可用,則備用 Nimbus
會成爲新的主 Nimbus
。app
Storm 運行依賴於 Java 7+ 和 Python 2.6.6 +,因此須要預先安裝這兩個軟件。同時爲了保證高可用,這裏咱們不採用 Storm 內置的 Zookeeper,而採用外置的 Zookeeper 集羣。因爲這三個軟件在多個框架中都有依賴,其安裝步驟單獨整理至 :框架
下載安裝包,以後進行解壓。官方下載地址:http://storm.apache.org/downloads.html ide
# 解壓 tar -zxvf apache-storm-1.2.2.tar.gz
# vim /etc/profile
添加環境變量:oop
export STORM_HOME=/usr/app/apache-storm-1.2.2 export PATH=$STORM_HOME/bin:$PATH
使得配置的環境變量生效:性能
# source /etc/profile
修改 ${STORM_HOME}/conf/storm.yaml
文件,配置以下:
# Zookeeper集羣的主機列表 storm.zookeeper.servers: - "hadoop001" - "hadoop002" - "hadoop003" # Nimbus的節點列表 nimbus.seeds: ["hadoop001","hadoop002"] # Nimbus和Supervisor須要使用本地磁盤上來存儲少許狀態(如jar包,配置文件等) storm.local.dir: "/home/storm" # workers進程的端口,每一個worker進程會使用一個端口來接收消息 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
supervisor.slots.ports
參數用來配置 workers 進程接收消息的端口,默認每一個 supervisor 節點上會啓動 4 個 worker,固然你也能夠按照本身的須要和服務器性能進行設置,假設只想啓動 2 個 worker 的話,此處配置 2 個端口便可。
將 Storm 的安裝包分發到其餘服務器,分發後建議在這兩臺服務器上也配置一下 Storm 的環境變量。
scp -r /usr/app/apache-storm-1.2.2/ root@hadoop002:/usr/app/ scp -r /usr/app/apache-storm-1.2.2/ root@hadoop003:/usr/app/
分別到三臺服務器上啓動 ZooKeeper 服務:
zkServer.sh start
由於要啓動多個進程,因此統一採用後臺進程的方式啓動。進入到 ${STORM_HOME}/bin
目錄下,執行下面的命令:
hadoop001 & hadoop002 :
# 啓動主節點 nimbus nohup sh storm nimbus & # 啓動從節點 supervisor nohup sh storm supervisor & # 啓動UI界面 ui nohup sh storm ui & # 啓動日誌查看服務 logviewer nohup sh storm logviewer &
hadoop003 :
hadoop003 上只須要啓動 supervisor
服務和 logviewer
服務:
# 啓動從節點 supervisor nohup sh storm supervisor & # 啓動日誌查看服務 logviewer nohup sh storm logviewer &
使用 jps
查看進程,三臺服務器的進程應該分別以下:
<br/>
訪問 hadoop001 或 hadoop002 的 8080
端口,界面以下。能夠看到有一主一備 2 個 Nimbus
和 3 個 Supervisor
,而且每一個 Supervisor
有四個 slots
,即四個可用的 worker
進程,此時表明集羣已經搭建成功。
這裏手動模擬主 Nimbus
異常的狀況,在 hadoop001 上使用 kill
命令殺死 Nimbus
的線程,此時能夠看到 hadoop001 上的 Nimbus
已經處於 offline
狀態,而 hadoop002 上的 Nimbus
則成爲新的 Leader
。