阿里巴巴、yahoo、Twitter、Groupon等大型互聯網企業,處理即時巨量資料的最實用工具。
第一本介紹Storm 的書,從基礎知識、安裝與部署、研發與維護、進階知識、企業應用等5個模組,分別介紹Storm 的安裝與設定、基本原理、Topology 元件、Spout 元件、Bolt 元件、ZooKeeper 叢集、實戰環節等內容。讓讀者在最短的時間內系統掌握Storm 的理論基礎,針對Linux 平台架設與研發自己以Storm 為基礎的巨量資料處理平台。
適合:所有巨量資料處理、即時流資料處理、Storm的開發者或有興趣者,或大專院校和培訓單位等相關科系的師生參考使用。
作者序
前言
Storm 是一個免費開放原始碼的分散式即時計算系統。Storm 能輕鬆可靠地處理無界的資料流,就像Hadoop 批次處理一樣對資料進行即時處理;但是Storm能持續運作下去,並且Storm 的使用十分簡單,開發人員可以使用任何程式語言對它操作,獲得滿意的結果。
本書以Storm 官方網站最新的Release 版本Storm 0.9.0.1 說明,從零開始,讓讀者在較短的時間內系統掌握Storm 的理論基礎,針對Linux 平台架設與研發自己以Storm 為基礎的巨量資料處理平台。全書分為5 個模組,共20 章內容,其中“基礎知識”6 章、“安裝與部署”4 章、“研發與維護”4 章、“進階知識”5 章、“企業應用”1 章,分別介紹了Storm 的安裝與設定、Storm 的基本原理、Topology 元件、Spout 元件、Bolt 元件、ZooKeeper 叢集、實戰環節等內容,包含理論基礎、環境架設、研發準備、應用案例等。
作為第一本介紹Storm 的書籍, 本書Storm 理論部分主要參考了Storm
Wiki;另外,為了更進一步地了解Storm,也參考了不少Storm 同好的中文翻譯文章;而Storm 的應用部分,是本書作者的實戰應用經驗與理論相結合的結晶。本書在撰寫過程中,獲得多位Storm 開發者/ 同好的幫助以及對本書的校驗和建議,在此表示感謝,特別要感謝趙鴻、陳險峰。
由於作者水準有限,且本書有關的基礎知識較多,書中難免有不妥和錯誤之處,敬請讀者們批評指正。
書中的原始程式碼主要來自storm-starter 專案,下載網址為:https://github.com/nathanmarz/ storm-starter。
為了更有效地學習,建議讀者在開始學習或閱讀本書前先了解Linux 的基本操作、Shell 指令稿的基本語法、Java 語言的基本語法等內容。
前言
Storm 是一個免費開放原始碼的分散式即時計算系統。Storm 能輕鬆可靠地處理無界的資料流,就像Hadoop 批次處理一樣對資料進行即時處理;但是Storm能持續運作下去,並且Storm 的使用十分簡單,開發人員可以使用任何程式語言對它操作,獲得滿意的結果。
本書以Storm 官方網站最新的Release 版本Storm 0.9.0.1 說明,從零開始,讓讀者在較短的時間內系統掌握Storm 的理論基礎,針對Linux 平台架設與研發自己以Storm 為基礎的巨量資料處理平台。全書分為5 個模組,共20 章內容,其中“基礎知識”6 章、“安裝與部署”4 章、“研發與維護...
目錄
前言
Chapter 01 基礎軟體的安裝與使用
1.1 什麼是Storm 1-2
1.2 Storm 的誕生 1-4
1.3 Storm 的成長 1-6
1.4 Storm 的優勢 1-19
1.5 Storm 的應用現狀和發展趨勢 1-22
1.6 如何學習Storm 1-27
1.7 本書的章節安排及學習建議 1-29
1.8 本章小結
Chapter 02 Storm 的基礎
2.1 概念 2-2
2.2 Storm 的設定 2-8
2.3 序列化(Serialization) 2-14
2.4 容錯機制 2-17
2.5 可用性機制——保障訊息處理 2-18
2.6 訊息傳輸機制 2-26
2.7 Storm 的開發環境與生產環境 2-27
2.8 Storm 拓撲的平行度(parallelism) 2-30
2.9 Storm 命令列用戶端 2-34
2.10 Javadoc 文件 2-39
2.11 本章小結
Chapter 03 拓撲詳解
3.1 什麼是拓撲 3-2
3.2 TopologyBuilder 3-2
3.3 流分組 3-4
3.4 一個簡單的拓撲 3-9
3.5 在本機模式下執行拓撲 3-12
3.6 在生產叢集上執行拓撲 3-14
3.7 拓撲的常見模式 3-17
3.8 本機模式與StormSubmitter 的比較 3-21
3.9 多語言協定(Multi-Language Protocol) 3-23
3.10 使用非JVM 語言操作Storm 3-28
3.11 Hook 3-30
3.12 本章小結
Chapter 04 元件詳解
4.1 基本介面 4-2
4.2 基本抽象類別 4-9
4.3 交易介面 4-11
4.4 元件之間的相互關係 4-16
4.5 本章小結
Chapter 05 Spout 詳解
5.1 可靠的與不可靠的訊息 5-2
5.2 Spout 取得資料的方式 5-5
5.3 常用的Spout 5-7
5.4 學習撰寫Spout 類別 5-9
5.5 本章小結
Chapter 06 Bolt 詳解
6.1 Bolt 概述 6-2
6.2 可靠的與不可靠的Bolt 6-3
6.3 複合流與複合Anchoring 6-5
6.4 使用其他語言定義Bolt 6-6
6.5 學習撰寫Bolt 類別 6-7
6.6 本章小結
Chapter 07 ZooKeeper 詳解
7.1 ZooKeeper 簡介 7-2
7.2 ZooKeeper 的下載和部署 7-2
7.3 ZooKeeper 的設定 7-5
7.4 ZooKeeper 的執行 7-7
7.5 ZooKeeper 的本機模式實例 7-9
7.6 ZooKeeper 的資料模型 7-10
7.7 ZooKeeper 的命令列操作範例 7-14
7.8 Storm 在ZooKeeper 中的目錄結構 7-16
7.9 本章小結
Chapter 08 基礎軟體的安裝與使用
8.1 Linux 的基本操作 8-2
8.2 JDK 的下載與設定 8-8
8.3 GitHub 託管專案的下載 8-17
8.4 Maven 的下載與設定 8-19
8.5 其他軟體——Notepad++ 8-23
8.6 本章小結
Chapter 09 Storm 的安裝與設定
9.1 Storm 叢集的安裝步驟與準備工作 9-2
9.2 本機模式的Storm 完整的設定指令 9-12
Chapter 10 Storm 叢集架設實作
10.1 準備工作 10-2
10.2 ZooKeeper 叢集的架設 10-8
10.3 Storm 叢集的架設 10-11
10.4 本章小結
Chapter 11 準備Storm 的開發環境
11.1 Storm 的開發環境 11-2
11.2 Eclipse 的下載與設定 11-7
11.3 使用Maven 管理專案 11-12
11.4 使用Nexus 架設本機Maven 私人伺服器 11-15
11.5 使用SVN 管理程式版本 11-23
11.6 部署單節點的Storm 叢集 11-26
11.7 本章小結
Chapter 12 開發自己的Storm 應用
12.1 新增Maven 專案 12-2
12.2 修改為適合Storm 開發的專案 12-5
12.3 撰寫程式 12-8
12.3.1 撰寫Spout 類別 12-9
12.4 本機測試執行 12-12
12.5 傳送到Storm 叢集執行 12-12
12.6 本章小結
Chapter 13 storm-starter 詳解
13.1 storm-starter 專案概述 13-2
13.2 storm-starter 的下載 13-4
13.3 使用Maven 進行管理 13-5
13.4 在Eclipse 中執行 13-6
13.5 storm-starter 的入門實例 13-10
13.6 storm-starter 的其他實例 13-21
13.7 本章小結
Chapter 14 研發與叢集管理技巧
14.1 使用daemontools 監控Storm 處理程序 14-2
14.2 使用Monit 監控Storm 14-6
14.3 常用的叢集操作指令 14-12
14.4 使用Storm 的經驗與建議 14-13
14.5 本章小結
Chapter 15 DRPC 詳解
15.1 概述 15-2
15.2 DRPCTopologyBuilder 15-3
15.3 本機模式的DRPC 15-6
15.4 遠端模式的DRPC 15-7
15.5 一個複雜的DRPC 實例(計算reach 值) 15-7
15.6 非線性DRPC 15-10
15.7 本章小結
Chapter 16 交易拓撲詳解
16.1 什麼是交易拓撲 16-2
16.2 交易拓撲的設計細節 16-4
16.3 交易拓撲的實現細節 16-5
16.4 交易拓撲API 16-9
16.5 TransactionalTopologyBuilder 16-12
16.6 一個簡單的實例 16-16
16.7 本章小結
Chapter 17 Trident 詳解
17.1 Trident 概述 17-2
17.2 Trident API 17-12
17.3 Trident 的狀態 17-20
17.4 Trident Spout 17-32
17.5 本章小結
Chapter 18 Storm 的內部實現
18.1 檔案系統分析 18-2
18.2 資料目錄結構 18-4
18.3 程式庫的結構 18-6
18.4 拓撲的生命週期 18-16
18.5 Acking 框架的實現 18-20
18.6 Metric 18-23
18.7 本章小結
Chapter 19 Storm 相關的其他專案
19.1 JStorm 專案 19-2
19.2 storm-deploy 專案 19-5
19.3 Storm 與Kafka 19-6
19.4 storm-kestrel 專案 19-11
19.5 本章小結
Chapter 20 企業應用案例
20.1 Storm 席捲許多網際網路企業 20-2
20.2 Storm 在Twitter 中的應用 20-3
20.3 Storm 在阿里巴巴集團的應用 20-7
20.4 其他應用Storm 的知名企業和專案 20-10
20.5 本章小結 20-31
參考資料
前言
Chapter 01 基礎軟體的安裝與使用
1.1 什麼是Storm 1-2
1.2 Storm 的誕生 1-4
1.3 Storm 的成長 1-6
1.4 Storm 的優勢 1-19
1.5 Storm 的應用現狀和發展趨勢 1-22
1.6 如何學習Storm 1-27
1.7 本書的章節安排及學習建議 1-29
1.8 本章小結
Chapter 02 Storm 的基礎
2.1 概念 2-2
2.2 Storm 的設定 2-8
2.3 序列化(Serialization) 2-14
2.4 容錯機制 2-17
2.5 可用性機制——保障訊息處理 2-18
2.6 訊息傳輸機制 2-26
2.7 Storm 的開發環境與生產環境 2-27
2.8 Storm 拓撲的平行度(parallelism) 2-30
2.9 ...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。