大數據系統構建:可擴展實時數據系統構建原理與最佳實踐
內容描述
<內容簡介>
本書將教你充分利用集群硬件優勢的架構,以及專門設計用來捕獲和分析網絡規模數據的新工具,來創建這些系統。其中描述了一個可擴展的、易於理解大數據系統的方法,可以由小團隊構建並運行;並利用一個實際示例,基於大數據系統的理論在實踐中實現它們來指導讀者。本書共18章。第1章介紹了數據系統的原理,並對Lambda架構進行了概述;第2章到第9章集中闡述了Lambda架構的批處理層;第10章和第11章講述服務層的內容;第12章到17章講述速度層的內容;第18章再次鞏固Lambda架構的相關知識,並進行查漏補缺。
<章節目錄>
譯者序
前言
關於本書
致謝
第1章大數據的新範式
1.1本書是如何組織的
1.2擴展傳統數據庫
1.2.1用隊列擴展
1.2.2通過數據庫分片進行擴展
1.2.3開始處理容錯問題
1.2 .4損壞問題
1.2.5到底是哪裡出錯了
1.2.6大數據技術是如何起到幫助
作用的
1.3 NoSQL不是萬能的
1.4基本原理
1.5大數據系統應有的屬性
1.5.1魯棒性和容錯性
1.5.2低延遲讀取和更新
1.5.3可擴展性
1.5.4通用性
1.5.5延展性
1.5.6即席查詢
1.5.7最少維護
1.5.8可調試性
1.6全增量架構的問題
1.6. 1操作複雜性
1.6.2實現最終一致性的極端
複雜性
1.6.3缺乏容忍人為錯誤
1.6.4全增量架構解決方案與Lambda
架構解決方案
1.7 Lambda架構
1.7.1批處理層
1.7.2服務層
1.7.3批處理層和服務層滿足幾乎所有
屬性
1.7.4速度層
1.8技術上的最新趨勢
1.8.1 CPU並不是越來越快
1.8.2彈性雲
1.8.3大數據充滿活力的開源生態
系統
1.9示例應用:SuperWebAnalytics.com
1.10總結
第一部分批處理層
第2章大數據的數據模型
2.1數據的屬性
2.1.1數據是原始的
2.1.2數據是不可變的
2.1.3數據是永遠真實的
2.2基於事實的數據表示模型
2.2.1事實的示例及屬性
2.2.2基於事實的模型的優勢
2.3圖模式
2.3.1圖模式的元素
2.3.2可實施模式的必要性
2.4 SuperWebAnalytics.com的完整
數據模型
2.5總結
第3章大數據的數據模型:示例
3.1為什麼使用序列化框架
3.2 ApaChe ThriR
3.2.1節點
3.2.2邊
3.2.3屬性
3.2.4把一切組合成數據對象
3.2.5模式演變
3.3序列化框架的局限性
3.4總結
第4章批處理層的數據存儲
4.1主數據集的存儲需求
4.2為批處理層選擇存儲方案
4.2.1使用鍵/值存儲主數據集
4.2.2分佈式文件系統
4.3分佈式文件系統是如何工作的
4.4使用分佈式文件系統存儲主數據集
4.5垂直分區
4.6分佈式文件系統的底層性質
4.7在分佈式文件系統上存儲
SuperWebAnalytics.com的
主數據集
4.8總結
第5章批處理層的數據存儲:
示例
5.1使用HDFS
5.1.1小文件問題
5.1.2轉向更高層次的抽象
5.2使用Pail在批處理層存儲數據
5.2.1 Pail基本操作
5.2.2序列化對像到Pail中
5.2. 3使用Pail進行批處理操作
5.2.4使用Pail進行垂直分區
5.2.5 Pail文件格式與壓縮
5.2.6 Pail優點的總結
5.3存儲SuperWebAnalytics.com的
主數據集
5.3.1 Thrift對象的結構化Pail
5.3. 2 SuperWebAnalytics.com的基礎
Pail
5.3.3用於垂直分區數據集的分片
Pail
5.4總結
第二部分服務層