JStorm學(xué)習(xí)筆記 - 基本概念

JStorm 是一個分布式實(shí)時計算引擎。JStorm 是一個類似Hadoop MapReduce的系統(tǒng)涂佃, 用戶按照指定的接口實(shí)現(xiàn)一個任務(wù),然后將這個任務(wù)遞交給JStorm系統(tǒng)蜈敢,JStorm將這個任務(wù)跑起來辜荠,并且按7 * 24小時運(yùn)行起來,一旦中間一個Worker 發(fā)生意外故障扶认, 調(diào)度器立即分配一個新的Worker替換這個失效的Worker侨拦。

因此殊橙,從應(yīng)用的角度辐宾,JStorm應(yīng)用是一種遵守某種編程規(guī)范的分布式應(yīng)用狱从。從系統(tǒng)角度, JStorm是一套類似MapReduce的調(diào)度系統(tǒng)叠纹。 從數(shù)據(jù)的角度季研,JStorm是一套基于流水線的消息處理機(jī)制。

Stream

在JStorm中有對于流stream的抽象誉察,流是一個不間斷的無界的連續(xù)tuple与涡,注意JStorm在建模事件流時,把流中的事件抽象為tuple即元組持偏,后面會解釋JStorm中如何使用tuple驼卖。

Spout/Bolt

JStorm認(rèn)為每個stream都有一個stream源,也就是原始元組的源頭鸿秆,所以它將這個源頭抽象為spout酌畜,spout可能是連接消息中間件(如MetaQ, Kafka卿叽, TBNotify等)桥胞,并不斷發(fā)出消息,也可能是從某個隊列中不斷讀取隊列元素并裝配為tuple發(fā)射考婴。

有了源頭即spout也就是有了stream贩虾,那么該如何處理stream內(nèi)的tuple呢,同樣的思想JStorm將tuple的中間處理過程抽象為Bolt沥阱,bolt可以消費(fèi)任意數(shù)量的輸入流缎罢,只要將流方向?qū)蛟揵olt,同時它也可以發(fā)送新的流給其他bolt使用考杉,這樣一來屁使,只要打開特定的spout(管口)再將spout中流出的tuple導(dǎo)向特定的bolt,然后bolt對導(dǎo)入的流做處理后再導(dǎo)向其他bolt或者目的地奔则。

我們可以認(rèn)為spout就是一個一個的水龍頭蛮寂,并且每個水龍頭里流出的水是不同的,我們想拿到哪種水就擰開哪個水龍頭易茬,然后使用管道將水龍頭的水導(dǎo)向到一個水處理器(bolt)酬蹋,水處理器處理后再使用管道導(dǎo)向另一個處理器或者存入容器中。

Tuple

JStorm將流中數(shù)據(jù)抽象為tuple抽莱,一個tuple就是一個值列表value list范抓,list中的每個value都有一個name,并且該value可以是基本類型食铐,字符類型匕垫,字節(jié)數(shù)組等,當(dāng)然也可以是其他可序列化的類型虐呻。拓?fù)涞拿總€節(jié)點(diǎn)都要說明它所發(fā)射出的元組的字段的name象泵,其他節(jié)點(diǎn)只需要訂閱該name就可以接收處理寞秃。

Topology

對應(yīng)上文的介紹,我們可以很容易的理解這幅圖偶惠,這是一張有向無環(huán)圖春寿,JStorm將這個圖抽象為Topology即拓?fù)洌ǖ拇_,拓?fù)浣Y(jié)構(gòu)是有向無環(huán)的)忽孽,拓?fù)涫荍storm中最高層次的一個抽象概念绑改,它可以被提交到Jstorm集群執(zhí)行,一個拓?fù)渚褪且粋€數(shù)據(jù)流轉(zhuǎn)換圖兄一,圖中每個節(jié)點(diǎn)是一個spout或者bolt厘线,圖中的邊表示bolt訂閱了哪些流,當(dāng)spout或者bolt發(fā)送元組到流時出革,它就發(fā)送元組到每個訂閱了該流的bolt(這就意味著不需要我們手工拉管道皆的,只要預(yù)先訂閱,spout就會將流發(fā)到適當(dāng)bolt上)蹋盆。 插個位置說下Jstorm的topology實(shí)現(xiàn)费薄,為了做實(shí)時計算,我們需要設(shè)計一個拓?fù)鋱D栖雾,并實(shí)現(xiàn)其中的Bolt處理細(xì)節(jié)楞抡,JStorm中拓?fù)涠x僅僅是一些Thrift結(jié)構(gòu)體,這樣一來我們就可以使用其他語言來創(chuàng)建和提交拓?fù)洹?/p>

Worker/Task

Worker和Task是JStorm中任務(wù)的執(zhí)行單元析藕, 一個worker表示一個進(jìn)程召廷,一個task表示一個線程, 一個worker可以運(yùn)行多個task账胧。

backtype.storm.Config.setNumWorkers(int workers)是設(shè)置worker數(shù)目竞慢,表示這個Topology運(yùn)行在多個個jvm(一個jvm是一個進(jìn)程,即一個worker)治泥;backtype.storm.topology.TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)和setBolt(String id, IRichBolt bolt,Number parallelism_hint)中的參數(shù) parallelism_hint表示這個spout或bolt有多少個實(shí)例筹煮,即對應(yīng)多少個線程執(zhí)行,一個實(shí)例對應(yīng)一個線程居夹。

參考資料

JStorm Basic Conception

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末败潦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子准脂,更是在濱河造成了極大的恐慌劫扒,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狸膏,死亡現(xiàn)場離奇詭異沟饥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門贤旷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來广料,“玉大人,你說我怎么就攤上這事遮晚。” “怎么了拦止?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵县遣,是天一觀的道長。 經(jīng)常有香客問我汹族,道長萧求,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任顶瞒,我火速辦了婚禮夸政,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘榴徐。我一直安慰自己守问,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布坑资。 她就那樣靜靜地躺著耗帕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袱贮。 梳的紋絲不亂的頭發(fā)上仿便,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機(jī)與錄音攒巍,去河邊找鬼嗽仪。 笑死,一個胖子當(dāng)著我的面吹牛柒莉,可吹牛的內(nèi)容都是我干的闻坚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兢孝,長吁一口氣:“原來是場噩夢啊……” “哼鲤氢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起西潘,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卷玉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后喷市,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體相种,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了寝并。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箫措。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖衬潦,靈堂內(nèi)的尸體忽然破棺而出斤蔓,到底是詐尸還是另有隱情,我是刑警寧澤镀岛,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布弦牡,位于F島的核電站,受9級特大地震影響漂羊,放射性物質(zhì)發(fā)生泄漏驾锰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一走越、第九天 我趴在偏房一處隱蔽的房頂上張望椭豫。 院中可真熱鬧,春花似錦旨指、人聲如沸赏酥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽今缚。三九已至,卻和暖如春低淡,著一層夾襖步出監(jiān)牢的瞬間姓言,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工蔗蹋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留何荚,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓猪杭,卻偏偏與公主長得像餐塘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子皂吮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

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

  • 這是一個JStorm使用教程戒傻,不包含環(huán)境搭建教程,直接在公司現(xiàn)有集群上跑任務(wù)蜂筹,關(guān)于JStorm集群環(huán)境搭建需纳,后續(xù)研...
    Coselding閱讀 6,335評論 1 9
  • 本文主要介紹storm中的基本概念,從基礎(chǔ)上了解strom的體系結(jié)構(gòu)艺挪,便于后續(xù)編程過程中作為基礎(chǔ)指導(dǎo)不翩。主要的概念包...
    看山遠(yuǎn)兮閱讀 1,525評論 0 9
  • Storm 系統(tǒng)中包含以下幾個基本概念:拓?fù)洌═opologies)流(Streams)數(shù)據(jù)源(Spouts)數(shù)據(jù)...
    發(fā)光的魚閱讀 826評論 0 0
  • Storm入門系列之一:storm核心概念及特性 本文的將介紹一些 storm 入門的基礎(chǔ)知識,包括 storm ...
    zhaif閱讀 3,111評論 0 17
  • 動車一過渭南,就不斷進(jìn)入山區(qū)口蝠,進(jìn)入第一個山洞的時候讓我想到小說《擺渡人》里的情景器钟,車剛進(jìn)入山洞女主就徹底改變她...
    念玥思慕閱讀 156評論 2 2