Storm技術內幕與大數據實踐

Storm技術內幕與大數據實踐

《Storm技術內幕與大數據實踐》是2015年出版的圖書,作者是陳敏敏、王新春、黃奉線。

圖書簡介

《Storm技術內幕與大數據實踐》內容主要圍繞實時大數據系統的各個方面展開,從實時平台總體介紹到集群源碼、運維監控、實時系統擴展、以用戶畫像為主的數據平台,最後到推薦、廣告、搜尋等具體的大數據套用。書中提到的不少問題是實際生產環境中因為數據量增長而遇到的一些真實問題,對即將或正在運用實時系統處理大數據問題的團隊會有所幫助。

目錄

第 1章 緒論 1

1.1 Storm的基本組件 2

1.1.1 集群組成 2

1.1.2 核心概念 3

1.1.3 Storm的可靠性 5

1.1.4 Storm的特性 6

1.2 其他流式處理框架 6

1.2.1 Apache S4 6

1.2.2 Spark Streaming 6

1.2.3 流計算和Storm的套用 7

第 2章 實時平台介紹 11

2.1 實時平台架構介紹 11

2.2 Kafka架構 13

2.2.1 Kafka的基本術語和概念 13

2.2.2 Kafka在實時平台中的套用 14

2.2.3 訊息的持久化和順序讀寫 15

2.2.4 sendfile系統調用和零複製 15

2.2.5 Kafka的客戶端 17

2.2.6 Kafka的擴展 17

2.3 大眾點評實時平台 17

2.3.1 相關數據 18

2.3.2 實時平台簡介 18

2.3.3 Blackhole 19

2.4 1號店實時平台 20

第3章 Storm集群部署和配置 23

3.1 Storm的依賴組件 23

3.2 Storm的部署環境 24

3.3 部署Storm服務 24

3.3.1 部署ZooKeeper 24

3.3.2 部署Storm 25

3.3.3 配置Storm 25

3.4 啟動Storm 28

3.5 Storm的守護進程 28

3.6 部署Storm的其他節點 30

3.7 提交Topology 30

第4章 Storm內部剖析 33

4.1 Storm客戶端 33

4.2 Nimbus 36

4.2.1 啟動Nimbus服務 36

4.2.2 Nimbus服務的執行過程 38

4.2.3 分配Executor 44

4.2.4 調度器 46

4.2.5 默認調度器DefaultScheduler 47

4.2.6 均衡調度器EvenScheduler 50

4.3 Supervisor 53

4.3.1 ISupervisor接口 54

4.3.2 Supervisor的共享數據 54

4.3.3 Supervisor的執行過程 56

4.4 Worker 61

4.4.1 Worker中的數據流 61

4.4.2 創建Worker的過程 62

4.5 Executor 65

4.5.1 Executor的創建 66

4.5.2 創建Spout的Executor 69

4.5.3 創建Bolt的Executor 74

4.6 Task 76

4.6.1 Task的上下文對象 77

4.6.2 Task的創建 82

4.7 Storm中的統計 84

4.7.1 stats框架 85

4.7.2 metric框架 90

4.8 Ack框架 91

4.8.1 Ack的原理 92

4.8.2 Acker Bolt 94

4.9 Storm總體架構 95

第5章 Storm運維和監控 97

5.1 主機信息監控 97

5.1 日誌和監控 98

5.2 Storm UI和NimbusClient 99

5.3 Storm Metric的使用 100

5.4 Storm ZooKeeper的目錄 102

5.5 Storm Hook的使用 104

第6章 Storm的擴展 107

6.1 Storm UI的擴展 107

6.1.1 Storm UI原生功能 108

6.1.2 Storm UI新功能需求 108

6.1.3 Storm的Thrift接口 109

6.2 資源隔離 110

6.2.1 CGroup測試 111

6.2.2 基於CGroup的資源隔離的實現 119

第7章 Storm開發 121

7.1 簡單示例 121

7.2 調試和日誌 122

7.3 Storm Trident 124

7.4 Strom DRPC 128

第8章 基於Storm的實時數據平台 129

8.1 Hadoop到Storm的代碼遷移經驗 129

8.2 實時用戶畫像 130

8.2.1 簡單實時畫像 130

8.2.2 實時畫像最佳化 131

8.2.3 實時畫像的毫秒級更新 133

8.3 其他場景畫像 135

8.4 畫像的興趣度模型構建 136

8.5 外部畫像融合經驗分享 138

8.6 互動式查詢和分析用戶畫像 142

8.7 實時產品和店鋪信息更新 143

第9章 大數據套用案例 145

9.1 實時DAU計算 145

9.2 實時個性化推薦 150

9.2.1 推薦系統介紹 150

9.2.2 實時推薦系統的方法 153

9.2.3 基於Storm的實時推薦系統 156

9.3 廣告投放的精準化 158

9.3.1 點擊率預測 158

9.3.2 搜尋引擎行銷 161

9.3.3 精準化行銷與千人千面 161

9.4 實時意圖和搜尋 164

9.4.1 用戶意圖預測 165

9.4.2 搜尋比價 167

9.4.3 搜尋排序 168

第 10章 Storm使用經驗和性能最佳化 171

10.1 使用經驗 171

10.1.1 使用rebalance命令動態調整並發度 171

10.1.2 使用tick訊息做定時器 172

10.1.3 使用組件的並行度代替執行緒池 174

10.1.4 不要用DRPC批量處理大數據 174

10.1.5 不要在Spout中處理耗時的操作 174

10.1.6 log4j的使用技巧 175

10.1.7 注意fieldsGrouping的數據均衡性 176

10.1.8 優先使用localOrShuffleGrouping 176

10.1.9 設定合理的MaxSpoutPending值 177

10.1.10 設定合理的Worker數 177

10.1.11 平衡吞吐量和時效性 178

10.2 性能最佳化 179

10.2.1 找到Topology的性能瓶頸 179

10.2.2 GC參數最佳化 181

10.3 性能最佳化原則 181

附錄A Kafka原理 183

附錄B 將Storm源碼導入Eclipse 191

相關詞條

熱門詞條

聯絡我們