03-Apache Stom 的幾個(gè)核心概念

Apache Storm的幾個(gè)核心概念:

core_concept.jpg

Tuple:

Tuple是Storm中的主要數(shù)據(jù)結(jié)構(gòu)。它是有序元素的列表。默認(rèn)情況下杯道,Tuple支持所有數(shù)據(jù)類型。通常责蝠,它被建模為一組逗號(hào)分隔的值,并傳遞到Storm集群萎庭。

Stream:

流是元組的無序序列霜医。

Spouts:

Spout是流的源。通常驳规,Storm從原始數(shù)據(jù)源(如Twitter Streaming API肴敛,Apache Kafka隊(duì)列,Kestrel隊(duì)列等)接受輸入數(shù)據(jù)吗购。否則医男,您可以編寫spouts以從數(shù)據(jù)源讀取數(shù)據(jù)∧砻悖“ISpout”是實(shí)現(xiàn)spouts的核心接口镀梭,一些特定的接口是IRichSpout,BaseRichSpout踱启,KafkaSpout等报账。

Bolts:

Bolts是邏輯處理單元。Spouts將數(shù)據(jù)傳遞到Bolts和Bolts過程埠偿,并產(chǎn)生新的輸出流透罢。Bolts可以執(zhí)行過濾,聚合冠蒋,加入羽圃,與數(shù)據(jù)源和數(shù)據(jù)庫(kù)交互的操作。Bolts接收數(shù)據(jù)并發(fā)射到一個(gè)或多個(gè)Bolts抖剿。 “IBolt”是實(shí)現(xiàn)Bolts的核心接口朽寞。一些常見的接口是IRichBolt识窿,IBasicBolt等。

Apache Storm集群架構(gòu):

zookeeper_framework.jpg

Nimbus(主節(jié)點(diǎn)):

Nimbus是Storm集群的主節(jié)點(diǎn)愁憔。集群中的所有其他節(jié)點(diǎn)稱為工作節(jié)點(diǎn)腕扶。主節(jié)點(diǎn)負(fù)責(zé)在所有工作節(jié)點(diǎn)之間分發(fā)數(shù)據(jù),向工作節(jié)點(diǎn)分配任務(wù)和監(jiān)視故障吨掌。

Supervisor(工作節(jié)點(diǎn))

遵循指令的節(jié)點(diǎn)被稱為Supervisors半抱。Supervisor有多個(gè)工作進(jìn)程,它管理工作進(jìn)程以完成由nimbus分配的任務(wù)膜宋。

Worker process(工作進(jìn)程)

工作進(jìn)程將執(zhí)行與特定拓?fù)湎嚓P(guān)的任務(wù)窿侈。工作進(jìn)程不會(huì)自己運(yùn)行任務(wù),而是創(chuàng)建執(zhí)行器并要求他們執(zhí)行特定的任務(wù)秋茫。工作進(jìn)程將有多個(gè)執(zhí)行器史简。

Executor(執(zhí)行者)

執(zhí)行器只是工作進(jìn)程產(chǎn)生的單個(gè)線程。執(zhí)行器運(yùn)行一個(gè)或多個(gè)任務(wù)肛著,但僅用于特定的spout或bolt圆兵。

Task(任務(wù)):

任務(wù)執(zhí)行實(shí)際的數(shù)據(jù)處理。所以枢贿,它是一個(gè)spout或bolt殉农。

ZooKeeper framework(ZooKeeper框架)

Apache的ZooKeeper的是使用群集(節(jié)點(diǎn)組)自己和維護(hù)具有強(qiáng)大的同步技術(shù)共享數(shù)據(jù)之間進(jìn)行協(xié)調(diào)的服務(wù)。Nimbus是無狀態(tài)的局荚,所以它依賴于ZooKeeper來監(jiān)視工作節(jié)點(diǎn)的狀態(tài)超凳。ZooKeeper的幫助supervisor與nimbus交互。它負(fù)責(zé)維持nimbus耀态,supervisor的狀態(tài)轮傍。

Storm是無狀態(tài)的。但是它把狀態(tài)存儲(chǔ)在Apache ZooKeeper中首装。由于狀態(tài)在Apache ZooKeeper中可用创夜,故障的網(wǎng)絡(luò)可以重新啟動(dòng),并從它離開的地方工作簿盅。通常挥下,像monit這樣的服務(wù)監(jiān)視工具將監(jiān)視Nimbus,并在出現(xiàn)任何故障時(shí)重新啟動(dòng)它桨醋。

Apache stom的 工作流程:

  1. 最初棚瘟,nimbus將等待“Storm拓?fù)洹碧峤唤o它。
  2. 一旦提交拓?fù)湎沧睿鼘⑻幚硗負(fù)洳⑹占獔?zhí)行的所有任務(wù)和任務(wù)將被執(zhí)行的順序偎蘸。
  3. 然后,nimbus將任務(wù)均勻分配給所有可用的supervisors。
  4. 在特定的時(shí)間間隔迷雪,所有supervisor將向nimbus發(fā)送心跳以通知它們?nèi)匀贿\(yùn)行著限书。
  5. 當(dāng)supervisor終止并且不向心跳發(fā)送心跳時(shí),則nimbus將任務(wù)分配給另一個(gè)supervisor章咧。
  6. 當(dāng)nimbus本身終止時(shí)倦西,supervisor將在沒有任何問題的情況下對(duì)已經(jīng)分配的任務(wù)進(jìn)行工作。
  7. 一旦所有的任務(wù)都完成后赁严,supervisor將等待新的任務(wù)進(jìn)去扰柠。
  8. 同時(shí),終止nimbus將由服務(wù)監(jiān)控工具自動(dòng)重新啟動(dòng)疼约。
  9. 重新啟動(dòng)的網(wǎng)絡(luò)將從停止的地方繼續(xù)卤档。同樣,終止supervisor也可以自動(dòng)重新啟動(dòng)程剥。由于網(wǎng)絡(luò)管理程序和supervisor都可以自動(dòng)重新啟動(dòng)劝枣,并且兩者將像以前一樣繼續(xù),因此Storm保證至少處理所有任務(wù)一次织鲸。
  10. 一旦處理了所有拓?fù)涮蛱冢瑒t網(wǎng)絡(luò)管理器等待新的拓?fù)涞竭_(dá),并且類似地搂擦,管理器等待新的任務(wù)琢唾。

Storm集群中有兩種模式:

  1. 本地模式 -此模式用于開發(fā),測(cè)試和調(diào)試盾饮,因?yàn)樗遣榭此型負(fù)浣M件協(xié)同工作的最簡(jiǎn)單方法。在這種模式下懒熙,我們可以調(diào)整參數(shù)丘损,使我們能夠看到我們的拓?fù)淙绾卧诓煌腟torm配置環(huán)境中運(yùn)行。在本地模式下工扎,storm拓?fù)湓诒镜貦C(jī)器上在單個(gè)JVM中運(yùn)行徘钥。
  2. 生產(chǎn)模式 -在這種模式下,我們將拓?fù)涮峤坏焦ぷ鱏torm集群肢娘,該集群由許多進(jìn)程組成呈础,通常運(yùn)行在不同的機(jī)器上。如在storm的工作流中所討論的橱健,工作集群將無限地運(yùn)行而钞,直到它被關(guān)閉。

Windows環(huán)境下Apache Storm 啟動(dòng):

啟動(dòng)Apache zookeep

zkCli.cmd
zkServer.cmd

啟動(dòng)Apache Storm

storm.py nimbus
storm.py supervisor
storm.py ui
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拘荡,一起剝皮案震驚了整個(gè)濱河市臼节,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖网缝,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巨税,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡粉臊,警方通過查閱死者的電腦和手機(jī)草添,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扼仲,“玉大人远寸,你說我怎么就攤上這事∠耍” “怎么了而晒?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)阅畴。 經(jīng)常有香客問我倡怎,道長(zhǎng),這世上最難降的妖魔是什么贱枣? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任监署,我火速辦了婚禮,結(jié)果婚禮上纽哥,老公的妹妹穿的比我還像新娘钠乏。我一直安慰自己,他們只是感情好春塌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布晓避。 她就那樣靜靜地躺著,像睡著了一般只壳。 火紅的嫁衣襯著肌膚如雪俏拱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天吼句,我揣著相機(jī)與錄音锅必,去河邊找鬼。 笑死惕艳,一個(gè)胖子當(dāng)著我的面吹牛搞隐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播远搪,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼劣纲,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了终娃?” 一聲冷哼從身側(cè)響起味廊,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蒸甜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后余佛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柠新,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年辉巡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恨憎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡郊楣,死狀恐怖憔恳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情净蚤,我是刑警寧澤钥组,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站今瀑,受9級(jí)特大地震影響程梦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜橘荠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一屿附、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哥童,春花似錦挺份、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至朵你,卻和暖如春探赫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撬呢。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妆兑,地道東北人魂拦。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像搁嗓,于是被迫代替她去往敵國(guó)和親芯勘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容