最近本身嘗試搭建了一下Twitter Storm的集羣,參考了不少網友的博客,特別是徐明明的;這裏只對本身搭建時的過程和所遇到的問題作一個小總結,方便查閱。 java
Storm是Twitter開源的一個實時計算框架,它須要依賴Zookeeper,ZeroMQ;同時還須要你的系統環境中有Java和Python。因此整個搭建步驟以下: git
因爲系統環境中已經有同事搭建好了Zookeeper的集羣,因此我沒本身手動實現過,就不作介紹了,直接給出 賤客的一篇博客http://www.oschina.net/question/54100_10242 github
這節主要介紹ZeroMQ,JZMQ的部署(Java和Python的安裝就不總結了,網上不少) shell
首先是ZeroMQ:Storm所需的版本是 ZeroMQ 2.1.7,你能夠經過執行以下命令安裝: 服務器
wget http://download.zeromq.org/zeromq-2.1.7.tar.gz tar -xzf zeromq-2.1.7.tar.gz cd zeromq-2.1.7 ./configure make sudo make install在這各環節,我出現過一次安裝失敗,以是由於 ./configure會檢查它所依賴的軟件,系統中缺乏uuid,後來安裝了,就經過了。 (命令:sudo apt-get install uuid-dev)
接下來是JZMQ,它是Java綁定的ZeroMQ,再安裝以前請保證Java已經安裝好了,能夠經過執行以下命令安裝JZMQ
app
git clone https://github.com/nathanmarz/jzmq.git cd jzmq ./autogen.sh ./configure make sudo make install這個過程當中,我遇到 autoconf 安裝不全,經過命令(apt-get install autoreconf*)升級後以就經過了,同時./configure時會檢查你的JAVA_HOME是否正確,不正確會報錯,並提示。
從這裏 下載Storm的包,並解壓到你須要安裝的目錄下便可。 框架
配置主要是經過storm.yaml文件,對系統中各個組件作說明;如下是Storm中必須有的配置及說明: ui
1. storm.zookeeper.servers :指定Storm系統所使用的Zookeeper的地址 spa
storm.zookeeper.servers: - "111.222.333.444" - "555.666.777.888"
2. storm.local.dir :Storm 的一些配置文件或架包,或日誌存放的地方,注意這個目錄下,你必定要保證你有權限生成文件,不然會報錯,配置以下: .net
storm.local.dir: "/mnt/storm"
3. java.library.path :這是storm所依賴的本地依賴(ZeroMQ和JZMQ)的加載地址, 默認的是:/usr/local/lib:/opt/local/lib:/usr/lib, 大多狀況下是對的,因此你應該不用更改這個配置。
4. nimbus.host:是控制節點的指定,全部工做機都須要知道誰是控制節點,才能從它那拿Jar包
nimbus.host: "111.222.333.44"5. supervisor.slots.ports : 在工做機上,運行每個進程,都須要有本身的獨立的端口來接受信息,因此這裏,你配置了幾個端口,就代表你工做機上最多能夠有多少個進程。默認是4個,端口能夠本身改
supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703最後 若是你還須要瞭解其餘的配置信息能夠看 這裏 ,同時建議你把 ui.port:也配置下,也許你服務器的8080端口已經配佔用,你須要啓動ui來查看Storm運行狀態
ui.port: 8080
經過執行以下命令分別啓動Nimbus、Supervisor、ui
storm nimbus storm supervisor storm ui完成後,你能夠經過 「主機ip : 端口號" 來查看Storm運行狀態(若你執行了storm ui命令,端口號爲 你配置文件 ui.port的值,默認8080)
最後若是程序出錯,在你storm的解壓目錄下的logs裏, 分別會生成nimbus、supervisor、ui目錄,裏面有各類的日誌文件,用於記錄異常信息,你能夠查閱。
參考資料:
Installing native dependencies
https://github.com/nathanmarz/storm/blob/master/conf/defaults.yaml