以下是依次需要完成的安裝步驟
一、安裝JDK1.6
二、安裝Zookeeper
三、安裝zeromq-2.1.7
四、安裝jzmq
五、安裝Python-2.7.2
六、安裝unzip
七、安裝Storm
一、下載並安裝JDK1.6 並設置環境變量,如:
export JAVA_HOME=/opt/java6
export PATH=$PATH:$JAVA_HOME/bin
運行java、javac命令,測試java正常安裝。
二、安裝zookeeper
簡易安裝:下載zookeeper-3.4.6.tar.gz放到/opt目錄,然後修改/opt/zookeeper-3.4.6/data/myid 文件中的序列號,最後到bin目錄下./zkServer.sh start 啓動
完整安裝:
安裝zookeeper(至少安裝2n+1臺,n>0,也就是說不能安裝兩臺,所以每套環境只安裝了一臺)
1、下載zookeeper:wget http://mirror.esocc.com/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz 放到opt目錄下
2、將conf目錄下的 zoo_sample.cfg複製爲zoo.cfg
3、編輯zoo.cfg
3.1、添加server(單機模式就不用改了,集羣模式要添加如下:)
server.1=zookeeper1:2888:3888 (節點ip及端口)
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
3.2 添加配置項,說明數據文件路徑
dataDir=/opt/zookeeper-3.4.6/data/
4、在/opt/zookeeper-3.4.6/data/ 目錄下新建myid文件,並編輯爲server.id中的id號,如1、2、3
5、啓動zookeeper:/opt/zookeeper-3.4.6/bin/zkServer.sh start
6、查看狀態:/opt/zookeeper-3.4.6/bin/zkServer.sh status
7、停止zookeeper進程:/opt/zookeeper-3.4.6/bin/zkServer.sh stop
三、安裝zeromq-2.1.7(安裝過程中若出現失敗,請關注注意事項)
1、下載並解壓zeromq-2.1.7
wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar -zxf zeromq-2.1.7.tar.gz
2、執行以下命令
cd zeromq-2.1.7
./configure
make
make install
四、安裝jzmq
1、下載並解壓jzmg
2、執行以下命令
cd jzmq
./autogen.sh
./configure
make
make install
五、安裝Python-2.7.2
1、下載並解壓Python-2.7.2
2、執行以下命令
cd Python-2.7.2
./configure
make
make install
六、安裝unzip
yum install unzip
七、安裝storm-0.8.0
1、下載並解壓storm-0.8.0
2、修改${storm}/conf/storm.yaml配置文件
1) storm.zookeeper.servers: Storm集羣使用的Zookeeper集羣地址,其格式如下:
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
如果Zookeeper集羣使用的不是默認端口,那麼還需要storm.zookeeper.port選項。
2) storm.local.dir: Nimbus和Supervisor進程用於存儲少量狀態,如jars、confs等的本地磁盤目錄,需要提前創建該目錄並給以足夠的訪問權限。然後在storm.yaml中配置該目錄,如:
storm.local.dir: "/state/partition1/tmp/storm"
3) java.library.path: Storm使用的本地庫(ZMQ和JZMQ)加載路徑,默認爲"/usr/local/lib:/opt/local/lib:/usr/lib",一般來說ZMQ和JZMQ默認安裝在/usr/local/lib 下,因此不需要配置即可。
4) nimbus.host: Storm集羣Nimbus機器地址,各個Supervisor工作節點需要知道哪個機器是Nimbus,以便下載Topologies的jars、confs等文件,如:
nimbus.host: "111.222.333.444"
5) supervisor.slots.ports: 對於每個Supervisor工作節點,需要配置該工作節點可以運行的worker數量。每個worker佔用一個單獨的端口用於接收消息,該配置選項即用於定義哪些端口是可被worker使用的。默認情況下,每個節點上可運行4個workers,分別在6700、6701、6702和6703端口,如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
3 啓動Storm各個後臺進程
以下是啓動Storm各個後臺進程的方式:
a、Nimbus: 在Storm主控節點的${storm}/bin目錄上運行"nohup storm nimbus &"啓動Nimbus後臺程序,並放到後臺執行;
b、Supervisor: 在Storm各個工作節點的${storm}/bin目錄上運行"nohup storm supervisor &"啓動Supervisor後臺程序,必須先啓動主節點並放到後臺執行;
c、UI: 在Storm主控節點的${storm}/bin目錄上運行"nohup storm ui &"啓動UI後臺程序,並放到後臺執行,啓動後可以通過
http://nimbus host:9090/ 觀察集羣的worker資源使用情況、Topologies的運行狀態等信息。
至此,Storm集羣已經部署、配置完畢,可以向集羣提交拓撲運行了。
啓動目前項目的各個job在$STORM_HOME/bin目錄下
只要在主節點啓動,jar包也放主節點上
參數:名稱,進程數NumWorkers(默認值爲各個topology後面的值)
storm jar stormtopology.jar com.hc360.storm.MyTopology MyTopology 3;
通過UI去查看各個job是否成功啓動:
http://nimbus host:9090/
關閉各個job的命令如下:
在$STORM_HOME/bin目錄下
storm kill MyTopology;
注意事項:
1.配置hosts文件 (注意:localhost採取默認127.0.0.1,不要改動)
vi /etc/hosts
配置環境變量(jdk,storm):
vi /etc/profile
2.No route to host
出現上面錯誤的原因有可能是:防火牆沒有關閉
iptables -l
3.中途失敗,按照提示先安裝其他庫
yum install libtools
yum install gcc-c++
yum install uuid-devel
yum install libuuid-devel
4.Storm後臺進程被啓動後,將在Storm安裝部署目錄下的logs/子目錄下生成各個進程的日誌文件。
5.經測試,Storm UI必須和Storm Nimbus部署在同一臺機器上,否則UI無法正常工作,因爲UI進程會檢查本機是否存在Nimbus鏈接。
6.爲了方便使用,可以將bin/storm加入到系統環境變量中。