本書全面介紹Storm的架構(gòu)、原理、核心概念、操作和數(shù)據(jù)流模型;6個(gè)不同領(lǐng)域的經(jīng)典案例完整呈現(xiàn)大型數(shù)據(jù)應(yīng)用系統(tǒng)的設(shè)計(jì);系統(tǒng)總結(jié)了Storm常見(jiàn)運(yùn)維故障的處理以及常用的技巧和最佳實(shí)踐。
國(guó)內(nèi)資深大數(shù)據(jù)專家根據(jù)Storm最新技術(shù)撰寫,基于實(shí)際生產(chǎn)環(huán)境,從實(shí)戰(zhàn)、運(yùn)維和調(diào)優(yōu)3個(gè)維度對(duì)Storm進(jìn)行了詳細(xì)的講解
全面介紹Storm的架構(gòu)、原理、核心概念、操作和數(shù)據(jù)流模型;
6個(gè)不同領(lǐng)域的經(jīng)典案例完整呈現(xiàn)大型數(shù)據(jù)應(yīng)用系統(tǒng)的設(shè)計(jì);
系統(tǒng)總結(jié)了Storm常見(jiàn)運(yùn)維故障的處理以及常用的技巧和最佳實(shí)踐
“Storm大大簡(jiǎn)化了面向龐大規(guī)模數(shù)據(jù)流的處理機(jī)制,從而在實(shí)時(shí)處理領(lǐng)域扮演著Hadoop之于批量處理領(lǐng)域的重要角色”——這是Storm官方項(xiàng)目所說(shuō)的一句話,可見(jiàn)其在實(shí)時(shí)數(shù)據(jù)流處理領(lǐng)域的優(yōu)勢(shì)。為了達(dá)成上述目標(biāo),Storm在設(shè)計(jì)思路中充分考慮到大規(guī)模可擴(kuò)展能力、利用一套“故障快速、自動(dòng)重啟”方案為實(shí)時(shí)處理提供容錯(cuò)性支持,從而有力地保證了每個(gè)元組都能切實(shí)得到處理。Storm是一套極具可擴(kuò)展能力、快速驚人且具備容錯(cuò)能力的開(kāi)源分布計(jì)算系統(tǒng),其高度專注于流處理領(lǐng)域。Storm在事件處理與增量計(jì)算方面表現(xiàn)突出,能夠以實(shí)時(shí)方式根據(jù)不斷變化的參數(shù)對(duì)數(shù)據(jù)流進(jìn)行處理。盡管Storm同時(shí)提供原語(yǔ)以實(shí)現(xiàn)通用性分布RPC并在理論上能夠被用于任何分布式計(jì)算任務(wù)的組成部分,但其最為根本的優(yōu)勢(shì)仍然表現(xiàn)在事件流處理方面。
《Storm企業(yè)級(jí)應(yīng)用:實(shí)戰(zhàn)、運(yùn)維和調(diào)優(yōu)》強(qiáng)調(diào)Storm在企業(yè)的實(shí)際應(yīng)用,旨在幫助企業(yè)切實(shí)解決實(shí)時(shí)計(jì)算技術(shù)如何落地的問(wèn)題。三位作者都是奮戰(zhàn)在中國(guó)大數(shù)據(jù)技術(shù)一線的實(shí)戰(zhàn)派專家,本書是他們實(shí)踐經(jīng)驗(yàn)的結(jié)晶。
《Storm企業(yè)級(jí)應(yīng)用:實(shí)戰(zhàn)、運(yùn)維和調(diào)優(yōu)》內(nèi)容在三個(gè)維度上具有重要特色:
理論維度,深入分析了Storm的架構(gòu)設(shè)計(jì)、基本概念和原理。
實(shí)戰(zhàn)維度,通過(guò)6個(gè)典型的、不同行業(yè)的應(yīng)用案例詳細(xì)講解了如何使用Storm設(shè)計(jì)大型的數(shù)據(jù)應(yīng)用系統(tǒng)。
技巧維度,從Storm的常見(jiàn)故障及解決方法、使用技巧和最佳實(shí)踐進(jìn)行介紹。
為什么寫作本書大數(shù)據(jù)是繼云計(jì)算、物聯(lián)網(wǎng)之后IT行業(yè)又一大顛覆性的技術(shù)變革。之前大數(shù)據(jù)在互聯(lián)網(wǎng)、軍事、金融、通信和物理學(xué)等領(lǐng)域已有不少落地案例,卻因?yàn)榻陙?lái)Hadoop技術(shù)的快速發(fā)展而引起業(yè)界廣泛關(guān)注。可以說(shuō),Hadoop目前是大數(shù)據(jù)處理的關(guān)鍵技術(shù),也是迄今為止,最成熟、應(yīng)用最廣泛的技術(shù)。但是Hadoop生態(tài)圈下面的數(shù)據(jù)處理幾乎都是在離線狀態(tài)下進(jìn)行的,離線處理海量數(shù)據(jù)是比較耗時(shí)、耗力的,Storm的實(shí)時(shí)處理技術(shù)應(yīng)運(yùn)而生。正如曾經(jīng)開(kāi)發(fā)Storm的一位主要工程師所談到的,Storm可以方便地在一個(gè)計(jì)算機(jī)集群中編寫與擴(kuò)展復(fù)雜的實(shí)時(shí)計(jì)算,Storm用于實(shí)時(shí)處理,就好比Hadoop用于批處理。Storm保證每個(gè)消息都會(huì)得到處理,而且它很快——在一個(gè)小集群中,每秒可以處理數(shù)以百萬(wàn)計(jì)的消息,更棒的是可以使用任意編程語(yǔ)言來(lái)開(kāi)發(fā)。因此在節(jié)省時(shí)間、人力的情況下,Storm的優(yōu)勢(shì)就充分體現(xiàn)了。
現(xiàn)在有關(guān)Storm的中文學(xué)習(xí)資料非常少,這給不少研發(fā)人員帶來(lái)了很大的難度。盡管現(xiàn)在市面上已經(jīng)有幾本Storm的中文書籍,但是,這些書籍多是翻譯過(guò)來(lái)的,語(yǔ)言組織不符合國(guó)人的習(xí)慣,并且實(shí)例講解部分也不能切合本土國(guó)情。還有,這些書分別側(cè)重了某一個(gè)方面,如理論、實(shí)戰(zhàn)、運(yùn)維等,還沒(méi)有一本書能夠非常系統(tǒng)地闡述Storm框架。本書正是為了解決以上的各種問(wèn)題而撰寫的,這也是國(guó)內(nèi)第一本系統(tǒng)講解Storm理論、實(shí)戰(zhàn)、運(yùn)維和調(diào)優(yōu)的書籍。
寫作本身還有一個(gè)重要因素——讓大家少走彎路。這一點(diǎn)筆者感同身受,在使用Storm之前,開(kāi)始調(diào)研、搜集、了解Storm是比較痛苦的過(guò)程,由于網(wǎng)上的資料參差不齊,也沒(méi)有比較完全系統(tǒng)的實(shí)戰(zhàn)類書籍,因此盡管自己文筆很差,也想把自己了解的,以及實(shí)戰(zhàn)過(guò)的東西,總結(jié)出來(lái)供大家參考,幫大家少走些彎路,讓Storm為我們多做點(diǎn)事情。
本書以Storm 0.8.2為基礎(chǔ),不僅深入探討了Storm的原理架構(gòu)和數(shù)據(jù)模型,更重要的是通過(guò)實(shí)戰(zhàn)案例教給讀者如何運(yùn)用Storm框架來(lái)設(shè)計(jì)、搭建以及實(shí)時(shí)計(jì)算海量數(shù)據(jù),同時(shí)結(jié)合生產(chǎn)案例剖析Storm的運(yùn)維和性能調(diào)優(yōu)的技巧。
讀者對(duì)象本書適合以下讀者閱讀:
(1)云計(jì)算、大數(shù)據(jù)處理技術(shù)和分布式計(jì)算處理數(shù)據(jù)愛(ài)好者“大數(shù)據(jù)”無(wú)疑是繼“云計(jì)算”之后IT業(yè)界上最熱的詞匯。而云計(jì)算、大數(shù)據(jù)、實(shí)時(shí)處理數(shù)據(jù)本身存在交集,現(xiàn)在不少涉獵大數(shù)據(jù)的,以及要求數(shù)據(jù)時(shí)效性的公司已經(jīng)開(kāi)始深入了解Storm,本書講解的Storm是實(shí)時(shí)處理數(shù)據(jù)的一種工具。本書可以幫助這部分讀者快速而全面地了解Storm的原理、架構(gòu)、使用場(chǎng)景和細(xì)節(jié)知識(shí)點(diǎn),理解Storm在云計(jì)算、大數(shù)據(jù)時(shí)代處理數(shù)據(jù)的重要性。
(2)對(duì)實(shí)時(shí)處理數(shù)據(jù)感興趣的開(kāi)發(fā)人員Hadoop技術(shù)在近幾年非常熱,已經(jīng)是大數(shù)據(jù)處理的關(guān)鍵技術(shù),而Storm作為Hadoop生態(tài)系統(tǒng)不足之處的補(bǔ)充者,已經(jīng)被越來(lái)越多的公司用來(lái)滿足數(shù)據(jù)實(shí)時(shí)處理的需求。本書可以幫助這部分讀者詳細(xì)了解Storm與Hadoop之間的不同之處,涉及Storm的基本概念、核心知識(shí)點(diǎn)和高級(jí)特性,并且結(jié)合實(shí)戰(zhàn)案例講解,使讀者可以快速掌握Storm的使用。
(3)開(kāi)源軟件愛(ài)好者Storm作為Twitter開(kāi)源的項(xiàng)目,其實(shí)現(xiàn)過(guò)程中吸收了很多開(kāi)源領(lǐng)域的優(yōu)秀思想,值得我們深入研究和學(xué)習(xí)。本書在講解過(guò)程中剖析了不少Storm的源代碼,可以幫助該部分讀者了解和掌握Storm框架源代碼的設(shè)計(jì)方法和技巧。
(4)對(duì)Clojure語(yǔ)言編程感興趣的開(kāi)發(fā)人員Storm是由BackType開(kāi)發(fā)的實(shí)時(shí)處理系統(tǒng),基本是用Clojure寫的。因此了解Clojure語(yǔ)言對(duì)于快速掌握Storm有很大的幫助,同時(shí)如果對(duì)Clojure語(yǔ)言感興趣,也可以借助Storm進(jìn)行學(xué)習(xí)。
如何閱讀本書本書共11章,分為三篇。
基礎(chǔ)篇(第1~3章),介紹了Storm背景、基本原理、安裝部署、核心概念和數(shù)據(jù)流模型。
實(shí)戰(zhàn)篇(第4~9章),通過(guò)6個(gè)典型的應(yīng)用案例和代碼示例,結(jié)合實(shí)踐技巧和理論知識(shí),深入講解如何使用Storm設(shè)計(jì)大型數(shù)據(jù)應(yīng)用系統(tǒng)。
技巧篇(第10~11章),重點(diǎn)介紹了Storm的高級(jí)特性、運(yùn)維監(jiān)控和性能調(diào)優(yōu)等,并結(jié)合生產(chǎn)系統(tǒng)的性能優(yōu)化、運(yùn)維經(jīng)驗(yàn)和使用技巧等方面進(jìn)行講解,旨在提升讀者的實(shí)際操作經(jīng)驗(yàn)。
如果你是一名具備一定的Storm基礎(chǔ)知識(shí)和使用經(jīng)驗(yàn)的用戶,那么可以直接閱讀后兩篇。實(shí)戰(zhàn)篇側(cè)重案例實(shí)戰(zhàn),技巧篇側(cè)重技巧性能,請(qǐng)讀者自行選擇閱讀。但是,如果你是一名初學(xué)者,請(qǐng)一定從第1章的基礎(chǔ)理論知識(shí)開(kāi)始學(xué)習(xí)。本書所有章節(jié)的源碼都托管在Github上。
勘誤和支持由于筆者的水平有限,編寫時(shí)間倉(cāng)促,書中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正。你可以將書中的錯(cuò)誤發(fā)布在站點(diǎn)頁(yè)面留言中,同時(shí)如果你遇到任何問(wèn)題,也可以訪問(wèn)該頁(yè)面,我們將盡量在線上為讀者提供最滿意的解答。
致謝首先要感謝Twitter公司將Storm開(kāi)源,感謝其麾下的BackType團(tuán)隊(duì)成員對(duì)開(kāi)源軟件和開(kāi)源社區(qū)做出的巨大貢獻(xiàn)。
感謝一直以來(lái)幫助過(guò)我們的眾多開(kāi)源社區(qū),這樣的平臺(tái)讓我們認(rèn)識(shí)了很多圈子里的同行,使我從技術(shù)和思想的碰撞中受益匪淺。
感謝對(duì)我們有過(guò)幫助的Nathan Marz、徐明明、向磊、趙修湘、史東杰、廖旻可、王成祥、何定巍、盧億雷等人。
感謝普開(kāi)第一期大數(shù)據(jù)就業(yè)班的所有同學(xué),他們的大力支持和關(guān)心讓我們倍感欣慰和鼓舞。
感謝機(jī)械工業(yè)出版社華章公司的編輯楊福川和姜影,在這一年多的時(shí)間中始終支持我們的寫作,他們的鼓勵(lì)和幫助引導(dǎo)我們能順利完成本書。
最后感謝我們的爸爸、媽媽、爺爺、奶奶,感謝他們的養(yǎng)育之恩,并時(shí)時(shí)刻刻為我們灌輸著信心和力量!
謹(jǐn)以此書獻(xiàn)給我們最親愛(ài)的家人,以及眾多熱愛(ài)Storm的朋友們!
馬延輝,資深Hadoop技術(shù)專家,曾就職于淘寶、Answers。com、暴風(fēng)等互聯(lián)網(wǎng)公司,從事Hadoop相關(guān)的研發(fā)和運(yùn)維工作,對(duì)大數(shù)據(jù)技術(shù)的企業(yè)級(jí)落地、研發(fā)、運(yùn)維和管理方面有著深刻理解和豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。開(kāi)源HBase監(jiān)控工具Ella作者。在國(guó)內(nèi)Hadoop社區(qū)內(nèi)非常活躍,經(jīng)常在各種會(huì)議和沙龍上做技術(shù)分享,深受歡迎。現(xiàn)在致力于大數(shù)據(jù)技術(shù)在傳統(tǒng)行業(yè)的落地,以及大數(shù)據(jù)技術(shù)的普及和推廣。著有暢銷書《HBase企業(yè)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》,HBase領(lǐng)域公認(rèn)最有價(jià)值的著作之一。
陳書美,高級(jí)數(shù)據(jù)分析工程師,對(duì)Storm實(shí)時(shí)數(shù)據(jù)計(jì)算、Kafka消息系統(tǒng)分析有深入的研究和豐富的實(shí)踐經(jīng)驗(yàn),并對(duì)HDFS、MapReduce、Hive、HBase等Hadoop生態(tài)系統(tǒng)內(nèi)的技術(shù)有系統(tǒng)且深刻的了解。曾就職于暴風(fēng)影音,負(fù)責(zé)大數(shù)據(jù)應(yīng)用等開(kāi)發(fā)工作;目前就職于百度,從事數(shù)據(jù)分析工作。
雷葆華,武漢綠色網(wǎng)絡(luò)信息服務(wù)有限公司副總經(jīng)理,負(fù)責(zé)公司大數(shù)據(jù)、SDN/NFV等新產(chǎn)品的研發(fā)工作。業(yè)界知名的云計(jì)算專家,中國(guó)電子學(xué)會(huì)云計(jì)算專委會(huì)委員。創(chuàng)業(yè)之前曾任中國(guó)電信北京研究院云計(jì)算產(chǎn)品線總監(jiān),是中國(guó)電信云計(jì)算工作主要發(fā)起者和推動(dòng)者之一,在CDN、P2P、IDC等方面都有深入研究。提交專利28項(xiàng),已授權(quán)專利8項(xiàng),發(fā)表多篇有影響力的論文和文章,多次獲得部級(jí)科技進(jìn)步獎(jiǎng)勵(lì)。
著有《云計(jì)算解碼》、《CDN技術(shù)詳解》、《SDN核心技術(shù)剖析和實(shí)戰(zhàn)指南》等多部暢銷著作并獲得多個(gè)獎(jiǎng)項(xiàng)。
前言
基礎(chǔ)篇
第1章 認(rèn)識(shí)Storm
1.1 什么是實(shí)時(shí)流計(jì)算
1.1.1 實(shí)時(shí)流計(jì)算背景
1.1.2 實(shí)時(shí)計(jì)算應(yīng)用場(chǎng)景
1.1.3 實(shí)時(shí)計(jì)算處理流程
1.1.4 實(shí)時(shí)計(jì)算框架
1.2 Storm是什么
1.2.1 Storm出現(xiàn)的背景
1.2.2 Storm簡(jiǎn)介
1.2.3 Storm的設(shè)計(jì)思想
1.2.4 Storm與Hadoop的角色和組件比較
1.3 Storm核心組件
1.3.1 主節(jié)點(diǎn)Nimbus
1.3.2 工作節(jié)點(diǎn)Supervisor
1.3.3 協(xié)調(diào)服務(wù)組件ZooKeeper
1.3.4 其他核心組件
1.4 Storm的特性
1.5 Storm的功能
1.6 本章小結(jié)
第2章 開(kāi)始使用Storm
2.1 環(huán)境準(zhǔn)備
2.1.1 系統(tǒng)配置
2.1.2 安裝ZooKeeper集群
2.2 啟動(dòng)模式
2.2.1 本地模式
2.2.2 分布式模式
2.3 安裝部署Storm集群
2.3.1 安裝Storm依賴庫(kù)
2.3.2 安裝Storm集群
2.3.3 啟動(dòng)Storm集群
2.3.4 停止Storm集群
2.4 創(chuàng)建Topology并向集群提交任務(wù)
2.4.1 創(chuàng)建Topology
2.4.2 向集群提交任務(wù)
2.5 本章小結(jié)
第3章 核心概念和數(shù)據(jù)流模型
3.1 Tuple元組
3.1.1 Tuple描述
3.1.2 Tuple的生命周期
3.2 Spout數(shù)據(jù)源
3.2.1 Spout介紹
3.2.2 Spout實(shí)例
3.3 Bolt消息處理者
3.3.1 Bolt介紹
3.3.2 Bolt實(shí)例
3.4 Topology拓?fù)?nbsp;
3.4.1 Topology實(shí)例
3.4.2 Topology運(yùn)行
3.5 Stream消息流和Stream Grouping消息流組
3.5.1 Stream消息流
3.5.2 Stream Grouping消息流組
3.6 Task任務(wù)
3.7 Worker工作者進(jìn)程
3.8 Worker、Task、Executor三者之間的關(guān)系
3.9 事務(wù)
3.10 數(shù)據(jù)流模型
3.10.1 數(shù)據(jù)流模型簡(jiǎn)介
3.10.2 Storm數(shù)據(jù)流模型
3.11 本章小結(jié)
實(shí) 戰(zhàn) 篇
第4章 實(shí)例1:移動(dòng)互聯(lián)——語(yǔ)音“實(shí)時(shí)墻”
4.1 業(yè)務(wù)背景
4.1.1 案例背景
4.1.2 設(shè)計(jì)目標(biāo)
4.1.3 數(shù)據(jù)格式
4.1.4 硬件配置
4.2 系統(tǒng)架構(gòu)與模塊設(shè)計(jì)
4.2.1 整體架構(gòu)
4.2.2 數(shù)據(jù)采集
4.2.3 數(shù)據(jù)實(shí)時(shí)處理
4.2.4 存儲(chǔ)設(shè)計(jì)
4.2.5 Web實(shí)時(shí)展示
4.2.6 硬件部署圖
4.3 核心模塊實(shí)現(xiàn)
4.3.1 實(shí)時(shí)處理業(yè)務(wù)邏輯實(shí)現(xiàn)
4.3.2 Web展示實(shí)現(xiàn)
4.3.3 最終效果呈現(xiàn)
4.4 本章小結(jié)
第5章 實(shí)例2:運(yùn)營(yíng)商——網(wǎng)絡(luò)流量流向?qū)崟r(shí)分析
5.1 業(yè)務(wù)背景
5.1.1 案例背景
5.1.2 設(shè)計(jì)目標(biāo)
5.1.3 數(shù)據(jù)規(guī)模預(yù)估
5.1.4 數(shù)據(jù)格式
5.1.5 統(tǒng)計(jì)分析需求
5.2 系統(tǒng)架構(gòu)與模塊設(shè)計(jì)
5.2.1 整體架構(gòu)
5.2.2 數(shù)據(jù)源
5.2.3 日志采集
5.2.4 數(shù)據(jù)存儲(chǔ)
5.2.5 數(shù)據(jù)處理
5.2.6 目標(biāo)存儲(chǔ)和擴(kuò)展服務(wù)
5.2.7 結(jié)果Web展示
5.3 核心模塊實(shí)現(xiàn)
5.3.1 模擬數(shù)據(jù)實(shí)現(xiàn)
5.3.2 日志采集和存儲(chǔ)實(shí)現(xiàn)
5.3.3 數(shù)據(jù)處理實(shí)現(xiàn)
5.3.4 Web展示實(shí)現(xiàn)
5.4 本章小結(jié)
第6章 實(shí)例3:交通——基于GPS的實(shí)時(shí)路況分析
6.1 業(yè)務(wù)背景
6.1.1 案例背景
6.1.2 設(shè)計(jì)目標(biāo)
6.1.3 數(shù)據(jù)格式
6.1.4 實(shí)時(shí)路況分析方法
6.2 系統(tǒng)架構(gòu)和模塊設(shè)計(jì)
6.3 核心模塊的實(shí)現(xiàn)
6.3.1 安裝Kafka集群
6.3.2 Flume整合Kafka
6.3.3 實(shí)時(shí)處理數(shù)據(jù)
6.3.4 Web頁(yè)面展示
6.4 本章小結(jié)
第7章 實(shí)例4:互聯(lián)網(wǎng)——數(shù)據(jù)質(zhì)量實(shí)時(shí)監(jiān)控
7.1 業(yè)務(wù)背景
7.1.1 案例背景
7.1.2 設(shè)計(jì)目標(biāo)
7.1.3 數(shù)據(jù)格式
7.2 系統(tǒng)架構(gòu)與模塊設(shè)計(jì)
7.2.1 整體架構(gòu)
7.2.2 結(jié)果Web展示
7.3 核心模塊實(shí)現(xiàn)
7.3.1 模擬數(shù)據(jù)
7.3.2 實(shí)時(shí)處理業(yè)務(wù)邏輯的實(shí)現(xiàn)
7.3.3 Web界面實(shí)現(xiàn)
7.3.4 最終效果圖
7.4 本章小結(jié)
第8章 實(shí)例5:交通——超速頻發(fā)路段監(jiān)控
8.1 業(yè)務(wù)背景
8.1.1 案例背景
8.1.2 數(shù)據(jù)類型
8.2 系統(tǒng)架構(gòu)和模塊設(shè)計(jì)
8.3 核心模塊實(shí)現(xiàn)
8.3.1 實(shí)現(xiàn)入口類Main
8.3.2 數(shù)據(jù)源SocketSpout的實(shí)現(xiàn)
8.3.3 實(shí)時(shí)處理MapSearchBolt和SpeedProcessBolt的實(shí)現(xiàn)
8.3.4 目標(biāo)存儲(chǔ)DataBaseLoadBolt的實(shí)現(xiàn)
8.4 本章小結(jié)
第9章 實(shí)例6:互聯(lián)網(wǎng)——廣告實(shí)時(shí)流量統(tǒng)計(jì)
9.1 廣告實(shí)時(shí)流量統(tǒng)計(jì)系統(tǒng)架構(gòu)
9.1.1 廣告數(shù)據(jù)
9.1.2 詳細(xì)需求描述
9.1.3 系統(tǒng)架構(gòu)
9.2 表結(jié)構(gòu)與模塊設(shè)計(jì)
9.2.1 表結(jié)構(gòu)設(shè)計(jì)
9.2.2 功能模塊設(shè)計(jì)
9.3 核心模塊實(shí)現(xiàn)
9.3.1 部署物理集群環(huán)境
9.3.2 Kafka生產(chǎn)者邏輯的實(shí)現(xiàn)
9.3.3 使用Storm-kafka實(shí)現(xiàn)業(yè)務(wù)邏輯
9.3.4 使用Hbase存儲(chǔ)并實(shí)現(xiàn)統(tǒng)計(jì)
9.4 本章小結(jié)
技巧篇
第10章 Storm常見(jiàn)故障及解決方法
10.1 安裝部署故障
10.1.1 “no jzmq in java.library.path”異常
10.1.2 “No rule to make target”異常
10.1.3 “cannot access org.zeromq.ZMQ”異常
10.1.4 缺少pkg-conf?ig異常
10.1.5 “java.lang.Unsatisf?iedLinkError”異常
10.1.6 “java.lang.NoClassDefFoundError:clojure.core.protocols$”異常
10.1.7 “Error:cannot link with -luuid,install uuid-dev”異常
10.1.8 “bad interpreter:No such f?ile or directory”異常
10.1.9 “org.zeromq.ZMQException:Invalid argument”異常
10.2 啟動(dòng)故障
10.2.1 “java.io.FileNotFoundException”異常
10.2.2 “java.io.EOFException”異常
10.3 運(yùn)行時(shí)故障
10.3.1 “Nimbus host is not set”異常
10.3.2 “AlreadyAliveException(msg:xxx is alreadyactive)”異常
10.3.3 無(wú)法序列化log4j.Logger異常
10.3.4 “Failing message”異常
10.3.5 “java.io.NotSerializableException”異常
10.3.6 “java.lang.NoClassDefFoundError”異常
10.3.7 “java.net.NoRouteToHostException”異常
10.3.8 “java.net.UnknownHostException”異常
10.3.9 重復(fù)defaults.yaml資源文件異常
10.3.10 “KeeperException$NoNodeException”異常
10.3.11 “A fatal error has been detected by the Java Runtime Environment”錯(cuò)誤
10.3.12 “java.lang.ArrayIndexOutOfBoundsException”異常
10.3.13 DRPC空指針異常
10.3.14 Storm Thrift讀取數(shù)據(jù)報(bào)錯(cuò)
10.4 本章小結(jié)
第11章 Storm使用技巧和最佳實(shí)踐
11.1 核心組件使用要點(diǎn)
11.1.1 Spout和Bolt
11.1.2 ZooKeeper集群盡量獨(dú)立
11.1.3 Thrift服務(wù)的應(yīng)用場(chǎng)景
11.1.4 序列化機(jī)制的使用場(chǎng)景
11.2 集群配置技巧
11.2.1 默認(rèn)參數(shù)配置
11.2.2 日志信息
11.2.3 合理配置JVM參數(shù)
11.3 集群運(yùn)維技巧
11.3.1 Storm計(jì)算結(jié)果的存儲(chǔ)位置
11.3.2 Storm集群動(dòng)態(tài)增刪節(jié)點(diǎn)
11.3.3 關(guān)閉Storm相關(guān)進(jìn)程
11.3.4 Storm UI顯示內(nèi)容的問(wèn)題
11.4 項(xiàng)目開(kāi)發(fā)技巧
11.4.1 使用assembly插件打包
11.4.2 依賴JAR沖突
11.5 保證消息的可靠處理
11.5.1 消息失敗后的處理
11.5.2 主動(dòng)干預(yù)可靠性
11.5.3 處理重復(fù)的Tuple
11.6 理解DRPC原語(yǔ)
11.6.1 DRPC工作流
11.6.2 LinearDRPCTopologyBuilder實(shí)現(xiàn)類
11.6.3 DRPC的兩種模式
11.7 快速理解一致性事務(wù)
11.7.1 Trident框架的使用
11.7.2 Trident框架的細(xì)節(jié)
11.7.3 事務(wù)性Spout
11.7.4 狀態(tài)State
11.8 本章小結(jié)