注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)家庭與辦公軟件大數(shù)據(jù)系統(tǒng)構(gòu)建:可擴展實時數(shù)據(jù)系統(tǒng)構(gòu)建原理與最佳實踐

大數(shù)據(jù)系統(tǒng)構(gòu)建:可擴展實時數(shù)據(jù)系統(tǒng)構(gòu)建原理與最佳實踐

大數(shù)據(jù)系統(tǒng)構(gòu)建:可擴展實時數(shù)據(jù)系統(tǒng)構(gòu)建原理與最佳實踐

定 價:¥79.00

作 者: [美] 南森·馬茨(Nathan Marz),詹姆斯·沃倫(James Warren) 著;馬延輝,向磊,魏東琦 譯
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 計算機?網(wǎng)絡(luò) 計算機期刊雜志

ISBN: 9787111552949 出版時間: 2016-12-01 包裝: 平裝
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  隨著社交網(wǎng)絡(luò)、網(wǎng)絡(luò)分析和智能型電子商務(wù)的興起,傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)顯然已無法滿足海量數(shù)據(jù)的管理需求。 作為一種新的處理模式,大數(shù)據(jù)系統(tǒng)應(yīng)運而生,它使用多臺機器并行工作,能夠?qū)A繑?shù)據(jù)進行存儲、處理、分析,進而幫助用戶從中提取對優(yōu)化流程、實現(xiàn)高增長率的有用信息,做更為精準有效的決策。 但不可忽略的是,它也引入了大多數(shù)開發(fā)者并不熟悉的、困擾傳統(tǒng)架構(gòu)的復雜性問題。本書將教你充分利用集群硬件優(yōu)勢的Lambda架構(gòu),以及專門用來捕獲和分析網(wǎng)絡(luò)規(guī)模數(shù)據(jù)的新工具,來創(chuàng)建這些系統(tǒng)。它將描述一個可擴展的、易于理解大數(shù)據(jù)系統(tǒng)的方法——可以由小團隊構(gòu)建并運行。本書共18章,除了介紹基本概念,其他章節(jié)采用“理論+示例”的方式來闡釋相關(guān)概念,并使用現(xiàn)實世界中的工具加以論證。其中,第1章介紹了數(shù)據(jù)系統(tǒng)的原理,給出了Lambda架構(gòu)的概述,并概述了構(gòu)建任何數(shù)據(jù)系統(tǒng)的廣義方法。第2~9章集中闡述Lambda架構(gòu)的批處理層。第10章和第11章集中闡述服務(wù)層,讓讀者了解只批量寫入的特定數(shù)據(jù)庫——這些數(shù)據(jù)庫比傳統(tǒng)數(shù)據(jù)庫更簡單,它們具有出色的性能,并具備可操作性、穩(wěn)健性等特點。第12~17章集中闡述速度層,讓讀者更明確地了解NoSQL數(shù)據(jù)庫、流處理和管理增量計算的復雜性。 第18章通過綜合回顧Lambda架構(gòu)的相關(guān)知識,幫助讀者了解增量批處理、基本Lambda架構(gòu)的變種,以及如何充分利用資源。

作者簡介

  作者簡介Nathan MarzCascalog和Storm的創(chuàng)始人。在2011年Twitter收購社交媒體數(shù)據(jù)分析公司BackType前,他是BackType首席工程師。在Twitter,他建立了流計算團隊,提供和開發(fā)共享基礎(chǔ)設(shè)施,為整個公司的關(guān)鍵實時應(yīng)用提供支持。他目前是Stealthstartup的創(chuàng)始人。James Warren Storm8的分析架構(gòu)師,精通大數(shù)據(jù)處理、機器學習和科學計算。譯者簡介馬延輝,資深Hadoop技術(shù)專家,對Hadoop生態(tài)系統(tǒng)相關(guān)技術(shù)有著深刻的理解,在Hadoop開發(fā)和運維方面積累了豐富的經(jīng)驗。曾就職于阿里、Answers.com、暴風等互聯(lián)網(wǎng)公司,從事Hadoop相關(guān)的研發(fā)和運維工作,對大數(shù)據(jù)技術(shù)的企業(yè)級落地、研發(fā)、運維和管理有著深刻的理解和豐富的實戰(zhàn)經(jīng)驗。開源HBase監(jiān)控工具Ella作者。現(xiàn)在致力于大數(shù)據(jù)技術(shù)在傳統(tǒng)行業(yè)的落地和大數(shù)據(jù)技術(shù)的普及和推廣。向磊,前暴風影音數(shù)據(jù)平臺架構(gòu)師,目前在某垂直電商平臺擔任技術(shù)總監(jiān),惠普中國Hadoop相關(guān)課程講師。開源項目EasyHadoop、phpHiveAdmin作者,對Hadoop及其周邊生態(tài)系統(tǒng)的底層運維及開發(fā)、集群自動化運維、網(wǎng)絡(luò)架構(gòu)設(shè)計、集群安全、性能優(yōu)化、嵌入式編程方面有較深入了解。魏東琦,博士,長期從事軟件研發(fā)工作,現(xiàn)就職于中國地質(zhì)調(diào)查局西安地質(zhì)調(diào)查中心,參加、承擔過多項科研項目。現(xiàn)致力于地質(zhì)行業(yè)與大數(shù)據(jù)技術(shù)融合的相關(guān)研究工作。

圖書目錄

譯 者 序
前  言
關(guān)于本書
致  謝
第1章 大數(shù)據(jù)的新范式1
1.1 本書是如何組織的2
1.2 擴展傳統(tǒng)數(shù)據(jù)庫3
1.2.1 用隊列擴展3
1.2.2 通過數(shù)據(jù)庫分片進行擴展4
1.2.3 開始處理容錯問題4
1.2.4 損壞問題5
1.2.5 到底是哪里出錯了5
1.2.6 大數(shù)據(jù)技術(shù)是如何起到幫助作用的5
1.3 NoSQL不是萬能的6
1.4 基本原理6
1.5 大數(shù)據(jù)系統(tǒng)應(yīng)有的屬性7
1.5.1 魯棒性和容錯性7
1.5.2 低延遲讀取和更新8
1.5.3 可擴展性8
1.5.4 通用性8
1.5.5 延展性8
1.5.6 即席查詢9
1.5.7 最少維護9
1.5.8 可調(diào)試性9
1.6 全增量架構(gòu)的問題10
1.6.1 操作復雜性10
1.6.2 實現(xiàn)最終一致性的極端復雜性11
1.6.3 缺乏容忍人為錯誤12
1.6.4 全增量架構(gòu)解決方案與 Lambda架構(gòu)解決方案13
1.7 Lambda架構(gòu)14
1.7.1 批處理層15
1.7.2 服務(wù)層16
1.7.3 批處理層和服務(wù)層滿足幾乎所有屬性16
1.7.4 速度層17
1.8 技術(shù)上的最新趨勢19
1.8.1 CPU并不是越來越快20
1.8.2 彈性云20
1.8.3 大數(shù)據(jù)充滿活力的開源生態(tài)系統(tǒng)20
1.9 示例應(yīng)用:SuperWebAnalytics.com21
1.10 總結(jié)22
第一部分 批處理層
第2章 大數(shù)據(jù)的數(shù)據(jù)模型24
2.1 數(shù)據(jù)的屬性25
2.1.1 數(shù)據(jù)是原始的28
2.1.2 數(shù)據(jù)是不可變的30
2.1.3 數(shù)據(jù)是永遠真實的33
2.2 基于事實的數(shù)據(jù)表示模型34
2.2.1 事實的示例及屬性34
2.2.2 基于事實的模型的優(yōu)勢36
2.3 圖模式39
2.3.1 圖模式的元素39
2.3.2 可實施模式的必要性40
2.4 SuperWebAnalytics.com的完整數(shù)據(jù)模型41
2.5 總結(jié)42
第3章 大數(shù)據(jù)的數(shù)據(jù)模型:示例44
3.1 為什么使用序列化框架44
3.2 Apache Thrift45
3.2.1 節(jié)點46
3.2.2 邊46
3.2.3 屬性47
3.2.4 把一切組合成數(shù)據(jù)對象47
3.2.5 模式演變48
3.3 序列化框架的局限性49
3.4 總結(jié)50
第4章 批處理層的數(shù)據(jù)存儲51
4.1 主數(shù)據(jù)集的存儲需求52
4.2 為批處理層選擇存儲方案53
4.2.1 使用鍵/值存儲主數(shù)據(jù)集53
4.2.2 分布式文件系統(tǒng)54
4.3 分布式文件系統(tǒng)是如何工作的54
4.4 使用分布式文件系統(tǒng)存儲主數(shù)據(jù)集56
4.5 垂直分區(qū)58
4.6 分布式文件系統(tǒng)的底層性質(zhì)58
4.7 在分布式文件系統(tǒng)上存儲SuperWebAnalytics.com的主數(shù)據(jù)集60
4.8 總結(jié)61
第5章 批處理層的數(shù)據(jù)存儲:示例62
5.1 使用HDFS62
5.1.1 小文件問題64
5.1.2 轉(zhuǎn)向更高層次的抽象64
5.2 使用Pail在批處理層存儲數(shù)據(jù)65
5.2.1 Pail基本操作66
5.2.2 序列化對象到Pail中67
5.2.3 使用Pail進行批處理操作69
5.2.4 使用Pail進行垂直分區(qū)69
5.2.5 Pail文件格式與壓縮71
5.2.6 Pail優(yōu)點的總結(jié)71
5.3 存儲SuperWebAnalytics.com的主數(shù)據(jù)集72
5.3.1 Thrift對象的結(jié)構(gòu)化Pail73
5.3.2 SuperWebAnalytics.com的基礎(chǔ)Pail74
5.3.3 用于垂直分區(qū)數(shù)據(jù)集的分片Pail75
5.4 總結(jié)78
第6章 批處理層79
6.1 啟發(fā)性示例80
6.1.1 給定時間范圍內(nèi)的頁面瀏覽量80
6.1.2 性別推理80
6.1.3 影響力分數(shù)81
6.2 批處理層上的計算82
6.3 重新計算算法與增量算法84
6.3.1 性能85
6.3.2 容忍人為錯誤86
6.3.3 算法的通用性86
6.3.4 選擇算法的風格87
6.4 批處理層中的可擴展性87
6.5 MapReduce:一種大數(shù)據(jù)計算的范式88
6.5.1 可擴展性89
6.5.2 容錯性91
6.5.3 MapReduce的通用性92
6.6 MapReduce的底層特性94
6.6.1 多步計算很怪異94
6.6.2 手動實現(xiàn)連接非常復雜94
6.6.3 邏輯和物理執(zhí)行緊密耦合96
6.7 管道圖—一種關(guān)于批處理計算的高級思維方式97
6.7.1 管道圖的概念97
6.7.2 通過MapReduce執(zhí)行管道圖101
6.7.3 合并聚合器101
6.7.4 管道圖示例102
6.8 總結(jié)103
第7章 批處理層:示例104
7.1 一個例證105
7.2 數(shù)據(jù)處理工具的常見陷阱106
7.2.1 自定義語言107
7.2.2 不良的可組合抽象107
7.3 JCascalog介紹108
7.3.1 JCascalog的數(shù)據(jù)模型109
7.3.2 JCascalog查詢的結(jié)構(gòu)110
7.3.3 查詢多個數(shù)據(jù)集111
7.3.4 分組和聚合器113
7.3.5 對一個查詢示例進行單步調(diào)試114
7.3.6 自定義謂詞操作117
7.4 組合121
7.4.1 合并子查詢122
7.4.2 動態(tài)創(chuàng)建子查詢123
7.4.3 謂詞宏125
7.4.4 動態(tài)創(chuàng)建謂詞宏128
7.5 總結(jié)130
第8章 批處理層示例:架構(gòu)和算法131
8.1 SuperWebAnalytics.com批處理層的設(shè)計132
8.1.1 所支持的查詢132
8.1.2 批處理視圖132
8.2 工作流概述135
8.3 獲取新數(shù)據(jù)137
8.4 URL規(guī)范化137
8.5 用戶標識符規(guī)范化138
8.6 頁面瀏覽去重142
8.7 計算批處理視圖142
8.7.1 給定時間范圍內(nèi)的頁面瀏覽量143
8.7.2 給定時間范圍內(nèi)的獨立訪客143
8.7.3 跳出率分析144
8.8 總結(jié)145
第9章 批處理層示例:實現(xiàn)147
9.1 出發(fā)點147
9.2 準備工作流148
9.3 獲取新數(shù)據(jù)149
9.4 URL規(guī)范化152
9.5 用戶標識符規(guī)范化153
9.6 頁面瀏覽去重159
9.7 計算批處理視圖159
9.7.1 給定時間范圍內(nèi)的頁面瀏覽量159
9.7.2 給定時間范圍內(nèi)的獨立訪客161
9.7.3 跳出率分析163
9.8 總結(jié)165
第二部分 服務(wù)層
第10章 服務(wù)層概述168
10.1 服務(wù)層的性能指標169
10.2 規(guī)范化/非規(guī)范化問題的服務(wù)層解決方案172
10.3 服務(wù)層數(shù)據(jù)庫的需求173
10.4 設(shè)計SuperWebAnalytics.com的服務(wù)層174
10.4.1 給定時間范圍內(nèi)的頁面瀏覽量175
10.4.2 給定時間范圍內(nèi)的獨立訪客175
10.4.3 跳出率分析176
10.5 對比全增量的解決方案177
10.5.1 給定時間范圍內(nèi)的獨立訪客的全增量方案177
10.5.2 與Lambda架構(gòu)解決方案的比較182
10.6 總結(jié)183
第11章 服務(wù)層:示例184
11.1 ElephantDB的基本概念184
11.1.1 ElephantDB中的視圖創(chuàng)建185
11.1.2 ElephantDB中的視圖服務(wù)185
11.1.3 使用ElephantDB186
11.2 創(chuàng)建SuperWebAnalytics.com的服務(wù)層188
11.2.1 給定時間范圍內(nèi)的頁面瀏覽量188
11.2.2 給定時間范圍內(nèi)的獨立訪客數(shù)量191
11.2.3 跳出率分析191
11.3 總結(jié)192
第三部分 速度層
第12章 實時視圖194
12.1 計算實時視圖195
12.2 存儲實時視圖197
12.2.1 最終一致性198
12.2.2 速度層中存儲的狀態(tài)總量198
12.3 增量計算的挑戰(zhàn)199
12.3.1 CAP原理的有效性199
12.3.2 CAP原理和增量算法之間復雜的相互作用201
12.4 異步更新與同步更新202
12.5 過期實時視圖203
12.6 總結(jié)205
第13章 實時視圖:示例206
13.1 Cassandra的數(shù)據(jù)模型206
13.2 使用Cassandra208
13.3 總結(jié)210
第14章 隊列和流處理211
14.1 隊列211
14.1.1 單消費者隊列212
14.1.2 多消費者隊列214
14.2 流處理214
14.2.1 隊列和工作節(jié)點215
14.2.2 隊列和工作節(jié)點的缺陷216
14.3 更高層次的一次一個的流處理217
14.3.1 Storm模型217
14.3.2 保證消息處理221
14.4 SuperWebAnalytics.com速度層223
14.5 總結(jié)226
第15章 隊列和流處理:示例227
15.1 使用Apache Storm定義拓撲結(jié)構(gòu)227
15.2 Apache Storm集群及其部署230
15.3 保證消息處理232
15.4 實現(xiàn)SuperWebAnalytics.com給定時間范圍內(nèi)的獨立訪客的速度層233
15.5 總結(jié)237
第16章 微批量流處理239
16.1 實現(xiàn)有且僅有一次語義240
16.1.1 強有序處理240
16.1.2 微批量流處理241
16.1.3 微批量流處理的拓撲結(jié)構(gòu)242
16.2 微批量流處理的核心概念244
16.3 微批量流處理的擴展管道圖245
16.4 完成SuperWebAnalytics.com的速度層246
16.4.1 給定時間范圍內(nèi)的頁面瀏覽量246
16.4.2 跳出率分析247
16.5 另一個跳出率分析示例251
16.6 總結(jié)252
第17章 微批量流處理:示例253
17.1 使用Trident253
17.2 完成SuperWebAnalytics.com的速度層257
17.2.1 給定時間范圍內(nèi)的頁面瀏覽量257
17.2.2 跳出率分析259
17.3 完全容錯、基于內(nèi)存及微批量處理265
17.4 總結(jié)266
第18章 深入Lambda架構(gòu)268
18.1 定義數(shù)據(jù)系統(tǒng)268
18.2 批處理層和服務(wù)層270
18.2.1 增量的批處理270
18.2.2 測量和優(yōu)化批處理層的資源使用276
18.3 速度層280
18.4 查詢層281
18.5 總結(jié)282

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號