storm集羣安裝部署

 

1.storm集羣架構

storm利用了分佈式系統中經典的master/slave架構html

主控節點:這裏稱之爲nimbus,負責在集羣分發任務(Topology)的代碼以及監控等。java

工做節點:這裏稱之爲Supervisor,工做節點跟傳動主從不一樣之處在於,其並非本身直接執行任務。在接受到一個任務的時候,Supervisor會啓動一個或多個進程(稱之爲worker),來處理任務。因此實際上,任務最終都是分配到了worker上。python

2.storm集羣環境的搭建

須要一下環境:git

zookeeper集羣github

java 6 以上apache

Python 2.6.6 以上架構

ZMQ 2.1.7app

JZMQ 分佈式

1.安裝zookeeper集羣:

Storm使用Zookeeper協調集羣,因爲Zookeeper並不用於消息傳遞,因此Storm給Zookeeper帶來的壓力至關低。大多數狀況下,單個節點的Zookeeper集羣足夠勝任,不過爲了確保故障恢復或者部署大規模Storm集羣,可能須要更大規模節點的Zookeeper集羣。具體安裝步驟這裏不作描述。測試

2.java安裝:

下載jdk包 解壓,配置環境變量。具體步驟這裏不作描述。

3.Python安裝:

下載:

wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2

解壓安裝:

tar –jxvf Python-2.6.6.tar.bz2
cd Python-2.6.6
./configure
make
make install

測試:

$ python -V
Python 2.6.6

4.ZMQ安裝:

下載解壓安裝:

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

安裝過程當中可能會發現須要安裝其餘類庫,我這裏面安裝時提示須要uuid,安裝便可

yum install libuuid-devel

5.JZMQ安裝:

git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
sudo make install

3. 安裝storm

1. 下載解壓

安裝完成所需的依賴以後,咱們終於能夠安裝storm。根據開發的軟件選擇合適版本的storm安裝。這裏選擇的是storm-0.9.7發佈版

下載解壓:

wget http://mirror.bit.edu.cn/apache/storm/apache-storm-0.9.7/apache-storm-0.9.7.tar.gz
tar -xvzf apache-storm-0.9.7.tar.gz

2.配置

配置conf/storm.yaml文件,storm有默認配置文件,storm.yaml中的配置項會覆蓋默認配置,經過如下連接能夠查看默認配置:https://github.com/apache/storm/blob/master/conf/defaults.yaml

這裏須要修改的配置項有(每個配置項前面要留一個空格):

storm.zookeeper.servers: Storm集羣使用的Zookeeper集羣地址

storm.zookeeper.servers:
   - "192.168.1.112"
   - "192.168.1.113"

storm.local.dir: Nimbus和Supervisor進程用於存儲少許狀態,如jars、confs等的本地磁盤目錄,須要提早建立該目錄並給以足夠的訪問權限。

storm.local.dir: "/opt/storm/data"

nimbus.host: Storm集羣Nimbus機器地址.

nimbus.host: "192.168.1.112"

supervisor.slots.ports: 對於每一個Supervisor工做節點,須要配置該工做節點能夠運行的worker數量。每一個worker佔用一個單獨的端口用於接收消息,該配置選項即用於定義哪些端口是可被worker使用的。默認配置有4端口可用,若是需改變或更多能夠進行配置。

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

ui.port: storm爲咱們提供了一個後臺程序,能夠監控資源運行狀態,該端口配置用於咱們訪問管理頁面。http://192.168.1.111:8088/index.html

ui.port: 8088

3.啓動後臺進程

  1. Nimbus: 在Storm主控節點上運行"bin/storm nimbus >/dev/null 2>&1 &"啓動Nimbus後臺程序,並放到後臺執行;
  2. Supervisor: 在Storm各個工做節點上運行"bin/storm supervisor >/dev/null 2>&1 &"啓動Supervisor後臺程序,並放到後臺執行;
  3. UI: 在Storm主控節點上運行"bin/storm ui >/dev/null 2>&1 &"啓動UI後臺程序,並放到後臺執行,啓動後能夠經過http://{nimbus host}:8080觀察集羣的worker資源使用狀況、Topologies的運行狀態等信息。

      能夠在logs目錄下查看每一個後臺程序的啓動日誌。

4.提交Topology到集羣中

提交命令

storm jar path/to/allmycode.jar(jar包路徑) path.main.class(主類main) arg1 arg2 arg3(main方法參數)

這裏提交命令:

./apache-storm-0.9.7/bin/storm jar Getting-Started-0.0.1-SNAPSHOT-jar-with-dependencies.jar sfpay.TopologyMain wordcountapp

查看運行狀態:

./bin/storm list
Topology_name        Status     Num_tasks  Num_workers  Uptime_secs
-------------------------------------------------------------------
wordcountapp         ACTIVE     4          1            3707
相關文章
相關標籤/搜索