在《Kafka實戰-實時日誌統計流程》一文中,談到了Storm的相關問題,在完成實時日誌統計時,咱們須要用到Storm去消費Kafka Cluster中的數據,因此,這裏我單獨給你們分享一篇Storm Cluster的搭建部署。如下是今天的分享目錄:html
下面開始今天的內容分享。apache
Twitter將Storm開源了,這是一個分佈式的、容錯的實時計算系統,已被貢獻到Apache基金會,下載地址以下所示:編程
http://storm.apache.org/downloads.html
[hadoop@dn1 ~]$ tar -zxvf apache-storm-0.9.4.tar.gz
export STORM_HOME=/home/hadoop/storm-0.9.4 export PATH=$PATH:$STORM_HOME/bin
########### These MUST be filled in for a storm configuration storm.zookeeper.servers: - "dn1" - "dn2" - "dn3" storm.zookeeper.port: 2181 nimbus.host: "dn1" supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 storm.local.dir: "/home/hadoop/data/storm"
下面咱們來看Storm的角色分配,以下圖所示:
服務器
在配置完成相關文件後,咱們使用scp命令將文件分發到各個節點,命令以下所示:網絡
[hadoop@dn1 ~]$ scp -r storm-0.9.4/ hadoop@dn2:~/ [hadoop@dn1 ~]$ scp -r storm-0.9.4/ hadoop@dn3:~/
# 分別在三個節點依次啓動zk的服務 [hadoop@dn1 ~]$ zkServer.sh start [hadoop@dn2 ~]$ zkServer.sh start [hadoop@dn3 ~]$ zkServer.sh start
# 在nimbus節點啓動nimbus服務
[hadoop@dn1 ~]$ storm nimbus &
#在supervisor節點分別啓動supervisor服務 [hadoop@dn2 ~]$ storm supervisor & [hadoop@dn3 ~]$ storm supervisor &
[hadoop@dn1 ~]$ storm ui &
[hadoop@dn1 storm-0.9.4]$ jps 2098 Jps 1983 core 1893 QuorumPeerMain 1930 nimbus
[hadoop@dn2 storm-0.9.4]$ jps 1763 worker 1762 worker 1662 QuorumPeerMain 1765 worker 1692 supervisor 1891 Jps
[hadoop@dn3 storm-0.9.4]$ jps 2016 QuorumPeerMain 2057 supervisor 2213 Jps
因爲,集羣我作過測試,提交過Topology,因此截圖中會有提交記錄,從上面的dn2節點的進程中也能夠看出,有相應的worker進程,如果首次安裝,未提交任務是不會有對應的顯示的,下面附上Storm UI中相關的截圖預覽,以下圖所示:編程語言
這就是本篇爲你們介紹的Storm Cluster的搭建部署,從上面的Storm的分佈圖中咱們能夠細心的發現,Storm的分佈存在單點問題,國外已經有Storm HA版本,不過這個非官方版本,目前Storm提供了一些機制來保證即便在節點掛了或者消息被丟失的狀況下也能正確的進行數據處理,能夠參考官方給出的解決方案,地址以下所示:分佈式
http://storm.apache.org/documentation/Guaranteeing-message-processing.html
這篇博客就和你們分享到這裏,若是你們在研究學習的過程中有什麼問題,能夠加羣進行討論或發送郵件給我,我會盡我所能爲您解答,與君共勉!oop