這篇文章將為大家詳細講解有關(guān)Storm集群如何搭建,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于永仁企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。永仁網(wǎng)站建設(shè)公司,為永仁等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
Storm是什么?
Storm是Twitter開源的一個分布式的實時計算系統(tǒng)
使用場景:
數(shù)據(jù)的實時分析,持續(xù)計算,分布式RPC等等.
Storm特點:(Storm類似手扶電梯,不出故障就會一直運行.
hadoop類似升降電梯,到達一定程度會停止)
分布式
可擴展
高可靠性
編程模型簡單
高效實時
常用的類:
BaseRichSpout(消息生產(chǎn)者)
BaseBasicBolt(消息處理者)
TopologyBuilder(拓撲的構(gòu)建器)
Config(配置)
StormSubmitter/LocalCluster(拓撲提交器)
Storm集群部署
Storm集群架構(gòu):
如圖:
在Storm的集群里面有兩種節(jié)點:控制節(jié)點和工作節(jié)點。
控制節(jié)點上面運行一個叫Nimbus進程,Nimbus負責(zé)在集群里面
分發(fā)代碼,分配計算任務(wù),并且監(jiān)控狀態(tài)。
每一個工作節(jié)點上面運行一個叫做Supervisor進程。
Supervisor負責(zé)監(jiān)聽從Nimbus分配給它執(zhí)行的任務(wù),
據(jù)此啟動或停止執(zhí)行任務(wù)的工作進程
Nimbus和Supervisor之間的所有協(xié)調(diào)工作都是通過Zookeeper集群完成。
集群規(guī)劃:(根據(jù)具體需求規(guī)劃)
linux主機名 Storm角色 Zookeeper
master Nimubus 單節(jié)點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基本配置:
修改主機名
修改IP
修改主機和IP的映射關(guān)系
關(guān)閉防火墻
安裝步驟:
1.安裝jdk
2.搭建Zookeeper集群(這里我們只安裝一個zk在主節(jié)點上)
解壓
進入zk的conf目錄下,cp zoo_sample.cfg zoo.cfg(修改一下名字)
其它的暫時都不變
3.安裝Storm依賴(zeromq、jzmq、python)
3.1安裝zeromq,然后進入到zeromq-2.1.7/目錄下
檢測環(huán)境:./configure
cd zeromq-2.1.7
./configure
#編譯可能會出錯:
configure: error: Unable to find a working C++ compiler
#安裝一下依賴的rpm包:libstdc++-devel gcc-c++
虛擬機可以上網(wǎng)的情況下:(建議使用此方法)
yum install gcc-c++
虛擬機不能上網(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
然后運行./configure
make(編譯)
make install(這個才徹底安裝)
3.2.編譯安裝JZMQ:
cd jzmq
執(zhí)行./autogen.sh
(是為了讓它產(chǎn)生配置文件,默認沒有配置文件的)
#報錯:autogen.sh: error: could not find libtool.
libtool is required to run autogen.sh.
缺少libtool
同樣,可上網(wǎng)情況下
yum install libtool(readhat企業(yè)版不會出現(xiàn)這些報錯)
或者手動安裝
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é)點上也得修改)
修改zk對應(yīng)的主機名
修改主節(jié)點對應(yīng)的主機名
PS:
3.41.Storm發(fā)行版本解壓目錄下有一個
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.42storm.local.dir: Nimbus和Supervisor進程
用于存儲少量狀態(tài),
如jars、confs等的本地磁盤目錄,
需要提前創(chuàng)建該目錄并給以足夠的訪問權(quán)限。
然后在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 &
通過瀏覽器觀察:(主節(jié)點的ip:8080)
觀察集群的worker資源使用情況、
Topologies的運行狀態(tài)等信息。
關(guān)于“Storm集群如何搭建”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。