在線實(shí)時(shí)處理

實(shí)時(shí)性比較

在線實(shí)時(shí)處理 > 消息機(jī)制(增量處理) > 全量批處理

Storm

首先來(lái)理解Storm體系中的一些重要概念和含義奕枝,包括元組(Tuple)、數(shù)據(jù)流(Stream)猜谚、Spout败砂、Bolt[插圖]、流量分組(Streaming Group)和拓?fù)浣Y(jié)構(gòu)(Topology)魏铅。

元組:這是Storm中使用的一種數(shù)據(jù)結(jié)構(gòu)昌犹,包含了若干個(gè)鍵–值對(duì)(Key-Value Pair)的列表,這里的鍵–值對(duì)的定義和第3章散列表中所提到的類(lèi)似览芳。元組以一種分布式的方式并行地在Storm集群上進(jìn)行創(chuàng)建和處理斜姥。

數(shù)據(jù)流:數(shù)據(jù)流是Storm中非常重要的一個(gè)抽象概念,是一個(gè)沒(méi)有邊界的元組序列沧竟,由Spout和Bolt進(jìn)行發(fā)送和轉(zhuǎn)發(fā)铸敏。對(duì)數(shù)據(jù)流的定義主要就是對(duì)其中的元組進(jìn)行定義,此外還需要為其分配唯一的標(biāo)識(shí)ID悟泵。

Spout:英文單詞Spout翻譯過(guò)來(lái)就是水龍頭的意思杈笔,顧名思義它是提供數(shù)據(jù)源的,是一個(gè)計(jì)算任務(wù)中數(shù)據(jù)的生產(chǎn)者糕非。Spout可以從數(shù)據(jù)庫(kù)或文件系統(tǒng)等加載數(shù)據(jù)蒙具,然后作為入口,向由若干節(jié)點(diǎn)組成的拓?fù)浣Y(jié)構(gòu)中發(fā)送數(shù)據(jù)流峰弹。每個(gè)Spout都可以發(fā)送多個(gè)數(shù)據(jù)流店量,同時(shí)也可以按照送達(dá)的可靠性劃分等級(jí)芜果。

Bolt:可以將其理解為運(yùn)算或函數(shù)鞠呈,用于將一個(gè)或多個(gè)數(shù)據(jù)流作為輸入,實(shí)施加工處理后右钾,再進(jìn)行新數(shù)據(jù)流的輸出蚁吝。Bolt可以接受Spout或其他Bolt發(fā)送的數(shù)據(jù),并據(jù)此建立復(fù)雜的流轉(zhuǎn)網(wǎng)絡(luò)舀射,形成最終的拓?fù)浣Y(jié)構(gòu)窘茁,完成對(duì)整條流水線數(shù)據(jù)的操作。Storm計(jì)算中的邏輯幾乎都在Bolt中完成脆烟,例如過(guò)濾山林、分類(lèi)、聚集邢羔、計(jì)算驼抹、查詢數(shù)據(jù)庫(kù)等。

image.png

從架構(gòu)的角度來(lái)理解拜鹤,Storm的集群主要包含兩種節(jié)點(diǎn):主節(jié)點(diǎn)Nimbus和工作節(jié)點(diǎn)Supervisor框冀,它們都是無(wú)狀態(tài)的,可以從失敗中快速恢復(fù)敏簿,健壯性較好明也。Nimbus負(fù)責(zé)管理宣虾、協(xié)調(diào)和監(jiān)控在集群上運(yùn)行的拓?fù)浣Y(jié)構(gòu),包括拓?fù)涞陌l(fā)布温数、任務(wù)指派绣硝、出錯(cuò)后的恢復(fù)等。從這點(diǎn)上看撑刺,其功能和Hadoop集群中的工作跟蹤節(jié)點(diǎn)(Job Tracker)非常像域那。Supervisor在接收到Nimbus分配的任務(wù)之后,會(huì)啟動(dòng)名為Worker的進(jìn)程來(lái)完成工作猜煮。每個(gè)Worker負(fù)責(zé)一個(gè)拓?fù)浣Y(jié)構(gòu)次员,而一個(gè)Supervisor可以啟動(dòng)多個(gè)Worker,并負(fù)責(zé)管理它們王带,類(lèi)似Hadoop中任務(wù)跟蹤節(jié)點(diǎn)(Task Tracker)的角色淑蔚。此外,Storm同樣是利用ZooKeeper來(lái)管理節(jié)點(diǎn)的集群的愕撰,例如任務(wù)的分配情況刹衫、各個(gè)Worker的狀態(tài)、Supervisor之間的Nimbus的拓?fù)涠攘康雀阏酢imbus和Supervisor節(jié)點(diǎn)之間的通信也是結(jié)合ZooKeeper的狀態(tài)變更通知和監(jiān)控通知來(lái)處理的带迟。

spark streaming

Spark的Streaming(http://spark.apache.org/streaming/),這是一個(gè)針對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行快速流式處理的系統(tǒng)囱桨,基本原理是按照很小的時(shí)間片段對(duì)流式數(shù)據(jù)進(jìn)行切分仓犬,然后以類(lèi)似批處理的方式來(lái)消化這一小部分的數(shù)據(jù)。Spark Streaming會(huì)把每塊數(shù)據(jù)作為一個(gè)RDD舍肠,每個(gè)塊都會(huì)生成一個(gè)Spark的任務(wù)來(lái)進(jìn)行處理搀继,最終結(jié)果也會(huì)返回多塊。由于使用了這種設(shè)計(jì)模式翠语,因此Spark Streaming可以同時(shí)兼容批量和實(shí)時(shí)數(shù)據(jù)的處理邏輯叽躯,以便于歷史數(shù)據(jù)的融合。Spark Streaming的編程方式和Spark很類(lèi)似肌括,它通過(guò)DStream這種RDD序列來(lái)表示數(shù)據(jù)流并進(jìn)行運(yùn)算点骑。

Spark Streaming和Storm的相似點(diǎn)在于,它們的處理模式都像流水線作業(yè)一樣谍夭,故稱(chēng)為流式計(jì)算黑滴。不過(guò)也存在不同之處。Spark Streaming是處理某個(gè)時(shí)間段窗口內(nèi)的事件慧库,而Storm處理的是每次傳入的單個(gè)事件跷跪,理論上Spark Streaming的延時(shí)性要比Storm略高。不過(guò)RDD的機(jī)制賦予了Spark Streaming更高的靈活性和容錯(cuò)性齐板。在Storm中吵瞻,每個(gè)單獨(dú)的記錄通過(guò)系統(tǒng)時(shí)必須被跟蹤葛菇,這樣Storm才能夠保證每個(gè)記錄至少被處理一次。但是在從錯(cuò)誤中恢復(fù)過(guò)來(lái)的時(shí)候Storm允許出現(xiàn)重復(fù)記錄橡羞,這就意味著某些狀態(tài)可能被錯(cuò)誤地更新多次眯停。而Spark Streaming只需要在批量級(jí)別進(jìn)行跟蹤處理,即便一個(gè)節(jié)點(diǎn)發(fā)生故障卿泽,也可以有效地保證每個(gè)時(shí)間窗內(nèi)的小量數(shù)據(jù)被完整地處理一次莺债。

《Hadoop實(shí)戰(zhàn)》作者:Chuck Lam譯者:韓冀中不錯(cuò)的Hadoop入門(mén)圖書(shū),介紹了基本概念签夭、系統(tǒng)架構(gòu)齐邦、安裝和使用。包括本章介紹的MapReduce計(jì)算框架第租。對(duì)Pig和Hive也進(jìn)行了簡(jiǎn)單的介紹措拇。
《Hadoop實(shí)戰(zhàn)(第2版)》作者:陸嘉恒本書(shū)除了對(duì)Hadoop有了詳細(xì)的介紹,還涵蓋了不少Hadoop生態(tài)中的其他內(nèi)容慎宾,包括HBase丐吓、Hive、Pig趟据、Mahout券犁,以及分布式協(xié)同系統(tǒng)Zookeeper,知識(shí)點(diǎn)覆蓋比較全面汹碱。
《Spark大數(shù)據(jù)處理:技術(shù)粘衬、應(yīng)用與性能優(yōu)化》作者:高彥杰作者結(jié)合自己的實(shí)踐經(jīng)驗(yàn)和對(duì)Spark源代碼的研究,從技術(shù)層面講解了Spark的體系結(jié)構(gòu)比被、安裝與部署色难、開(kāi)發(fā)環(huán)境搭建泼舱、計(jì)算模型等內(nèi)容等缀。然后從應(yīng)用的角度講解了一些簡(jiǎn)單的、有代表性的案例及性能優(yōu)化娇昙。
《大數(shù)據(jù)Spark企業(yè)級(jí)實(shí)戰(zhàn)》作者:王家林對(duì)Spark進(jìn)行了比較全面和詳細(xì)的介紹尺迂,包括對(duì)源碼的一些分析,比較適合高級(jí)用戶冒掌。
《Hive編程指南》作者:Edward Capriolo噪裕,Dean Wampler,Jason Rutherglen譯者:曹坤介紹了Hive的背景股毫、工作模型和HiveQL語(yǔ)法等膳音。對(duì)于各種類(lèi)SQL的語(yǔ)法進(jìn)行了較為全面的解釋?zhuān)且槐竞芎玫娜粘⒖际謨?cè)。
《Pig編程指南》作者:Alan Gates譯者:曹坤為入門(mén)者講述了Apache Pig的基礎(chǔ)知識(shí)铃诬,同時(shí)也向有一定使用經(jīng)驗(yàn)的高級(jí)用戶介紹了更加綜合全面的Pig重要特性祭陷,如Pig Latin腳本語(yǔ)言苍凛、控制臺(tái)shell交互命令,等等兵志。
《開(kāi)源大數(shù)據(jù)分析引擎Impala實(shí)戰(zhàn)》作者:賈傳青
介紹了開(kāi)源大數(shù)據(jù)分析引擎Impala的背景醇蝴、安裝與配置、架構(gòu)想罕、性能優(yōu)化等悠栓,以及一些相關(guān)的應(yīng)用設(shè)計(jì)原則和應(yīng)用案例。
《ActiveMQ in Action》作者:Bruce Snyder按价,Rob Davies惭适,Dejan BosanacActiveMQ的入門(mén)書(shū)籍,包含原理和編程范例楼镐。同時(shí)也介紹了JMS的理念和設(shè)計(jì)腥沽。
《Apache Kafka》作者:Nishant Garg本書(shū)介紹了如何創(chuàng)建Kafka集群,并通過(guò)實(shí)例展示如何開(kāi)發(fā)定制化的消息生產(chǎn)者和消費(fèi)者鸠蚪。
《Getting Started with Storm》作者:Jonathan Leibiusky今阳,Gabriel Eisbrucb,Dario Simonassi從零開(kāi)始學(xué)習(xí)Storm的理念茅信、架構(gòu)和原理盾舌,適合初學(xué)者≌壕ǎ《Storm分布式實(shí)時(shí)計(jì)算模式》作者:P.Taylor Goetz妖谴,Brian O'Neil譯者:董昭融合了作者的Storm實(shí)戰(zhàn)經(jīng)驗(yàn),通過(guò)示例講解使用Storm進(jìn)行分布式實(shí)時(shí)計(jì)算的核心概念及應(yīng)用酌摇,是一本不錯(cuò)的實(shí)踐指南膝舅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市窑多,隨后出現(xiàn)的幾起案子仍稀,更是在濱河造成了極大的恐慌,老刑警劉巖埂息,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件技潘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡千康,警方通過(guò)查閱死者的電腦和手機(jī)享幽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拾弃,“玉大人值桩,你說(shuō)我怎么就攤上這事『来唬” “怎么了奔坟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵斯入,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蛀蜜,道長(zhǎng)刻两,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任滴某,我火速辦了婚禮磅摹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霎奢。我一直安慰自己户誓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布幕侠。 她就那樣靜靜地躺著帝美,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晤硕。 梳的紋絲不亂的頭發(fā)上悼潭,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音舞箍,去河邊找鬼舰褪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛疏橄,可吹牛的內(nèi)容都是我干的占拍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼捎迫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晃酒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起窄绒,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贝次,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后颗祝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體浊闪,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年螺戳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片折汞。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倔幼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爽待,到底是詐尸還是另有隱情损同,我是刑警寧澤翩腐,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站膏燃,受9級(jí)特大地震影響茂卦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜组哩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一等龙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伶贰,春花似錦蛛砰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至琅翻,卻和暖如春位仁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背方椎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工障癌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辩尊。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓涛浙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親摄欲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轿亮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355