Storm 單機和分散式安裝
1. Ubuntu下Storm單機版安裝
安裝Storm還需要提前安裝Python,Zookeeper,ZeroMQ,jzmq,然後才是Storm的安裝和配置:
1.1 安裝Python
一般Linux系統都會自帶Python,如果沒有可以按照以下步驟安裝:
tar zxf Python-2.7.2.tgz
cd Python-2.7.2
./configure
make
make install
在/etc/ld.so.conf後追加/usr/local/lib/
sudo ldconfig
1.2 安裝Zookeeper
從人人的
tar zxf zookeeper-3.4.4.tar.gz
在/etc/profile或者~/.bashrc追加:
export ZOOKEEPER_HOME=path/to/zookeeper.3.4.4
export PATH=$PATH:$ZOOKEEPER/bin
1.3 安裝ZeroMQ
./configure
//在configure時可能會報缺包,安裝即可:sudo apt-get install g++ uuid-dev
make
sudo make install
sudo ldconfig
1.4 安裝jzmq
git clone git://github.com/nathanmarz/jzmq.git
//如果沒有git,安裝即可:sudo apt-get install git
./autogen.sh
//可能會報缺包,安裝即可: sudo apt-get install libtool auto-make
./configure
//可能需要設定JAVA_HOME,export JAVA_HOME=path/to/java
make
sudo make install
1.5 安裝配置Storm
unzip storm-0.7.1.zip
//沒有unzip工具的話下載:sudo apt-get install unzip
在/etc/profile追加
export STORM_HOME=/path/to/Storm
export PATH=$PATH:$STORM_HOME/bin
1.6 測試
Storm安裝後可以進行簡單的測試,測試用到的工程可以從github得到:
git clone git://github.com/nathanmarz/storm-starter
需要將這個工程編譯成一個jar包,編譯過程見[2],我也有編譯好的jar包,請致信[email protected]索取。
測試:storm jar StormStarter.jar storm.starter.ExclamationTopology
2 分散式Storm安裝
Storm叢集包含一箇中心節點Nimbus,多個從節點Supervisor。
2.1 Zookeeper叢集搭建
首先我們需要搭建一個Zookeeper叢集,搭建過程見[3]。
2.2 安裝依賴軟體及Storm
我們在Storm的每個節點上安裝Python,ZeroMQ,jzmq,Storm。
2.3 配置Storm叢集
配置每個節點的Storm(根據前人[1]經驗,每行要以空格開始,冒號後要有空格!):
配置conf/storm.yaml檔案:
nimbus.host: "nimbus"
storm.local.dir: "path/to/local/dir"
storm.zookeeper.servers:
- "zookeeper1"
- "zookeeper2"
- "zookeeper3"
storm.zookeeper.port: 2181
其中nimbus.host為Nimbus節點的主機名或IP地址。
storm.local.dir為儲存相關資訊比如jar,topology等的目錄。
storm.zookeeper.servers為zookeeper叢集的主機名或IP地址。
storm.zookeeper.port為Zookeeper服務的埠號,要和你的Zookeeper服務的埠號一致(2181是預設的)。
以上配置需要在每個節點,包括Nimbus和Supervisor上配置,且前三項是必須的,第二項如果不設定會報Connection Refused錯誤。
在Nimbus節點上的~/.storm/storm.yaml配置(沒有該檔案的話建立之):
nimbus.host: "nimbus"
到這裡Storm叢集就配置完畢了。
2.4 啟動Storm叢集
在Nimbus節點上啟動Nimbus服務:
bin/storm nimbus &
加&是為了在後臺執行,否則當前的終端就不能再輸入命令了
在Nimbus節點上啟動UI,這樣就可以通過瀏覽器在http://nimbus-host:8080上觀察整個Storm叢集以及Topology的執行情況
bin/storm ui &
在Supervisor節點上啟動Supervisor:
bin/storm supervisor &
這樣整個Storm叢集便啟動了。
2.5 Storm叢集測試
Storm叢集的測試依然可以使用我們之前用過的StormStarter.jar,在Nimbus節點上執行:
storm jar StormStarter.jar storm.starter.ExclamationTopology exclamation
注意,與單機版Storm不同的是,我們在主類ExclamationTopology後面加了一個字串 exclamation,該字串是任意的,用來在叢集中標示這個Topology,如果不填加這個字串則該Topology會在單機環境下執行。
參考文獻:
[1] Twitter Storm安裝實戰 主要參考該博文,但是其中的一些網址可能會找不到,在本文中更新。