W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Storm 是一個(gè)分布式的,可靠的,容錯(cuò)的數(shù)據(jù)流處理系統(tǒng)。它會(huì)把工作任務(wù)委托給不同類型的組件,每個(gè)組件負(fù)責(zé)處理一項(xiàng)簡單特定的任務(wù)。Storm 集群的輸入流由一個(gè)被稱作 spout 的組件管理,spout 把數(shù)據(jù)傳遞給 bolt, bolt 要么把數(shù)據(jù)保存到某種存儲(chǔ)器,要么把數(shù)據(jù)傳遞給其它的 bolt。你可以想象一下,一個(gè) Storm 集群就是在一連串的 bolt 之間轉(zhuǎn)換 spout 傳過來的數(shù)據(jù)。
這里用一個(gè)簡單的例子來說明這個(gè)概念。昨晚我在新聞節(jié)目里看到主持人在談?wù)撜稳宋锖退麄儗?duì)于各種政治話題的立場。他們一直重復(fù)著不同的名字,而我開始考慮這些名字是否被提到了相同的次數(shù),以及不同次數(shù)之間的偏差。
想像播音員讀的字幕作為你的數(shù)據(jù)輸入流。你可以用一個(gè) spout 讀取一個(gè)文件(或者 socket,通過 HTTP,或者別的方法)。文本行被 spout 傳給一個(gè) bolt,再被 bolt 按單詞切割。單詞流又被傳給另一個(gè) bolt,在這里每個(gè)單詞與一張政治人名列表比較。每遇到一個(gè)匹配的名字,第二個(gè) bolt 為這個(gè)名字在數(shù)據(jù)庫的計(jì)數(shù)加1。你可以隨時(shí)查詢數(shù)據(jù)庫查看結(jié)果, 而且這些計(jì)數(shù)是隨著數(shù)據(jù)到達(dá)實(shí)時(shí)更新的。所有組件(spouts和bolts)及它們之間的關(guān)系請(qǐng)參考拓?fù)鋱D1-1
現(xiàn)在想象一下,很容易在整個(gè) Storm 集群定義每個(gè) bolt 和 spout 的并行性級(jí)別,因此你可以無限的擴(kuò)展你的拓?fù)浣Y(jié)構(gòu)。很神奇,是嗎?盡管這是個(gè)簡單例子,你也可以看到 Storm 的強(qiáng)大。
有哪些典型的 Storm 應(yīng)用案例?
數(shù)據(jù)處理流
正如上例所展示的,不像其它的流處理系統(tǒng),Storm 不需要中間隊(duì)列。
連續(xù)計(jì)算
連續(xù)發(fā)送數(shù)據(jù)到客戶端,使它們能夠?qū)崟r(shí)更新并顯示結(jié)果,如網(wǎng)站指標(biāo)。
分布式遠(yuǎn)程過程調(diào)用
頻繁的 CPU 密集型操作并行化。
Storm 組件
對(duì)于一個(gè)Storm集群,一個(gè)連續(xù)運(yùn)行的主節(jié)點(diǎn)組織若干節(jié)點(diǎn)工作。
在 Storm 集群中,有兩類節(jié)點(diǎn):主節(jié)點(diǎn) master node 和工作節(jié)點(diǎn) worker nodes。主節(jié)點(diǎn)運(yùn)行著一個(gè)叫做 Nimbus 的守護(hù)進(jìn)程。這個(gè)守護(hù)進(jìn)程負(fù)責(zé)在集群中分發(fā)代碼,為工作節(jié)點(diǎn)分配任務(wù),并監(jiān)控故障。Supervisor守護(hù)進(jìn)程作為拓?fù)涞囊徊糠诌\(yùn)行在工作節(jié)點(diǎn)上。一個(gè) Storm 拓?fù)浣Y(jié)構(gòu)在不同的機(jī)器上運(yùn)行著眾多的工作節(jié)點(diǎn)。
因?yàn)?Storm 在 Zookeeper 或本地磁盤上維持所有的集群狀態(tài),守護(hù)進(jìn)程可以是無狀態(tài)的而且失效或重啟時(shí)不會(huì)影響整個(gè)系統(tǒng)的健康(見圖1-2)
在系統(tǒng)底層,Storm 使用了 zeromq(0mq, zeromq(http://www.zeromq.org))。這是一種先進(jìn)的,可嵌入的網(wǎng)絡(luò)通訊庫,它提供的絕妙功能使 Storm 成為可能。下面列出一些 zeromq 的特性。
NOTE: Storm 只用了 push/pull sockets
在所有這些設(shè)計(jì)思想與決策中,有一些非常棒的特性成就了獨(dú)一無二的 Storm。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: