《大數(shù)據(jù):從基礎(chǔ)理論到*佳實踐》作者團隊有豐富的大數(shù)據(jù)規(guī)劃、開發(fā)、運營經(jīng)驗,多位作者成功架構(gòu)了國家部委、互聯(lián)網(wǎng)等大數(shù)據(jù)架構(gòu)與分析項目,實戰(zhàn)經(jīng)驗豐富。
理念先進,方便讀者全面了解大數(shù)據(jù)實踐應(yīng)用情況。
技術(shù)領(lǐng)先,采用的平臺均是業(yè)界的主流開源平臺。
案例豐富,提供翔實的實例與解決方案,供項目實施中參考。
《大數(shù)據(jù):從基礎(chǔ)理論到*佳實踐》側(cè)重于大數(shù)據(jù)的實踐性技術(shù),系統(tǒng)地介紹了主流大數(shù)據(jù)平臺及工具的安裝部署、管理維護和應(yīng)用開發(fā)。平臺和工具的選擇均為當前業(yè)界主流的開源產(chǎn)品,因此,對于讀者來說,有很強的可操作性。
本書涉及的開源技術(shù)包括:HDFS、MapReduce、YARN、Zookeeper、HBase、Hive、Sqoop、Storm、Kafka、Flume等。除介紹一般性的背景知識、安裝部署、管理維護和應(yīng)用開發(fā)技術(shù)外,還特別注重案例實踐,重要的技術(shù)點以實際工作場景或案例為依托,使讀者能快速入門,參考案例動手實踐,通過具體深入的實踐,體會大數(shù)據(jù)的技術(shù)本質(zhì)特征,領(lǐng)略大數(shù)據(jù)技術(shù)帶來的創(chuàng)新理念,更好地理解和把握信息技術(shù)的發(fā)展趨勢。
本書主要內(nèi)容包括以下幾大部分。
大數(shù)據(jù)存儲篇:以HDFS為基礎(chǔ),介紹分布式文件系統(tǒng)的原理、安裝、fs命令的使用、編程,介紹如何用HDFS實現(xiàn),并通過HTTP調(diào)用。
大數(shù)據(jù)計算篇:以MapReduce、YARN為基礎(chǔ),介紹分布式計算的原理、部署,以及編程案例。
非關(guān)系型數(shù)據(jù)庫篇:以HBase為基礎(chǔ),重點介紹非關(guān)系型數(shù)據(jù)庫的優(yōu)勢、原理、部署,以及命令行使用,編程案例,與Sqoop配合使用等。
大數(shù)據(jù)倉庫篇:以Hive、數(shù)據(jù)倉庫等為基礎(chǔ),重點介紹數(shù)據(jù)的抽取、原理、部署、分析與編程。
大數(shù)據(jù)實時計算篇:以Storm、Kafka為基礎(chǔ),介紹實時計算的架構(gòu)、組成、使用與開發(fā)。
本書非常適合從事大數(shù)據(jù)技術(shù)開發(fā)與使用的初學(xué)者,以及從事大數(shù)據(jù)技術(shù)研發(fā)的企事業(yè)單位工程師學(xué)習(xí)和參考,也適合高校計算機相關(guān)專業(yè)的??粕?、本科生和研究生學(xué)習(xí)使用。
祁偉,畢業(yè)于北京師范大學(xué),目前擔任《中國教育信息化》雜志社總編輯,具有超過20年的IT工作經(jīng)驗,在網(wǎng)絡(luò)路由、服務(wù)器虛擬化、數(shù)據(jù)庫等方面有深入研究和豐富的實踐經(jīng)驗。
劉冰,畢業(yè)于中國科學(xué)院計算技術(shù)研究所,數(shù)據(jù)中心架構(gòu)師,從事虛擬化、監(jiān)測與大數(shù)據(jù)分析等方面研究,曾與祁偉總編共同著有《云計算:從基礎(chǔ)架構(gòu)到*佳實踐》,現(xiàn)就職于教育部教育管理信息中心。
常志軍,畢業(yè)于中國科學(xué)院自動化研究所,大數(shù)據(jù)平臺架構(gòu)師,分布式系統(tǒng)研究人員。先后在搜狐暢游、中國搜索、Opera歐朋、中科院自動化所從事大數(shù)據(jù)領(lǐng)域的探索與研發(fā)工作。
趙廷濤,畢業(yè)于中國傳媒大學(xué),現(xiàn)就職于科技部信息中心,有多年大數(shù)據(jù)存儲研發(fā)經(jīng)驗,現(xiàn)從事數(shù)據(jù)中心管理運維工作,專注于虛擬化、應(yīng)用系統(tǒng)建設(shè)等相關(guān)技術(shù)研究。
高俊秀,畢業(yè)于北京航空航天大學(xué)計算機學(xué)院,數(shù)據(jù)倉庫架構(gòu)師,八年互聯(lián)網(wǎng)大數(shù)據(jù)從業(yè)經(jīng)驗。歷任百度、豌豆莢、今日頭條的數(shù)據(jù)平臺和數(shù)據(jù)倉庫核心研發(fā)和負責(zé)人,對數(shù)據(jù)在業(yè)務(wù)上發(fā)揮價值有深入的理解。
大數(shù)據(jù)存儲篇
第1章 概述 1
1.1 什么是大數(shù)據(jù) 2
1.2 大數(shù)據(jù)的技術(shù)轉(zhuǎn)型 3
1.3 數(shù)據(jù)分片 4
1.4 數(shù)據(jù)一致性 5
1.4.1 CAP原則 5
1.4.2 CAP與ACID 7
1.4.3 BASE原則 8
1.5 主流大數(shù)據(jù)技術(shù) 8
1.6 大數(shù)據(jù)職業(yè)方向 10
1.7 大數(shù)據(jù)實踐平臺的搭建 10
1.7.1 初學(xué)者模式 10
1.7.2 物理集群模式 11
1.7.3 虛擬化集群模式 11
1.8 小結(jié) 12
第2章 HDFS文件系統(tǒng) 13
2.1 HDFS概述 14
2.1.1 分布式文件系統(tǒng) 14
2.1.2 HDFS介紹 16
2.2 HDFS的運行機制 18
2.2.1 HDFS的結(jié)構(gòu)與組成 18
2.2.2 HDFS的數(shù)據(jù)操作 20
2.2.3 訪問權(quán)限 22
2.2.4 通信協(xié)議簇 23
2.2.5 HDFS的高可用性 24
2.2.6 集中緩存管理 25
2.2.7 日志和檢查點 26
2.2.8 HDFS快照 28
2.3 HDFS的數(shù)據(jù)存儲 29
2.3.1 數(shù)據(jù)完整性 29
2.3.2 數(shù)據(jù)壓縮 30
2.3.3 序列化 32
2.4 HDFS的安裝和配置 34
2.4.1 Hadoop的安裝 34
2.4.2 HDFS的配置 40
2.4.3 啟動HDFS 45
2.5 小結(jié) 47
第3章 HDFS操作實踐 49
3.1 HDFS接口與編程 50
3.1.1 Shell命令 50
3.1.2 Java接口操作 62
3.1.3 WebHDFS 69
3.1.4 其他接口 71
3.2 操作實踐 73
3.2.1 文件操作 73
3.2.2 壓縮與解壓縮 77
3.3 小結(jié) 80
大數(shù)據(jù)計算篇
第4章 YARN 81
4.1 YARN概述 82
4.2 YARN的主要組成模塊 83
4.3 YARN的整體設(shè)計 83
4.4 容量調(diào)度器 84
4.4.1 什么是容量調(diào)度器 84
4.4.2 容量調(diào)度器的特性 85
4.4.3 配置RM使用容量調(diào)度器 85
4.5 公平調(diào)度器(Fair Scheduler) 86
4.5.1 什么是公平調(diào)度器 86
4.5.2 分級隊列 87
4.5.3 公平調(diào)度器隊列的設(shè)置 87
4.6 資源管理者(RM)重啟機制 90
4.6.1 什么是資源管理器重啟 90
4.6.2 非工作保存RM重啟 90
4.6.3 工作保存RM重啟 91
4.6.4 RM重啟配置yarn-site.xml 91
4.7 資源管理器的高可用性(RM HA) 92
4.7.1 什么是資源管理器的
高可用性 92
4.7.2 自動故障轉(zhuǎn)移 92
4.7.3 客戶端/應(yīng)用管理器/節(jié)點
管理器的故障轉(zhuǎn)移 92
4.7.4 部署RM HA 93
4.7.5 配置例子 94
4.7.6 管理員命令 95
4.8 節(jié)點標簽 95
4.8.1 節(jié)點標簽的特點 95
4.8.2 節(jié)點標簽的屬性 95
4.8.3 節(jié)點標簽的配置 96
4.8.4 使用節(jié)點標簽的調(diào)度器配置 96
4.8.5 節(jié)點標簽配置示例 97
4.8.6 指定應(yīng)用的節(jié)點標簽 97
4.8.7 節(jié)點標簽的監(jiān)控 98
4.9 YARN編程 98
4.9.1 什么是YARN級別編程 98
4.9.2 YARN的相關(guān)接口 99
4.9.3 編程實踐 99
4.10 YARN服務(wù)注冊 107
4.10.1 為什么需要服務(wù)注冊 107
4.10.2 配置服務(wù)注冊 107
4.10.3 安全選項 108
4.11 小結(jié) 108
第5章 MapReduce 109
5.1 MapReduce概述 110
5.1.1 Hadoop MapReduce 110
5.1.2 MapReduce的發(fā)展史 110
5.1.3 MapReduce的使用場景 111
5.2 Key-Value結(jié)構(gòu)的特點 111
5.2.1 key的設(shè)計 111
5.2.2 value的設(shè)計 112
5.3 MapReduce的部署 112
5.3.1 軟件準備 112
5.3.2 配置文件 113
5.3.3 啟動YARN守護進程 113
5.4 MapReduce的程序結(jié)構(gòu) 113
5.4.1 MR框架的輸入和輸出 114
5.4.2 WordCount 114
5.5 MapReduce的編程接口 116
5.5.1 Mapper接口 117
5.5.2 Reducer接口 117
5.5.3 Partitioner(分區(qū)) 118
5.5.4 Counter(計數(shù)器) 118
5.5.5 job工作機理 118
5.5.6 任務(wù)提交和監(jiān)控(Job
Submission and Monitoring) 121
5.5.7 任務(wù)的輔助文件(Task
Side-Effect Files) 123
5.5.8 提交作業(yè)到隊列 123
5.5.9 MR中的計數(shù)器(Counters) 123
5.5.10 Profiling 123
5.5.11 Debugging 124
5.5.12 job Outputs 124
5.5.13 忽略壞記錄(Skipping
Bad Records) 124
5.6 MapReduce的命令行 125
5.6.1 概述 125
5.6.2 用戶命令(User Commands) 125
5.6.3 管理員命令(Administration
Commands) 127
5.6.4 YARN-MapReduce的部署 128
5.7 WordCount的實現(xiàn) 129
5.8 小結(jié) 136
非關(guān)系型數(shù)據(jù)庫篇
第6章 使用HBase 137
6.1 HBase基礎(chǔ) 138
6.1.1 HBase是什么 138
6.1.2 HBase偽分布式部署 140
6.1.3 服務(wù)的啟動與驗證 142
6.1.4 HBase Shell測試 142
6.1.5 Web測試 144
6.1.6 服務(wù)的關(guān)閉 147
6.2 HBase的架構(gòu)原理 147
6.2.1 組成架構(gòu) 147
6.2.2 數(shù)據(jù)模型 151
6.2.3 物理存儲 153
6.3 HBase的命令實踐 156
6.3.1 概述 157
6.3.2 命名空間 158
6.3.3 表管理 160
6.4 HBase的數(shù)據(jù)管理 166
6.4.1 數(shù)據(jù)的添加 167
6.4.2 數(shù)據(jù)的追加 168
6.4.3 數(shù)據(jù)的獲取 169
6.4.4 數(shù)據(jù)統(tǒng)計 172
6.4.5 表的掃描 173
6.4.6 數(shù)據(jù)的刪除 175
6.4.7 表的重建 175
6.5 HBase的集群管理 177
6.5.1 集群部署 177
6.5.2 自動化腳本 180
6.5.3 權(quán)限管理 182
6.5.4 集群調(diào)度 184
6.5.5 日志分析 186
6.6 小結(jié) 187
第7章 HBase編程開發(fā) 189
7.1 HBase的編程接口 190
7.1.1 rest編程接口 190
7.1.2 thrift接口 196
7.1.3 Java API接口 198
7.1.4 Java API示例 199
7.2 表與命名空間的編程 202
7.2.1 表的查看 203
7.2.2 表的創(chuàng)建 206
7.2.3 表的刪除 207
7.2.4 表的修改 208
7.2.5 命名空間 210
7.3 數(shù)據(jù)編程 213
7.3.1 數(shù)據(jù)的增加 214
7.3.2 單行查詢 216
7.3.3 集合查詢 217
7.3.4 過濾器 219
7.3.5 數(shù)據(jù)刪除 221
7.4 集群與優(yōu)化編程 222
7.4.1 集群管理 222
7.4.2 集群監(jiān)測 224
7.4.3 多表與表池 227
7.4.4 批處理 230
7.4.5 數(shù)據(jù)遷移 231
7.5 小結(jié) 234
大數(shù)據(jù)倉庫篇
第8章 數(shù)據(jù)倉庫概論 235
第9章 Hive 263
大數(shù)據(jù)實時計算篇
第10章 Storm實時系統(tǒng) 303