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