Storm集群的安裝分為以下幾步:
1、首先保證Zookeeper集群服務的正常運行以及必要組件的正確安裝
2、釋放壓縮包
3、修改storm.yaml添加集群配置信息
4、使用storm腳本啟動相應服務並查看服務狀態
5、通過web查看storm集群的狀態
安裝Storm之前首先保證之前安裝的Zookeeper服務正常運行,包括配置hosts映射,主機名修改,防火牆都已經設置完好
Storm是由java編寫,因此必須依賴JDK運行,系統首先應正確安裝JDK
部分需要依賴Python,紅帽系列Linux默認Python版本是2.6.6,可以滿足要求;Linux可以安裝多個版本Python共存,生產過程中建議Python版本為2.7.x
這里測試使用的三台虛擬機主機名分別是:hadoopha,hadoop1,hadoop2
首先去Apache Storm官網下載安裝包,網址是:http://storm.apache.org/,進入后點擊上方DOWNLOAD按鈕,進入下載列表
這里下載的是storm 0.9.5的版本,下載之后上傳到服務器目錄下,釋放並且放到指定的目錄:
$ tar -xvzf apache-storm-0.9.5.tar.gz $ mv apache-storm-0.9.5 /usr/ $ cd /usr/apache-storm-0.9.5
接下來需要修改配置文件storm.yaml,執行vim conf/storm.yaml打開文件:
去掉storm.zookeeper.servers:前面的注釋,修改為集群中所有部署zookeeper的主機,當然都可以自己手動添加,具體配置如下:
增加storm.local.dir選項,指定nimbus,supervisor進程用於存儲少量的狀態數據,比如jar包,配置文件等
待會寫好配置文件我們需要手動建立這個目錄
下面指定supervisor工作節點,需要配置該節點可以運行的worker數量,每個worker占用一個端口用於接收消息,最多分配5個;默認情況下每個節點可以運行4個worker,分別在6700、6701、6702、6703端口,這里定義3個端口,代表最多運行3個worker:
下面設置集群主機,讓集群中所有的節點可以從主機下載拓撲以及配置文件,主機上運行的就是nimbus,而其他節點就是supervisor進程,這里hadoopha為nimbus,而hadoop1和hadoop2為supervisor,所以配置如下:
下面配置storm集群的drpc地址,這里就是hadoopha,實際中可以自己定義:
最后配置storm進程的分配內存,默認情況下Storm啟動worker進程時,JVM的最大內存是768M,由於在使用過程中,Bolt中加載大量數據,768M內存無法滿足要求,會導致內存溢出,應該根據實際情況進行修改,這里設置為2G
以上設置沒問題,保存配置文件並退出
然后在3台主機分別創建上面設置的數據目錄,必須都要創建:
mkdir -p /usr/data/storm
上面的配置是在hadoopha上配置的,接下來要把storm目錄發送到hadoop1和hadoop2:
$ scp -r apache-storm-0.9.5 hadoop1:/usr/ $ scp -r apache-storm-0.9.5 hadoop2:/usr/
發送之后,進入storm安裝目錄,開始啟動相應服務
首先啟動Nimbus服務,只在hadoopha上執行:
nohup bin/storm nimbus >> /dev/null &
上面命令的意思是丟棄輸出信息並且放到后台執行,稍微等一下,執行jps查看nimbus進程是否啟動:
然后在hadoop1,hadoop2節點都啟動Supervisor服務:
nohup bin/storm supervisor >> /dev/null &
稍等一下,也可以用jps查看到supervisor進程,
然后在配置drpc的主機hadoopha,drpc是一種后台服務,用於執行和storm相同的計算,但是比較節省資源,一般和nimbus使用同一台主機即可;執行以下命令啟動drpc服務:
nohup bin/storm drpc >> /dev/null &
稍等一下可以分別通過jps命令查看到drpc進程,
最后在nimbus節點也就是hadoopha執行以下命令,啟動UI服務:
nohup bin/storm ui >> /dev/null &
通過jps可以查看core進程是否啟動,啟動之后通過訪問hadoopha的ip即可進入web管理界面:http://192.168.1.42:8080
到這里基本的storm集群就配置完畢了