出版信息
《大數據:從基礎理論到最佳實踐》是一本於2017年1月1日清華大學出版社出版的圖書,作者是祁偉、劉冰、常志軍、趙廷濤、高俊秀。
定價:59.80元
印次:1-1
ISBN:9787302457435
出版日期:2017.01.01
印刷日期:2017.01.10
內容簡介
本書側重於大數據的實踐性技術,系統地介紹了主流大數據平台及工具的安裝部署、管理維護和套用開發。平台和工具的選擇均為當前業界主流的開源產品,因此,對於讀者來說,有很強的可操作性。
本書涉及的開源技術包括:HDFS、MapReduce、YARN、Zookeeper、HBase、Hive、Sqoop、Storm、Kafka、Flume等。除介紹一般性的背景知識、安裝部署、管理維護和套用開發技術外,還特別注重案例實踐,重要的技術點以實際工作場景或案例為依託,使讀者能快速入門,參考案例動手實踐,通過具體深入的實踐,體會大數據的技術本質特徵,領略大數據技術帶來的創新理念,更好地理解和把握信息技術的發展趨勢。
本書主要內容包括以下幾大部分。
大數據存儲篇:以HDFS為基礎,介紹分散式檔案系統的原理、安裝、fs命令的使用、編程,介紹如何用HDFS實現,並通過HTTP調用。
大數據計算篇:以MapReduce、YARN為基礎,介紹分散式計算的原理、部署,以及編程案例。
非關係型資料庫篇:以HBase為基礎,重點介紹非關係型資料庫的優勢、原理、部署,以及命令行使用,編程案例,與Sqoop配合使用等。
大數據倉庫篇:以Hive、數據倉庫等為基礎,重點介紹數據的抽取、原理、部署、分析與編程。
大數據實時計算篇:以Storm、Kafka為基礎,介紹實時計算的架構、組成、使用與開發。
本書非常適合從事大數據技術開發與使用的初學者,以及從事大數據技術研發的企事業單位工程師學習和參考,也適合高校計算機相關專業的專科生、本科生和研究生學習使用。
作者簡介
祁偉:畢業於北京師範大學,目前擔任《中國教育信息化》雜誌社總編輯,具有超過20年的IT工作經驗,在網路路由、伺服器虛擬化、資料庫等方面有深入研究和豐富的實踐經驗。
劉冰:畢業於中國科學院計算技術研究所,數據中心架構師,從事虛擬化、監測與大數據分析等方面研究,曾與祁偉總編共同著有《雲計算:從基礎架構到最佳實踐》,現就職於教育部教育管理信息中心。
常志軍:畢業於中國科學院自動化研究所,大數據平台架構師,分散式系統研究人員。先後在搜狐暢遊、中國搜尋、Opera歐朋、中科院自動化所從事大數據領域的探索與研發工作。
趙廷濤:畢業於中國傳媒大學,現就職於科技部信息中心,有多年大數據存儲研發經驗,現從事數據中心管理運維工作,專注於虛擬化、套用系統建設等相關技術研究。
高俊秀:畢業於北京航空航天大學計算機學院,數據倉庫架構師,八年網際網路大數據從業經驗。歷任百度、豌豆莢、今日頭條的數據平台和數據倉庫核心研發和負責人,對數據在業務上發揮價值有深入的理解。
目 錄
大數據存儲篇
第1章 概述 1
1.1 什麼是大數據 2
1.2 大數據的技術轉型 3
1.3 數據分片 4
1.4 數據一致性 5
1.4.1 CAP原則 5
1.4.2 CAP與ACID 7
1.4.3 BASE原則 8
1.5 主流大數據技術 8
1.6 大數據職業方向 10
1.7 大數據實踐平台的搭建 10
1.7.1 初學者模式 10
1.7.2 物理集群模式 11
1.7.3 虛擬化集群模式 11
1.8 小結 12
第2章 HDFS檔案系統 13
2.1 HDFS概述 14
2.1.1 分散式檔案系統 14
2.1.2 HDFS介紹 16
2.2 HDFS的運行機制 18
2.2.1 HDFS的結構與組成 18
2.2.2 HDFS的數據操作 20
2.2.3 訪問許可權 22
2.2.4 通信協定簇 23
2.2.5 HDFS的高可用性 24
2.2.6 集中快取管理 25
2.2.7 日誌和檢查點 26
2.2.8 HDFS快照 28
2.3 HDFS的數據存儲 29
2.3.1 數據完整性 29
2.3.2 數據壓縮 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 小結 47
第3章 HDFS操作實踐 49
3.1 HDFS接口與編程 50
第3章HDFS操作實踐 49
3.1 HDFS接口與編程 50
3.1.1Shell命令 50
3.1.2Java接口操作 62
3.1.3WebHDFS 69
3.1.4其他接口 71
3.2 操作實踐 73
3.2.1 檔案操作 73
3.2.2 壓縮與解壓縮 77
3.3 小結 80
大數據計算篇
第4章YARN 81
4.1YARN概述 82
4.2YARN的主要組成模組 83
4.3YARN的整體設計 83
4.4容量調度器 84
4.4.1什麼是容量調度器 84
4.4.2容量調度器的特性 85
4.4.3配置RM使用容量調度器 85
4.5公平調度器(FairScheduler) 86
4.5.1什麼是公平調度器 86
4.5.2分級佇列 87
4.5.3公平調度器佇列的設定 87
4.6資源管理者(RM)重啟機制 90
4.6.1什麼是資源管理器重啟 90
4.6.2非工作保存RM重啟 90
4.6.3工作保存RM重啟 91
4.6.4RM重啟配置yarn-site.xml 91
4.7資源管理器的高可用性(RMHA) 92
4.7.1什麼是資源管理器的
高可用性 92
4.7.2自動故障轉移 92
4.7.3客戶端/套用管理器/節點
管理器的故障轉移 92
4.7.4部署RMHA 93
4.7.5配置例子 94
4.7.6管理員命令 95
4.8節點標籤 95
4.8.1節點標籤的特點 95
4.8.2節點標籤的屬性 95
4.8.3節點標籤的配置 96
4.8.4使用節點標籤的調度器配置 96
4.8.5節點標籤配置示例 97
4.8.6指定套用的節點標籤 97
4.8.7節點標籤的監控 98
4.9YARN編程 98
4.9.1什麼是YARN級別編程 98
4.9.2YARN的相關接口 99
4.9.3編程實踐 99
4.10YARN服務註冊 107
4.10.1為什麼需要服務註冊 107
4.10.2配置服務註冊 107
4.10.3安全選項 108
4.11小結 108
第5章MapReduce 109
5.1MapReduce概述 110
5.1.1HadoopMapReduce 110
5.1.2MapReduce的發展史 110
5.1.3MapReduce的使用場景 111
5.2 Key-Value結構的特點 111
5.2.1key的設計 111
5.2.2value的設計 112
5.3MapReduce的部署 112
5.3.1軟體準備 112
5.3.2配置檔案 113
5.3.3啟動YARN守護進程 113
5.4MapReduce的程式結構 113
5.4.1MR框架的輸入和輸出 114
5.4.2WordCount 114
5.5MapReduce的編程接口 116
5.5.1Mapper接口 117
5.5.2Reducer接口 117
5.5.3Partitioner(分區) 118
5.5.4Counter(計數器) 118
5.5.5job工作機理 118
5.5.6任務提交和監控(Job
SubmissionandMonitoring) 121
5.5.7任務的輔助檔案(Task
Side-EffectFiles) 123
5.5.8提交作業到佇列 123
5.5.9MR中的計數器(Counters) 123
5.5.10Profiling 123
5.5.11Debugging 124
5.5.12jobOutputs 124
5.5.13忽略壞記錄(Skipping
BadRecords) 124
5.6MapReduce的命令行 125
5.6.1概述 125
5.6.2用戶命令(UserCommands) 125
5.6.3管理員命令(Administration
Commands) 127
5.6.4YARN-MapReduce的部署 128
5.7WordCount的實現 129
5.8小結 136
非關係型資料庫篇
第6章使用HBase 137
6.1HBase基礎 138
6.1.1HBase是什麼 138
6.1.2HBase偽分散式部署 140
6.1.3服務的啟動與驗證 142
6.1.4HBaseShell測試 142
6.1.5Web測試 144
6.1.6服務的關閉 147
6.2HBase的架構原理 147
6.2.1組成架構 147
6.2.2數據模型 151
6.2.3物理存儲 153
6.3HBase的命令實踐 156
6.3.1概述 157
6.3.2命名空間 158
6.3.3表管理 160
6.4HBase的數據管理 166
6.4.1數據的添加 167
6.4.2數據的追加 168
6.4.3數據的獲取 169
6.4.4數據統計 172
6.4.5表的掃描 173
6.4.6數據的刪除 175
6.4.7表的重建 175
6.5HBase的集群管理 177
6.5.1集群部署 177
6.5.2自動化腳本 180
6.5.3許可權管理 182
6.5.4集群調度 184
6.5.5日誌分析 186
6.6小結 187
第7章HBase編程開發 189
7.1HBase的編程接口 190
7.1.1rest編程接口 190
7.1.2thrift接口 196
7.1.3JavaAPI接口 198
7.1.4JavaAPI示例 199
7.2表與命名空間的編程 202
7.2.1表的查看 203
7.2.2表的創建 206
7.2.3表的刪除 207
7.2.4表的修改 208
7.2.5命名空間 210
7.3數據編程 213
7.3.1數據的增加 214
7.3.2單行查詢 216
7.3.3集合查詢 217
7.3.4過濾器 219
7.3.5數據刪除 221
7.4集群與最佳化編程 222
7.4.1集群管理 222
7.4.2集群監測 224
7.4.3多表與表池 227
7.4.4批處理 230
7.4.5數據遷移 231
7.5小結 234
大數據倉庫篇
第8章數據倉庫概論 235
8.1初識數據倉庫 236
8.1.1什麼是數據倉庫 236
8.1.2數據倉庫與資料庫 237
8.1.3為什麼要有數據倉庫 239
8.2數據倉庫的核心概念 240
8.2.1數據平台 240
8.2.2數據產品 241
8.2.3商務智慧型(BI) 242
8.2.4元數據 242
8.2.5OLAP 242
8.2.6ETL 243
8.2.7數據質量 243
8.3數據倉庫中的數據內容劃分 243
8.3.1多個數據倉庫 243
8.3.2典型的數據倉庫分層 245
8.3.3數據集市 246
8.4OLAP 247
8.4.1定義 247
8.4.2維度建模 248
8.4.3事實表 250
8.4.4維度表 251
8.5ETL 251
8.5.1抽取 252
8.5.2轉換 252
8.5.3載入 254
8.5.4ETL元數據 255
8.5.5ETL工具 256
8.6調度和運行 256
8.6.1調度怎么工作 257
8.6.2需要考慮的其他方面 258
8.6.3簡易調度示例 259
8.7數據倉庫的架構 259
8.8數據倉庫的展望 260
8.8.1數據倉庫發展的階段性 260
8.8.2未來的數據倉庫 262
8.9小結 262
第9章Hive 263
9.1初識Hive 264
9.1.1Hive是什麼 264
9.1.2Hive的部署 264
9.1.3以MySQL作為Hive的
元資料庫 266
9.1.4Hive的體系結構 268
9.1.5Web界面展示 269
9.2Hive命令行接口 270
9.2.1啟動Hive命令行 270
9.2.2可用的命令 271
9.3Hive數據類型與常見的結構 271
9.3.1數據類型 271
9.3.2檔案的存儲結構 273
9.4HiveSQL 274
9.4.1數據定義語言DDL 274
9.4.2數據操縱語言DML 277
9.5Hive的自定義函式 283
9.5.1UDF 284
9.5.2UDAF 286
9.5.3UDTF 289
9.6Hive的高級使用 292
9.6.1視圖 292
9.6.2索引 293
9.6.3許可權 294
9.6.4Thrift服務 296
9.7使用Hive構建數據倉庫 298
9.7.1原始數據和結構 298
9.7.2數據需求和模型設計 300
9.7.3各層次數據的生成 301
9.8小結 302
大數據實時計算篇
第10章Storm實時系統 303
10.1大數據實時系統概述 304
10.2Kafka分散式訊息系統 305
10.2.1Kafka是什麼 305
10.2.2主題的工作原理 306
10.2.3分散式分區 307
10.2.4生產者、消費者 307
10.2.5數據保證 308
10.2.6Kafka系統的套用場景 308
10.2.7Kafka系統的部署 309
10.3Storm實時處理系統 316
10.3.1概述 316
10.3.2為什麼使用Storm 316
10.3.3Storm系統的特點 317
10.3.4Storm系統的工作機制 318
10.3.5Storm的分組方法 319
10.3.6Storm系統的組件 320
10.3.7搭建單點Storm系統 320
10.3.8查看StormUI 322
10.3.9搭建Storm集群 322
10.3.10Storm系統的操作實踐 323
10.3.11StormWordCount
(寫RDB) 324
10.3.12StormWordCount(從Kafka
讀取數據) 329
10.4小結 331
參考文獻 332