定 價(jià):¥69.00
作 者: | 肖恩T.艾倫,馬修·揚(yáng)科夫斯基 |
出版社: | 機(jī)械工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787111586210 | 出版時(shí)間: | 2018-01-01 | 包裝: | |
開本: | 頁(yè)數(shù): | 字?jǐn)?shù): |
目 錄?Contents
\n譯者序
\n序
\n前言
\n致謝
\n關(guān)于本書
\n關(guān)于原書封面插圖
\n第1章 Storm簡(jiǎn)介 1
\n1.1 什么是大數(shù)據(jù) 1
\n1.1.1 大數(shù)據(jù)的四大特性 2
\n1.1.2 大數(shù)據(jù)工具 3
\n1.2 Storm如何應(yīng)用于大數(shù)據(jù)應(yīng)用場(chǎng)景 5
\n1.3 為什么你希望使用Storm 9
\n1.4 小結(jié) 10
\n第2章 Storm核心概念 11
\n2.1 問題定義:GitHub提交數(shù)監(jiān)控看板 11
\n2.1.1 數(shù)據(jù):起點(diǎn)和終點(diǎn) 12
\n2.1.2 分解問題 12
\n2.2 Storm基礎(chǔ)概念 13
\n2.2.1 拓?fù)? 13
\n2.2.2 元組 15
\n2.2.3 流 16
\n2.2.4 spout 17
\n2.2.5 bolt 18
\n2.2.6 流分組 20
\n2.3 在Storm中實(shí)現(xiàn)GitHub提交數(shù)監(jiān)控看板 22
\n2.3.1 建立一個(gè)Storm工程 22
\n2.3.2 實(shí)現(xiàn)spout 23
\n2.3.3 實(shí)現(xiàn)bolt 26
\n2.3.4 集成各個(gè)部分組成拓?fù)? 29
\n2.4 小結(jié) 30
\n第3章 拓?fù)湓O(shè)計(jì) 31
\n3.1 拓?fù)湓O(shè)計(jì)方法 32
\n3.2 問題定義:一個(gè)社交熱力圖 32
\n3.3 將解決方案映射至Storm的邏輯 33
\n3.3.1 考慮數(shù)據(jù)流本身施加的要求 33
\n3.3.2 將數(shù)據(jù)點(diǎn)表示為元組 34
\n3.3.3 確定拓?fù)浣M成的步驟 35
\n3.4 設(shè)計(jì)的初步實(shí)現(xiàn) 38
\n3.4.1 spout:從數(shù)據(jù)源讀取數(shù)據(jù) 38
\n3.4.2 bolt:連接至外部服務(wù) 39
\n3.4.3 bolt:將數(shù)據(jù)寄放在內(nèi)存里 41
\n3.4.4 bolt:持久化存儲(chǔ)到數(shù)據(jù)庫(kù) 45
\n3.4.5 定義組件間的流分組策略 47
\n3.4.6 在本地集群模式中構(gòu)建一個(gè)拓?fù)? 48
\n3.5 擴(kuò)展拓?fù)? 49
\n3.5.1 理解Storm中的并行機(jī)制 50
\n3.5.2 調(diào)整拓?fù)渑渲脕斫鉀Q設(shè)計(jì)中遺留的瓶頸 54
\n3.5.3 調(diào)整拓?fù)湟越鉀Q數(shù)據(jù)流中固有的瓶頸 60
\n3.6 拓?fù)涞脑O(shè)計(jì)范式 63
\n3.6.1 分解為功能組件的設(shè)計(jì)方法 65
\n3.6.2 基于重分配來分解組件的設(shè)計(jì)方法 65
\n3.6.3 最簡(jiǎn)單的功能組件與最少的重分配次數(shù) 69
\n3.7 小結(jié) 70
\n第4章 設(shè)計(jì)健壯的拓?fù)? 71
\n4.1 對(duì)可靠性的要求 71
\n4.2 問題定義:一個(gè)信用卡授權(quán)系統(tǒng) 72
\n4.2.1 有重試特性的概念性解決方案 72
\n4.2.2 定義數(shù)據(jù)點(diǎn) 74
\n4.2.3 在Storm上實(shí)現(xiàn)帶有重試特性的方案 74
\n4.3 bolt基礎(chǔ)實(shí)現(xiàn) 76
\n4.3.1 AuthorizeCreditCard的實(shí)現(xiàn) 76
\n4.3.2 ProcessedOrderNotification的實(shí)現(xiàn) 77
\n4.4 消息處理保障 78
\n4.4.1 元組狀態(tài):處理完成或失敗 78
\n4.4.2 bolt中的錨定、應(yīng)答和容錯(cuò) 80
\n4.4.3 spout在消息處理保障中的角色 84
\n4.5 回放語(yǔ)義 87
\n4.5.1 Storm中可靠性的級(jí)別 87
\n4.5.2 在Storm拓?fù)渲袡z查僅一次處理 88
\n4.5.3 檢查拓?fù)渲械目煽啃员U? 89
\n4.6 小結(jié) 94
\n第5章 拓?fù)溆杀镜氐竭h(yuǎn)程的實(shí)施 95
\n5.1 Storm集群 96
\n5.1.1 解析工作結(jié)點(diǎn) 98
\n5.1.2 基于信用卡授權(quán)拓?fù)涞纳舷挛膩砝斫夤ぷ鹘Y(jié)點(diǎn) 99
\n5.2 Storm集群容錯(cuò)中的快速失敗機(jī)制 100
\n5.3 安裝Storm集群 101
\n5.3.1 配置Zookeeper集群 101
\n5.3.2 在 Storm 的主結(jié)點(diǎn)和工作結(jié)點(diǎn)上安裝依賴組件 102
\n5.3.3 安裝Storm到主結(jié)點(diǎn)和工作結(jié)點(diǎn) 102
\n5.3.4 通過storm.yaml配置主結(jié)點(diǎn)和工作結(jié)點(diǎn) 102
\n5.3.5 在監(jiān)督機(jī)制下啟動(dòng)Nimbus和Supervisor 103
\n5.4 在Storm集群上運(yùn)行拓?fù)? 104
\n5.4.1 重新考慮如何將拓?fù)浣M件組合在一起 104
\n5.4.2 在本地模式下運(yùn)行拓?fù)? 105
\n5.4.3 在一個(gè)遠(yuǎn)程 Storm 集群上運(yùn)行拓?fù)? 105
\n5.4.4 在一個(gè)遠(yuǎn)程Storm集群上部署拓?fù)? 106
\n5.5 Storm UI及其在集群中的角色 107
\n5.5.1 Storm UI:Storm集群概要 107
\n5.5.2 Storm UI:獨(dú)立拓?fù)涓乓? 111
\n5.5.3 Storm UI:獨(dú)立spout/bolt概要 115
\n5.6 小結(jié) 118
\n第6章 對(duì)Storm進(jìn)行調(diào)優(yōu) 120
\n6.1 問題定義:Daily Deals!重生版 121
\n6.1.1 創(chuàng)建概念性解決方案 121
\n6.1.2 將方案轉(zhuǎn)換為Storm設(shè)計(jì) 122
\n6.2 初始化實(shí)施 122
\n6.2.1 spout:讀取自一個(gè)數(shù)據(jù)源 124
\n6.2.2 bolt:查找推薦商品 125
\n6.2.3 bolt:為每個(gè)商品查詢?cè)敿?xì)信息 126
\n6.2.4 bolt:保存推薦的商品詳情 127
\n6.3 調(diào)優(yōu):我想為它提速 128
\n6.3.1 Storm UI:調(diào)優(yōu)的定位工具 128
\n6.3.2 為性能值建立一個(gè)基線集 130
\n6.3.3 判斷瓶頸 131
\n6.3.4 spout:控制數(shù)據(jù)流入拓?fù)涞乃俾? 135
\n6.4 延遲率:當(dāng)外部系統(tǒng)依然能正常工作時(shí) 137
\n6.4.1 在拓?fù)渲心M延遲 137
\n6.4.2 延遲的外因和內(nèi)因 139
\n6.5 Storm的指標(biāo)統(tǒng)計(jì)API 143
\n6.5.1 使用Storm的內(nèi)建
\nCountMetric 143
\n6.5.2 設(shè)置一個(gè)指標(biāo)接收器 144
\n6.5.3 創(chuàng)建一個(gè)自定義的SuccessRateMetric 145
\n6.5.4 創(chuàng)建一個(gè)自定義的MultiSuccessRateMetric 147
\n6.6 小結(jié) 149
\n第7章 資源沖突 150
\n7.1 調(diào)整一個(gè)工作結(jié)點(diǎn)上運(yùn)行的工作進(jìn)程數(shù)量 152
\n7.1.1 問題 152
\n7.1.2 解決方案 152
\n7.1.3 討論 153
\n7.2 修改工作進(jìn)程(JVM)上的內(nèi)存分配 153
\n7.2.1 問題 153
\n7.2.2 解決方案 154
\n7.2.3 討論 154
\n7.3 定位拓?fù)渖线\(yùn)行的工作結(jié)點(diǎn)/進(jìn)程 154
\n7.3.1 問題 154
\n7.3.2 解決方案 155
\n7.3.3 討論 155
\n7.4 在一個(gè)Storm集群中的工作進(jìn)程沖突 156
\n7.4.1 問題 157
\n7.4.2 解決方案 157
\n7.4.3 討論 158
\n7.5 在一個(gè)工作進(jìn)程(JVM)中的內(nèi)存沖突 159
\n7.5.1 問題 162
\n