Ubuntu下Storm安裝(單機,分布式)


1. Ubuntu下Storm單機版安裝

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

  1.1 安裝Python

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

  wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz

  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

  wget http://labs.renren.com/apache-mirror/zookeeper/stable/zookeeper-3.4.4.tar.gz

  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

  wget http://download.zeromq.org/zeromq-2.1.7.tar.gz

  ./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

  wget https://github.com/nathanmarz/storm/downloads/storm-0.7.1.zip

  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包,請致信kemaswill@163.com索取。

  測試: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安裝實戰 主要參考該博文,但是其中的一些網址可能會找不到,在本文中更新。

  [2] 編譯StormStarter 該博文的二 2)部分有詳細介紹

  [3] Zookeeper集群安裝配置

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM