storm文件(12)----自己搭建storm叢集
ubuntu下 storm 安裝步驟
安裝storm之前首先需要安裝一些依賴庫:
zookeeper、JDK 6、python2.6.6、jzmq、zeromq
這些庫所需要的依賴庫不再一一筆述。
以下為具體安裝過程:
一、安裝JDK
zookeeper要求安裝JDK 6或更高版本( 目前最新穩定版本為JDK8), 但是由於storm要求安裝JDK 6, 因此選擇安裝JDK 6。
1、下載JDK6
(1)開啟 JDK下載地址:
(2)選擇Java SE 6並下載
2、安裝JDK
(1)修改許可權:
chmod+x 6u
(2) 安裝:Sun公司出版的《Java核心程式設計》建議安裝在/usr下,而不是/usr/local下,具體原因不明。
sudo ./ 6u <version>-linux-x64.bin安裝目錄
(3) 配置環境變數
export JAVA_HOME=安裝目錄
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
注意:解決JDK版本衝突的方式就是修改這些環境變數
三種方式:
方式一: 只在當前shell中可用:
則在當前shell命令列中上述語句即可
方式二: 只在當前使用者中可用:
則在~/.bashrc末尾新增上述語句即可
當前shell中啟用:
source ~/.bashrc
方式三: 所有使用者均可用:
則在/etc/profile末尾新增上述語句即可
當前shell中啟用:
sudo source /ect/profile
本例中採用方式三。
3、測試java是否安裝成功
java -version
二、安裝zookeeper
1、zookeeper的系統要求:
支援的平臺包括:GNU/LINUX、 Sun Solaris、FreeBSD、Win32、MaxOSX
軟體要求:需要JDK 6或更高版本; 對於Zookeeper叢集,官方推薦最小節點數是3個,並且執行在不同的機器上; 為避免資料swap導致效能下降, 在記憶體允許的情況下,儘可能的增大java heap size,例如 4GB 記憶體時java heap size可以設定為3GB
2、具體安裝過程
(1)
(2)安裝zookeeper的依賴工具包:
gcc、cppunit、python-setuptools
i. gcc系統一般會自帶, 不需要安裝
ii. 安裝python-setuptools:
sudoapt-get install python-setuptools
iii. 安裝cppunit
sudoapt-get install cppunit
(2) 配置zookeeperconfiguration file:
由於本叢集中有10個節點,因此配置
三、安裝python
1、下載python 2.6.6
wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2
2、編譯安裝python 2.6.6
(1)解壓:tar -jxvfPython-2.6.6.tar.bz2
(2)編譯安裝:
cd Python
sudo./configure --prefix=/usr/local/lib/python2.6.6
sudomake
在安裝過程中有可能會出現幾處錯誤
錯誤一:
根據上述錯誤,搜尋得出是因為Debian/Ubuntu的Multiarch機制造成:即使不同架構下編譯的二進位制檔案可以在同一個系統下執行。
參考文件:
出錯原因:不同架構下的庫的搜尋路徑可能不一致,因此setup.py可能找不到編譯時所需要的庫檔案。
解決辦法:修改setup.py,將multiarch的路徑加進setup.py的搜尋路徑。
錯誤二:
解決錯誤一之後,進行make,依然報錯:
上述錯誤說明缺少依賴庫:按照提示說明上述依賴庫可以修改setup.py中的detect_modules()函式取消依賴,但由於無法預料不安裝哪一個會出現何種結果,因此決定都安裝,共18個依賴庫。
依次安裝:
1)安裝 zlib(壓縮庫)
查詢zlib庫
安裝:sudo apt-get install zlib1g-dev
檢視是否安裝成功,zlib沒有出現說明安裝成功,繼續安裝
2)安裝bz2
查詢bz2庫(壓縮庫)
安裝:sudoapt-get install libbz2-dev
3)安裝gdbm(dbm是類unix系統的資料庫,使用Hash儲存非結構化資料,不支援SQL,gdbm是GNU版本的dbm)
查詢gdbm並安裝:
sudoapt-get install libgdbm-dev
注:安裝gdbm之後,不需要再安裝dbm
4)安裝readline(GNU,用於編輯命令列,當前使用者:GDB,VI,Emacs等)
查詢並安裝readline:
sudoapt-get install libreadline-dev
5)安裝_sqlite3(SQL 資料庫引擎的C庫)
安裝: libsqlite3-dev
6)安裝 _curses 和_curses_panel
安裝: libncurses5-dev
3、安裝失敗的依賴庫說明
以下為沒有成功安裝的依賴庫:(並不是意味著安裝失敗,只是python2.6.6無法呼叫以下庫)
先將安裝步驟列出如下:
1)安裝_bsddb(pythoninterface for berkeley DB)
方法一:不成功
搜尋apt-cachesearch bsddb
但是安裝python-bsddb3和python-bsddb3-dbg之後,執行python的make發現依然提示沒有_bsddb,於是到python官網搜尋有關bsddb相關資訊:
方法二:不成功
依然不行,網上搜索發現有人先安裝berkeley的db: libdb-dev
方法三:
網上有說bsddb是一個很古老的berkeley DB模組,可以不必安裝。
通過修改setup.py
disabled_module_list= ["bsddb185"]
依然失敗
2)安裝_hashlib(hash表)和 _ssl(資訊保安、資料加密)
搜尋以及安裝:sudoapt-get install libssl-dev
安裝好libssl-dev後,編譯python依然沒有成功識別_ssl模組
安裝openssl:sudo apt-get install openssl
結果依然無法成功呼叫 _ssl模組,以下所示:
3)dl、imageop、linuxaudiodev、ossaudiodev
dl 是 32 位系統上的過時模組(被 ctypes 替代);
imageop 也是 32 位系統上的過時模組,被 PIL 代替;
linuxaudiodev是音訊模組;
ossaudiodev是音訊模組;
_tkinter是介面模組。
這幾個模組不用安裝。
4、解決python版本衝突問題
原本機器上本來就有python2.7,現在storm需要使用python2.6,如何解決版本衝突問題是需要解決的。
搜尋網上,提出兩種解決辦法:
(1)安裝python版本管理工具 pythonbrew
下載解壓,進入pythonbrew1.3.5
閱讀README.rst,按照推薦安裝步驟進行:
(1)curl -kLhttp://xrl.us/pythonbrewinstall | bash
需要安裝依賴庫: curl
sudoapt-get install curl
安裝完curl之後,執行步驟(1)命令列,顯示:
(2)根據上面輸出提示,將提示命令寫入~/.bashrc末尾,即:
[[ -s"$HOME/.pythonbrew/etc/bashrc" ]] && source"$HOME/.pythonbrew/etc/bashrc"
(3) 選擇相應的版本號:
pythonbrew switch 2.6.6
注:重點推薦pythonbrew軟體,希望各位在安裝python之前就安裝pythonbrew,可以使用pythonbrew安裝想要的python版本。
(2)使用軟連結:
本例中,python2.6.6安裝在/usr/local/lib下,因此軟連結可以為:
sudo ln -s/usr/bin/python /usr/local/lib/python2.6.6/bin/python2.6
四、安裝zeromq
1、安裝 zeromq
(1)下載zeromq原始碼,版本號2.1.7
報錯,缺少 uuid-dev
因此安裝 sudo apt-get install uuid-dev
(2)編譯安裝:
make
make install
五、安裝jzmq
(1)下載jzmq原始碼
執行 ./autogen.sh,報錯:
需要安裝 pkg-config
sudo apt-get install pkg-config
依然報錯:
需要安裝libtool
sudo apt-get install libtool
依然報錯:
需要安裝autoconf和automake:
sudo apt-get install automake autoconf
在安裝過程中自動安裝了依賴庫m4
./autogen.sh執行成功,生成configure
./configure
make 出錯:
1)首先在makefile所在路徑以及src目錄下都生成一個classdist_noinst.stamp空檔案。
2)到src/org/zeromq目錄下:javac *.java
3)到src目錄下:make -j24; make install
4) 到makefile所在路徑下: make-j24; make install
六、storm安裝以及配置過程:
1、下載可執行軟體包:
2、啟動過程:
參考storm官網:
(1)修改storm配置檔案:
(2)啟動storm nimbus:
bin/storm nimbus >/dev/null 2>&1 &
(3)啟動 supervisor:
bin/storm supervisor >/dev/null 2>&1 &
(4)啟動 ui:
bin/storm ui >/dev/null 2>&1&
注意:
ui節點與nimbus節點最好位於同一節點。
ui預設使用埠為8080,但是這個埠已經被tcp佔用,因此需要修改ui.port引數,以防埠衝突。
(5)檢視storm ui: