1. 程式人生 > >Storm 單機和分散式安裝

Storm 單機和分散式安裝

1. Ubuntu下Storm單機版安裝

  安裝Storm還需要提前安裝Python,Zookeeper,ZeroMQ,jzmq,然後才是Storm的安裝和配置:

  1.1 安裝Python

  一般Linux系統都會自帶Python,如果沒有可以按照以下步驟安裝:

  tar zxf Python-2.7.2.tgz

  cd Python-2.7.2

  ./configure

  make

  make install

  在/etc/ld.so.conf後追加/usr/local/lib/

  sudo ldconfig

  1.2 安裝Zookeeper

  從人人的

Apache映象處下載Zookeeper

  tar zxf zookeeper-3.4.4.tar.gz

  在/etc/profile或者~/.bashrc追加:

  export ZOOKEEPER_HOME=path/to/zookeeper.3.4.4

  export PATH=$PATH:$ZOOKEEPER/bin

  1.3 安裝ZeroMQ

  ./configure

  //在configure時可能會報缺包,安裝即可:sudo apt-get install g++ uuid-dev

  make

  sudo make install

  sudo ldconfig

  1.4 安裝jzmq

  git clone git://github.com/nathanmarz/jzmq.git

  //如果沒有git,安裝即可:sudo apt-get install git

   ./autogen.sh

  //可能會報缺包,安裝即可: sudo apt-get install libtool auto-make

  ./configure

  //可能需要設定JAVA_HOME,export JAVA_HOME=path/to/java

  make

  sudo make install

  1.5 安裝配置Storm

  unzip storm-0.7.1.zip

  //沒有unzip工具的話下載:sudo apt-get install unzip

  在/etc/profile追加

  export STORM_HOME=/path/to/Storm

  export PATH=$PATH:$STORM_HOME/bin

  1.6 測試

  Storm安裝後可以進行簡單的測試,測試用到的工程可以從github得到:

  git clone git://github.com/nathanmarz/storm-starter

  需要將這個工程編譯成一個jar包,編譯過程見[2],我也有編譯好的jar包,請致信[email protected]索取。

  測試:storm jar StormStarter.jar storm.starter.ExclamationTopology

  2 分散式Storm安裝

  Storm叢集包含一箇中心節點Nimbus,多個從節點Supervisor。

  2.1 Zookeeper叢集搭建

  首先我們需要搭建一個Zookeeper叢集,搭建過程見[3]。

  2.2 安裝依賴軟體及Storm  

  我們在Storm的每個節點上安裝Python,ZeroMQ,jzmq,Storm。

  2.3 配置Storm叢集

  配置每個節點的Storm(根據前人[1]經驗,每行要以空格開始,冒號後要有空格!):

  配置conf/storm.yaml檔案:

  nimbus.host: "nimbus"

  storm.local.dir: "path/to/local/dir"

  storm.zookeeper.servers:
   - "zookeeper1"
   - "zookeeper2"
   - "zookeeper3"

   storm.zookeeper.port: 2181

  其中nimbus.host為Nimbus節點的主機名或IP地址。

  storm.local.dir為儲存相關資訊比如jar,topology等的目錄。

  storm.zookeeper.servers為zookeeper叢集的主機名或IP地址。

  storm.zookeeper.port為Zookeeper服務的埠號,要和你的Zookeeper服務的埠號一致(2181是預設的)。

  以上配置需要在每個節點,包括Nimbus和Supervisor上配置,且前三項是必須的,第二項如果不設定會報Connection Refused錯誤。

  在Nimbus節點上的~/.storm/storm.yaml配置(沒有該檔案的話建立之):

  nimbus.host: "nimbus"

  到這裡Storm叢集就配置完畢了。

  2.4 啟動Storm叢集

  在Nimbus節點上啟動Nimbus服務:

  bin/storm nimbus &

  加&是為了在後臺執行,否則當前的終端就不能再輸入命令了

  在Nimbus節點上啟動UI,這樣就可以通過瀏覽器在http://nimbus-host:8080上觀察整個Storm叢集以及Topology的執行情況

  bin/storm ui &

  在Supervisor節點上啟動Supervisor:

  bin/storm supervisor &

   這樣整個Storm叢集便啟動了。

  2.5 Storm叢集測試

  Storm叢集的測試依然可以使用我們之前用過的StormStarter.jar,在Nimbus節點上執行:

  storm jar StormStarter.jar storm.starter.ExclamationTopology exclamation

  注意,與單機版Storm不同的是,我們在主類ExclamationTopology後面加了一個字串 exclamation,該字串是任意的,用來在叢集中標示這個Topology,如果不填加這個字串則該Topology會在單機環境下執行。

  參考文獻:

  [1] Twitter Storm安裝實戰 主要參考該博文,但是其中的一些網址可能會找不到,在本文中更新。