基本信息,內容簡介,目錄信息,
基本信息
Storm:大數據流式計算及套用實踐
作 譯 者:丁維龍,趙卓峰,韓燕波
出版時間:2015-03
千 字 數:400
版 次:01-01
頁 數:264
開 本:16(185*260)
I S B N :9787121195686
內容簡介
Storm作為實時的、分散式以及具備高容錯的流式計算系統,對比適於海量數據批處理的hadoop,不僅簡化了數據流上相關處理的並行編程複雜度,也提供了數據處理實時性、可靠性和集群節點動態伸縮的特性。本書通過各自章節的詳細闡述和套用,全面介紹了Storm的溯源發展、核心概念和集群配置、可靠性保障關鍵技術、常用的並行流模型編程範式,關鍵數據結構和源碼解析等。本書的一大特色是,書中所有實例,均來自筆者所在團隊的實際套用,是一個在智慧型交通背景下的城市道路車輛實時監控系統。
目錄信息
第一篇 理論篇 流式數據處理概論
第1章 大數據環境下的雲計算與物聯網 3
1.1 雲計算與物聯網 3
1.1.1 雲計算 3
1.1.2 物聯網 6
1.2 大數據下的新挑戰 8
1.2.1 大數據及其特徵 8
1.2.2 大數據處理的技術挑戰 11
1.3 本章小結 14
第2章 流式實時數據處理:理論與技術 15
2.1 流式數據與流式實時計算 15
2.1.1 流式數據 15
2.1.2 流式實時計算 18
2.2 流式數據處理的系統與套用 20
2.2.1 發展與挑戰 20
2.2.2 Hadoop 2.0生態圈 22
2.3 Storm 27
2.3.1 起源與發展:Twitter的開源與影響 27
2.3.2 功能 29
2.3.3 特色:可擴展、可靠的分散式流式數據處理 30
2.4 其他開源流式數據處理系統 34
2.4.1 Yahoo S4 34
2.4.2 Spark Streaming 37
2.4.3 Facebook Puma 41
2.5 本章小結 42
第3章 實際案例:城市道路車輛 數據的實時監控分析系統 43
3.1 背景與需求分析 43
3.1.1 背景 43
3.1.2 數據處理的業務需求 45
3.2 數據處理系統的架構設計與技術選型 46
3.2.1 架構設計 46
3.2.2 技術選型 48
3.3 本章小結 49
第二篇 套用基礎篇 流式數據處理系統Storm的基礎原理
第4章 Storm的系統模型:架構與組成 53
4.1 系統架構與部署模式 53
4.1.1 系統架構 53
4.1.2 單機/分散式部署 56
4.1.3 本地模式 58
4.2 系統節點 59
4.2.1 Zookeeper:協調節點 59
4.2.2 nimbus:主控節點 63
4.2.3 supervisor:工作節點 65
4.2.4 UI:控制台節點 68
4.3 本章小結 70
第5章 Storm的通信模型 71
5.1 Thrift: 可擴展且跨語言的通信軟體框架 71
5.1.1 Thrift的基礎概念 71
5.1.2 基於Thrift的數據通信 74
5.2 Thrift在Storm中的套用:系統節點間的通信 75
5.2.1 接口的定義與實現 75
5.2.2 客戶端與Storm系統的通信 82
5.3 ZeroMQ在Storm中的套用:Storm作業任務間的通信 83
5.3.1 ZeroMQ:面向分散式並發套用的高性能異步訊息處理庫 83
5.3.2 Tuple與declareOutputFields(): 數據項結構及聲明 86
5.4 Storm 可配置的通信機制 89
5.5 本章小結 90
第6章 Storm的作業單元:Topology 91
6.1 Topology結構及構成 91
6.2 Stream:組件間的數據傳遞 93
6.2.1 概述 93
6.2.2 Stream Grouping: 流組模式 94
6.2.3 自定義流組 101
6.3 構建Topology 104
6.3.1 TopologyBuilder與Config 104
6.3.2 Topology構建示例 106
6.3.3 Topology常見的編程模式 107
6.4 本章小結 109
第7章 Storm的數據源編程單元:Spout 110
7.1 Spout的接口與實現 110
7.1.1 Spout與接口層次結構 110
7.1.2 ISpout和IComponent接口 111
7.1.3 接口的實現類及實例 113
7.2 Spout的使用模式 115
7.2.1 直接連線 115
7.2.2 佇列連線 119
7.3 Spout與數據的可靠性 121
7.3.1 可靠的Spout與不可靠的Spout 121
7.3.2 可靠的Spout的數據項管理 122
7.4 本章小結 125
第8章 Storm的數據處理編程單元:Bolt 126
8.1 Bolt的接口與實現 126
8.1.1 Bolt與接口層次 126
8.1.2 IBolt和IComponent接口 127
8.1.3 接口的實現類及實例 131
8.2 Bolt與數據的可靠性 133
8.2.1 可靠的Bolt與不可靠的Bolt 133
8.2.2 可靠的Bolt的數據項管理 133
8.2.3 IBasicBolt和BaseBasicBolt 136
8.3 本章小結 137
第9章 Storm的保障能力 138
9.1 Storm的功能性保障:多粒度的並行化 138
9.1.1 並發模型 138
9.1.2 並行度配置 139
9.1.3 可插拔的自定義調度器 144
9.2 Storm的非功能性保障:多級別的可靠性 149
9.2.1 不同級別的容錯機制 149
9.2.2 記錄級容錯:保障數據項不丟失 151
9.2.3 記錄級容錯的原理:acker任務與追蹤算法 157
9.3 本章小結 164
第10章 Storm的特定套用 165
10.1 分散式遠程過程調用 165
10.1.1 概述 165
10.1.2 DRPC的構建與使用 166
10.1.3 Storm的DRPC原理 171
10.2 事務型作業 173
10.2.1 概述 173
10.2.2 Transactional Topology的構建與使用 175
10.2.3 Transactional Topology的編程接口與事務型的實現 179
10.2.4 CoordinatedBolt的原理 181
10.3 非Java語言的開發 182
10.3.1 支持多語言的協定 182
10.3.2 Shell組件 187
10.4 本章小結 189
第三篇 套用實踐篇 基於流式數據處理系統Storm的開發
第11章 Storm的系統部署 193
11.1 系統環境 193
11.2 依賴程式的安裝 194
11.2.1 libuuid, libuuid-devel, gcc-c++, libtool 194
11.2.2 ZeroMQ和JZMQ 196
11.3 Storm的安裝與配置 198
11.3.1 Zookeeper的安裝與配置 198
11.3.2 單機模式和集群模式下Storm的安裝、配置和啟動 200
11.3.3 Storm各節點的服務啟動 203
11.4 Storm集群水平擴展工作節點 206
11.5 本章小結 207
第12章 Storm套用的開發與調試 208
12.1 Eclipse環境下的Storm工程 208
12.1.1 Eclipse開發環境 208
12.1.2 將Storm-starter組織為Eclipse工程 210
12.2 Storm套用的開發、調試與部署 212
12.2.1 本地開發與調試 212
12.2.2 遠程部署 213
12.3 常見問題與應對技巧 215
12.3.1 ZeroMQ版本 215
12.3.2 Zookeeper日誌清理 216
12.3.3 Topology作業的打包與遠程部署 216
12.4 本章小結 217
第13章 項目案例分析 218
13.1 業務計算的設計 218
13.1.1 需求分析 218
13.1.2 概要設計 219
13.2 業務計算的實現 220
13.2.1 Topology的構建 220
13.2.2 JmsSpout的實現 222
13.2.3 三個Bolt的實現 224
13.3 本章小結 229
附錄 218
參考文獻 232
後記 237