一、安裝前準備
jdk-6u32-linux-x64.bin (jdk-1.6.x即可)
zookeeper-3.4.5.tar.gz
zeromq-2.1.7.tar.gz
jzmq https://github.com/nathanmarz/jzmq
storm-0.8.2.zip
python 2.6
unzip
請盡量使用本文提供的軟體包版本,尤其是zeroMQ,因為其他版本可能導致storm運行失敗
一、安裝jdk
安裝jdk並配置JAVA_HOME環境變數
二、安裝ZooKeeper叢集
Zookeeper叢集的安裝文章有很多,在此不再贅述。建議叢集中節點數量為不小於2的奇數。
三、安裝zeroMQ
zeroMQ實際上是一個高效的底層通訊庫。按步驟來
tar -xvf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7.tar.gz
./configure 一般情況下預設即可
make
sudo make install
註:1)確保make和make install 過程中沒有出現error 2)zeroMQ的更進階別版本可能導致storm通訊失敗
四、安裝jzmq
jzmq是zeroMQ的java綁定
cd jzmq
./autogen.sh
./configure
make
sudo make install
確保make和make install過程中沒有出現任何error
五、檢查zeroMQ和jzmq的安裝
查看zeromq和jzmq的庫是否已經安裝到位,一般在/usr/local/lib目錄:
ls -l /usr/local/lib
-rw-r--r--. 1 root root 434774 Jan 23 14:46 libjzmq.a
-rwxr-xr-x. 1 root root 926 Jan 23 14:46 libjzmq.la
lrwxrwxrwx. 1 root root 16 Jan 23 14:46 libjzmq.so -> libjzmq.so.0.0.0
lrwxrwxrwx. 1 root root 16 Jan 23 14:46 libjzmq.so.0 -> libjzmq.so.0.0.0
-rwxr-xr-x. 1 root root 196860 Jan 23 14:46 libjzmq.so.0.0.0
-rw-r--r--. 1 root root 4928202 Jan 23 14:33 libzmq.a
-rwxr-xr-x. 1 root root 958 Jan 23 14:33 libzmq.la
lrwxrwxrwx. 1 root root 15 Jan 23 14:33 libzmq.so -> libzmq.so.1.0.0
lrwxrwxrwx. 1 root root 15 Jan 23 14:33 libzmq.so.1 -> libzmq.so.1.0.0
-rwxr-xr-x. 1 root root 1995704 Jan 23 14:33 libzmq.so.1.0.0
drwxr-xr-x. 2 root root 4096 Jan 23 14:33 pkgconfig
-rw-r--r--. 1 root root 13642 Jan 23 14:33 zmq.jar
六、安裝storm
安裝完zeroMQ和jzMQ之後就可以安裝storm了
直接解壓至相應目錄即可
七、配置運行環境
1)配置hosts
storm叢集中的機器必須具有不同的hostname,並且彼此能互相連通。舉例:
storm叢集節點的hosts都應做如下綁定
10.237.35.182 zookeeper
10.237.35.182 nimbus
10.237.35.108 drpc
2)配置storm.yaml
storm.zookeeper.servers
storm.local.dir storm本地目錄,多個執行個體不能互相覆蓋
java.library.path java庫路徑,如果在安裝zeroMQ和jzMQ過程中使用預設配置則不需要修改
nimbus.host 主節點
執行個體
########### These MUST be filled in for a storm configuration
storm.local.dir: "/usr/local/storm-0.8.2/storm-local"
storm.zookeeper.servers:
- "zookeeper"
# - "server2"
#
nimbus.host: "nimbus"
ui.port: 8090
#supervisor.slots.ports:
# - 6700
# - 6701
# - 6702
# - 6703
#topology.debug: true
supervisor.childopts: "-Xmx256m -Djava.net.preferIPv4Stack=true"
#
#
# ##### These may optionally be filled in:
#
## List of custom serializations
# topology.kryo.register:
# - org.mycompany.MyType
# - org.mycompany.MyType2: org.mycompany.MyType2Serializer
#
## List of custom kryo decorators
# topology.kryo.decorators:
# - org.mycompany.MyDecorator
#
## Locations of the drpc servers
drpc.servers:
- "drpc"
- "drpc2"
drpc.worker.threads: 1024
drpc.queue.size: 10240
topology.max.spout.pending: 20480
topology.max.task.parallelism: 1024
八、啟動
1、在nimubs節點啟動nimbus服務
nohup storm nimbus &
2、在nimbus節點啟動ui服務
nohup storm ui &
3、在supervisor節點啟動supervisor服務
nohup storm supervisor &
4、在drpc節點啟動drpc服務
nohup storm drpc &
九、其他
在安裝過程中可能需要安裝其他依賴包,根據實際情況安裝
其他可參考
https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster