您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何進行Twitter Storm 系統集群搭建,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Storm是什么
Storm是Twitter開源的一個分布式的實時計算系統
使用場景:
數據的實時分析、持續計算、分布式RPC等等。
Storm特點(Storm類似手扶電梯,不出故障就會一直運行,hadoop類似升降電梯,到達一定程度會停止。):
分布式
可擴展
高可靠性
編程模型簡單
高效實時
常用的類:
BaseRichSpout(消息生產者)
BaseBasicBolt(消息處理者)
TopologyBuilder(拓撲的構建器)
Config(配置)
StormSubmitter/LocalCluster(拓撲提交器)
Storm集群部署
Storm集群架構:
如圖:
在Storm的集群里面有兩種節點:控制節點和工作節點。
控制節點上面運行一個叫Nimbus進程,Nimbus負責在集群里面
分發代碼,分配計算任務,并且監控狀態。
每一個工作節點上面運行一個叫做Supervisor進程。
Supervisor負責監聽從Nimbus分配給它執行的任務,據此啟動或停止執行任務的工作進程。
Nimbus和Supervisor之間的所有協調工作都是通過Zookeeper集群完成。
集群規劃:(根據具體需求規劃)
linux主機名 Storm角色 Zookeeper master Nimubus 單節點zk slave01 Supervisor slave02 Supervisor
準備工作:
環境:centos6.4
軟件:
jzmq-master storm-0.8.2 zeromq-2.1.7 zookeeper-3.4.5
環境配置:(參見前幾篇博客)
Linux基本配置:
修改主機名
修改IP
修改主機和IP的映射關系
關閉防火墻
安裝步驟:
1.安裝jdk
2.搭建Zookeeper集群(這里我們只安裝一個zk在主節點上)
解壓
進入zk的conf目錄下,cp zoo_sample.cfg zoo.cfg(修改一下名字),其它的暫時都不變
3.安裝Storm依賴(zeromq、jzmq、python)
3.1安裝zeromq,然后進入到zeromq-2.1.7/目錄下
檢測環境:./configure cd zeromq-2.1.7 ./configure
#編譯可能會出錯:
configure: error: Unable to find a working C++ compiler
#安裝一下依賴的rpm包:
libstdc++-devel gcc-c++
虛擬機可以上網的情況下:(建議使用此方法)
yum install gcc-c++
虛擬機不能上網情況:
首先到http://mirrors.163.com/centos/6.4/os/x86_64/Packages/(下載的版本一定要和系統對應)
rpm -i libstdc++-devel-4.4.7-3.el6.x86_64.rpm rpm -i gcc-c++-4.4.7-3.el6.x86_64.rpm rpm -i libuuid-devel-2.17.2-12.9.el6.x86_64.rpm
然后運行./configure
make(編譯)
make install(這個才徹底安裝)
3.2.編譯安裝JZMQ:
cd jzmq
執行./autogen.sh(是為了讓它產生配置文件,默認沒有配置文件的),
#報錯:autogen.sh: error: could not find libtool. libtool is required to run autogen.sh. 缺少libtool
同樣,可上網情況下:
yum install libtool(readhat企業版不會出現這些報錯)
或者手動安裝:
rpm -i autoconf-2.63-5.1.el6.noarch.rpm rpm -i automake-1.11.1-4.el6.noarch.rpm rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm ./configure make make install
3.33.編譯安裝Python(先確定你系統自帶的版本,如果是2.6.6或者之上的不需要安裝)
tar –zxvf Python-2.6.6.tgz cd Python-2.6.6 ./configure make make install
3.4安裝storm
修改storm.yaml配置文件(子節點上也得修改) 修改zk對應的主機名 修改主節點對應的主機名
PS:
3.41 Storm發行版本解壓目錄下有一個
conf/storm.yaml文件:
用于配置Storm。默認配置在這里可以查看conf/storm.yaml中的配置選項將覆蓋defaults.yaml中的默認配置。
以下配置選項是必須在conf/storm.yaml中進行配置的:
storm.zookeeper.servers:
Storm集群使用的Zookeeper集群地址,
其格式如下:
storm.zookeeper.servers: - "111.222.333.444" - "555.666.777.888"
如果Zookeeper集群使用的不是默認端口,那么還需要storm.zookeeper.port選項。
3.42 storm.local.dir: Nimbus和Supervisor進程
用于存儲少量狀態,如jars、confs等的本地磁盤目錄,需要提前創建該目錄并給以足夠的訪問權限。
然后在storm.yaml中配置該目錄,如:
storm.local.dir: "/usr/storm/workdir"
分別啟動三臺機器,master:到storm的bin目錄下:
./storm nimbus > /dev/null 2>&1 &
slave01:到storm的bin目錄下:
./storm supervisor > ../logs/su.log 2>&1 &
slave02:到storm的bin目錄下:
./storm supervisor > ../logs/su.log 2>&1 &
(啟動后臺進程,并把正確和錯誤的信息輸出到該文件中)
在master上啟動UI管理界面
./storm ui > /dev/null 2>&1 &
通過瀏覽器觀察:(主節點的ip:8080),觀察集群的worker資源使用情況、Topologies的運行狀態等信息。
Storm集群已經部署、配置完畢,可以向集群提交拓撲運行了。
上述就是小編為大家分享的如何進行Twitter Storm 系統集群搭建了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。