Storm集群詳細部署


1.安裝zookeeper

3.1下載zookeeper安裝包,

建議下載3.4.5及以上的版本

    http://www.apache.org/dyn/closer.cgi/zookeeper/

3.2、下載完畢之后,解壓文件

    tar -zxvf zookeeper-3.4.7.tar.gz -C  /export/servers/

   cd /export/servers

    ln -s zookeeper-3.4.7 zookeeper

修改配置文件

     cd  /export/servers/zookeeper/conf

     mv zoo_sample.cfg zoo.cfg

     vi zoo.cfg

    輸入以下內容:

#基本事件單元,以毫秒為單位。它用來控制心跳和超時,默認情況下最小的會話超時時間為兩倍的 tickTime 

tickTime=2000

 

#此配置表示,允許 follower (相對於 leader 而言的“客戶端”)連接並同步到 leader 的初始化連接時間,它以 tickTime 的倍數來表示。當超過設置倍數的 tickTime 時間,則連接失敗

initLimit=10

 

#此配置表示, leader 與 follower 之間發送消息,請求和應答時間長度。如果 follower 在設置的時間內不能與 leader 進行通信,那么此 follower 將被丟棄

syncLimit=5

 

#數據目錄. 可以是任意目錄,其中的dataDir目錄和dataLogDir需要提前建立好

#注意 應該謹慎地選擇日志存放的位置,使用專用的日志存儲設備能夠大大地提高系統的性能,如果將日志存儲在比較繁忙的存儲設備上,那么將會在很大程度上影響系統的性能。

dataDir=/export/servers/data/zookeeper

 

 

#log目錄, 同樣可以是任意目錄. 如果沒有設置該參數, 將使用和dataDir相同的設置,其中的dataDir目錄和dataLogDir需要提前建立好

#注意 應該謹慎地選擇日志存放的位置,使用專用的日志存儲設備能夠大大地提高系統的性能,如果將日志存儲在比較繁忙的存儲設備上,那么將會在很大程度上影響系統的性能。

dataLogDir=/export/servers/logs/zookeeper

 

#監聽client連接的端口號.

clientPort=2181

 

#這個操作將限制連接到 ZooKeeper 的客戶端的數量,限制並發連接的數量,它通過 IP 來區分不同的客戶端。此配置選項可以用來阻止某些類別的 Dos 攻擊。將它設置為 0 或者忽略而不進行設置將會取消對並發連接的限制。

maxClientCnxns=0

 

#最小的會話超時時間以及最大的會話超時時間。

#其中,最小的會話超時時間默認情況下為 2 倍的 tickTme 時間

#最大的會話超時時間默認情況下為 20 倍的會話超時時間

minSessionTimeout=4000

maxSessionTimeout=10000

 

#server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口.

#在之前設置的dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和zoo.cfg文件中的server.X中的X一一對應.

server.1=192.168.52.106:2888:3888

server.2=192.168.52.107:2888:3888

server.3=192.168.52.108:2888:3888

 

創建zk的數據目錄和日志目錄

    mkdir -p /export/servers/data/zookeeper

    mkdir -p /export/servers/logs/zookeeper

3.5、在數據目錄下創建zk節點的編號

    在上文中 /export/servers/data/zookeeper 的目錄下,創建myid文件。

    myid文件的內容,根據所屬主機編號來編寫。

    解釋:

    創建數據目錄,也就是在你zoo.cfg配置文件里dataDir指定的那個目錄下創建myid文件,並且指定id,id為你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid頭部寫入1即可.

3.6、分發修改后的安裝文件

   scp zookeeper-3.4.6 hadoop02:/export/servers/

   scp zookeeper-3.4.6 hadoop03:/export/servers/

3.7、在分發后的機器上,執行步驟5的操作。

    創建數據目錄,也就是在你zoo.cfg配置文件里dataDir指定的那個目錄下創建myid文件,並且指定id,id為你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid頭部寫入1即可.

 

3.8、在所有 所有 所有機器上配置環境變量   

 

       #set ZK env

        export ZK_HOME=/export/servers/zk

        export PATH=${ZK_HOME}/bin:$PATH 

3.9、在所有 所有 所有機器上讓配置文件生效

    source  /etc/profile

 

3.10、啟動zk集群

   依次在不同的節點上,輸入zkServers.sh start

   出現錯誤后,可參考:http://maoxiangyi.cn/index.php/archives/121

3.11、查看zk集群的狀態

    依次在不同的節點上,輸入zkServers.sh status 

    只有一個主節點,leader  其他都是follow

 

4、安裝storm

 

4.1、下載安裝包

 

wget    http://124.202.164.6/files/1139000006794ECA/apache.fayea.com/storm/apache-storm-0.9.5/apache-storm-0.9.5.tar.gz

 

 

 

4.2、解壓安裝包

 

tar -zxvf apache-storm-0.9.5.tar.gz -C /export/servers/

 

cd /export/servers/

 

ln -s apache-storm-0.9.5 storm

 

4.3、修改配置文件

 

mv /export/servers/storm/conf/storm.yaml /export/servers/storm/conf/storm.yaml.bak

 

vi /export/servers/storm/conf/storm.yaml

 

輸入以下內容:

 

 

 

#指定storm使用的zk集群

storm.zookeeper.servers:

     - "zk01"

     - "zk02"

     - "zk03"

#指定storm集群中的nimbus節點所在的服務器

nimbus.host: "storm01"

#指定nimbus啟動JVM最大可用內存大小

nimbus.childopts: "-Xmx1024m"

#指定supervisor啟動JVM最大可用內存大小

supervisor.childopts: "-Xmx1024m"

#指定supervisor節點上,每個worker啟動JVM最大可用內存大小

worker.childopts: "-Xmx768m"

#指定ui啟動JVM最大可用內存大小,ui服務一般與nimbus同在一個節點上。

ui.childopts: "-Xmx768m"

#指定supervisor節點上,啟動worker時對應的端口號,每個端口對應槽,每個槽位對應一個worker

supervisor.slots.ports:

    - 6700

    - 6701

    - 6702

    - 6703

4.4、分發安裝包

scp -r /export/servers/apache-storm-0.9.5 storm02:/export/servers

然后分別在各機器上創建軟連接

cd /export/servers/

ln -s apache-storm-0.9.5 storm

4.5、啟動集群

nimbus.host所屬的機器上啟動 nimbus服務

cd /export/servers/storm/bin/

nohup ./storm nimbus &

nimbus.host所屬的機器上啟動ui服務

cd /export/servers/storm/bin/

nohup ./storm ui &

在其它個點擊上啟動supervisor服務

cd /export/servers/storm/bin/

nohup ./storm supervisor &

4.6、查看集群

訪問nimbus.host:/8080,即可看到stormui界面。

 

 

4.7Storm常用操作命令

有許多簡單且有用的命令可以用來管理拓撲,它們可以提交、殺死、禁用、再平衡拓撲。

提交任務命令格式:storm jar jar路徑】 【拓撲包名.拓撲類名】 【拓撲名稱】

bin/storm jar examples/storm-starter/storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology wordcount

殺死任務命令格式:storm kill 【拓撲名稱】 -w 10(執行kill命令時可以通過-w [等待秒數]指定拓撲停用以后的等待時間)

storm kill topology-name -w 10

停用任務命令格式:storm deactivte  【拓撲名稱】

storm deactivte topology-name

我們能夠掛起或停用運行中的拓撲。當停用拓撲時,所有已分發的元組都會得到處理,但是spoutsnextTuple方法不會被調用。銷毀一個拓撲,可以使用kill命令。它會以一種安全的方式銷毀一個拓撲,首先停用拓撲,在等待拓撲消息的時間段內允許拓撲完成當前的數據流。

啟用任務命令格式:storm activate【拓撲名稱】

        storm activate topology-name

重新部署任務命令格式:storm rebalance  【拓撲名稱】

        storm rebalance topology-name

        再平衡使你重分配集群任務。這是個很強大的命令。比如,你向一個運行中的集群增加了節點。再平衡命令將會停用拓撲,然后在相應超時時間之后重分配工人,並重啟拓撲。

 


免責聲明!

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



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