1. 程式人生 > >storm文件(12)----自己搭建storm叢集

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

 <version>-linux-x64.bin

(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模組,以下所示:

 

 3dlimageoplinuxaudiodevossaudiodev

       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: