大數據技術原理與應用 ——概念、存儲、處理、 分析與應用(第4版)
林子雨
- 出版商: 人民郵電
- 出版日期: 2024-09-01
- 定價: $390
- 售價: 8.5 折 $332
- 語言: 簡體中文
- 頁數: 298
- ISBN: 7115641811
- ISBN-13: 9787115641816
-
相關分類:
大數據 Big-data
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書系統介紹大數據的相關知識,分為大數據基礎篇、大數據存儲與管理篇、大數據處理與分析篇、大數據應用篇。本書共14章,內容包括大數據概述、大數據處理架構Hadoop、分佈式文件系統HDFS、分佈式數據庫HBase、NoSQL數據庫、雲數據庫、MapReduce、Hadoop再探討、數據倉庫Hive、Spark、流計算、Flink、圖計算、大數據應用等。本書在與HDFS、HBase、MapReduce、Hive、Spark和Flink等相關的章中安排了入門級的實驗,以幫助讀者更好地學習和掌握大數據的關鍵技術。
本書可以作為高等院校大數據、電腦、信息管理等相關專業的大數據課程教材,也可供相關技術人員參考。
作者簡介
林子雨(1978-),男,博士(毕业于北京大学),国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。厦门大学2013年度、2017年度和2020年度奖教金获得者,获评“厦门大学2019年度本科教学示范岗”,入选“2021年高校计算机专业优秀教师奖励计划”。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1500万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”、“2020年国家级线上一流本科课程”和“2021年福建省线上线下混合一流本科课程”,主持的课程《Spark编程基础》获评“2020年福建省线上一流本科课程”。
目錄大綱
第 1篇 大數據基礎
第 1章 大數據概述 2
1.1 大數據時代 2
1.1.1 第三次信息化浪潮 2
1.1.2 信息科技為大數據時代提供技術支撐 3
1.1.3 數據產生方式的變革促成大數據時代的到來 4
1.1.4 大數據的發展歷程 5
1.2 什麽是大數據 7
1.2.1 數據量大 7
1.2.2 數據類型繁多 8
1.2.3 處理速度快 9
1.2.4 價值密度低 9
1.3 大數據的影響 10
1.3.1 大數據對科學研究的影響 10
1.3.2 大數據對思維方式的影響 11
1.3.3 大數據對社會發展的影響 12
1.3.4 大數據對就業市場的影響 13
1.3.5 大數據對人才培養的影響 13
1.4 大數據的應用 14
1.4.1 大數據在各個領域的應用 15
1.4.2 大數據應用的3個層次 16
1.5 大數據關鍵技術 17
1.6 大數據計算模式 18
1.6.1 批處理計算 18
1.6.2 流計算 18
1.6.3 圖計算 19
1.6.4 查詢分析計算 19
1.7 大數據產業 19
1.8 大數據與雲計算、物聯網 21
1.8.1 雲計算 21
1.8.2 物聯網 24
1.8.3 大數據與雲計算、物聯網的關系 28
1.9 本章小結 29
1.10 習題 30
第 2章 大數據處理架構Hadoop 31
2.1 Hadoop概述 31
2.1.1 Hadoop簡介 31
2.1.2 Hadoop的發展簡史 31
2.1.3 Hadoop的特性 32
2.1.4 Hadoop的應用現狀 32
2.1.5 Hadoop的版本 33
2.2 Hadoop生態系統 33
2.2.1 HDFS 34
2.2.2 HBase 34
2.2.3 MapReduce 34
2.2.4 Hive 34
2.2.5 Pig 35
2.2.6 Mahout 35
2.2.7 ZooKeeper 35
2.2.8 Flume 35
2.2.9 Kafka 35
2.2.10 Ambari 35
2.3 Hadoop的安裝與使用 36
2.3.1 創建hadoop用戶 36
2.3.2 更新apt和安裝Vim編輯器 37
2.3.3 安裝SSH和配置SSH無密碼登錄 37
2.3.4 安裝Java環境 37
2.3.5 安裝單機Hadoop 38
2.3.6 Hadoop偽分佈式安裝 39
2.4 本章小結 41
2.5 習題 42
實驗1 熟悉常用的Linux操作和Hadoop操作 42
第 2篇 大數據存儲與管理
第3章 分佈式文件系統HDFS 48
3.1 分佈式文件系統 48
3.1.1 電腦集群的基本架構 48
3.1.2 分佈式文件系統的結構 49
3.1.3 分佈式文件系統的設計需求 50
3.2 HDFS簡介 50
3.3 HDFS的相關概念 51
3.3.1 數據塊 52
3.3.2 名稱節點和數據節點 52
3.3.3 第二名稱節點 53
3.4 HDFS體系結構 54
3.4.1 HDFS概述 54
3.4.2 HDFS命名空間管理 55
3.4.3 通信協議 56
3.4.4 客戶端 56
3.4.5 HDFS體系結構的局限性 56
3.5 HDFS的存儲原理 56
3.5.1 數據的冗餘存儲 56
3.5.2 數據存取策略 57
3.5.3 數據錯誤與恢復 58
3.6 HDFS的數據讀寫過程 59
3.6.1 讀數據的過程 59
3.6.2 寫數據的過程 60
3.7 HDFS編程實踐 61
3.7.1 HDFS常用命令 61
3.7.2 HDFS的Web頁面 63
3.7.3 HDFS常用Java API及應用實例 64
3.8 本章小結 67
3.9 習題 67
實驗2 熟悉常用的HDFS操作 68
第4章 分佈式數據庫HBase 70
4.1 HBase概述 70
4.1.1 從BigTable說起 70
4.1.2 HBase簡介 70
4.1.3 HBase與傳統關系數據庫的對比分析 71
4.2 HBase訪問接口 72
4.3 HBase數據模型 73
4.3.1 數據模型概述 73
4.3.2 數據模型的相關概念 73
4.3.3 數據坐標 74
4.3.4 概念視圖 75
4.3.5 物理視圖 75
4.3.6 面向列的存儲 76
4.4 HBase的實現原理 78
4.4.1 HBase的功能組件 78
4.4.2 表和Region 79
4.4.3 Region的定位 79
4.5 HBase運行機制 81
4.5.1 HBase的系統架構 81
4.5.2 Region服務器的工作原理 83
4.5.3 Store的工作原理 84
4.5.4 HLog文件的工作原理 85
4.6 HBase編程實踐 85
4.6.1 HBase常用的Shell命令 86
4.6.2 HBase常用的Java API及應用實例 88
4.7 本章小結 98
4.8 習題 99
實驗3 熟悉常用的HBase操作 99
第5章 NoSQL數據庫 102
5.1 NoSQL數據庫簡介 102
5.2 NoSQL數據庫興起的原因 103
5.2.1 關系數據庫無法滿足Web 2.0的需求 103
5.2.2 關系數據庫的關鍵特性在Web 2.0時代成為“雞肋” 104
5.3 NoSQL數據庫與關系數據庫的簡單比較 105
5.4 NoSQL數據庫的四大類型 106
5.4.1 鍵值數據庫 107
5.4.2 列族數據庫 108
5.4.3 文檔數據庫 108
5.4.4 圖數據庫 109
5.5 NoSQL數據庫的三大基石 109
5.5.1 第 一大基石:CAP 109
5.5.2 第二大基石:BASE 111
5.5.3 第三大基石:最終一致性 113
5.6 從NoSQL數據庫到NewSQL數據庫 113
5.7 本章小結 115
5.8 習題 115
實驗4 NoSQL數據庫和關系數據庫的操作比較 115
第6章 雲數據庫 119
6.1 雲數據庫概述 119
6.1.1 雲計算是雲數據庫興起的基礎 119
6.1.2 雲數據庫的概念 120
6.1.3 雲數據庫的特性 121
6.1.4 雲數據庫是個性化數據存儲需求的理想選擇 123
6.1.5 雲數據庫與其他數據庫的關系 123
6.2 雲數據庫產品 124
6.2.1 主流雲數據庫廠商簡介 124
6.2.2 亞馬遜的雲數據庫產品 125
6.2.3 谷歌的雲數據庫產品 125
6.2.4 微軟的雲數據庫產品 125
6.2.5 其他雲數據庫產品 126
6.3 雲數據庫系統架構 127
6.3.1 UMP系統概述 127
6.3.2 UMP系統架構 127
6.3.3 UMP系統功能 130
6.4 本章小結 132
6.5 習題 132
第3篇 大數據處理與分析
第7章 MapReduce 134
7.1 MapReduce概述 134
7.1.1 分佈式並行編程 134
7.1.2 MapReduce模型簡介 135
7.1.3 Map和Reduce函數 135
7.2 MapReduce的工作流程 136
7.2.1 MapReduce工作流程概述 136
7.2.2 MapReduce工作流程的各個執行階段 137
7.2.3 Shuffle過程詳解 138
7.3 實例分析:WordCount 141
7.3.1 WordCount的程序任務 141
7.3.2 WordCount的設計思路 141
7.3.3 WordCount的具體執行過程 142
7.3.4 一個WordCount執行過程的實例 143
7.4 MapReduce的具體應用 144
7.4.1 關系代數運算 144
7.4.2 分組與聚合運算 146
7.4.3 矩陣-向量乘法 146
7.4.4 矩陣乘法 146
7.5 MapReduce編程實踐 147
7.5.1 任務要求 147
7.5.2 編寫Map處理邏輯 148
7.5.3 編寫Reduce處理邏輯 149
7.5.4 編寫main函數 149
7.5.5 編譯打包代碼以及運行程序 150
7.6 本章小結 153
7.7 習題 153
實驗5 MapReduce初級編程實踐 154
第8章 Hadoop再探討 157
8.1 Hadoop的優化 157
8.1.1 Hadoop的局限與不足 157
8.1.2 針對Hadoop的改進與提升 158
8.2 HDFS 2.0的新特性 158
8.2.1 HDFS HA 158
8.2.2 HDFS聯邦 160
8.3 新一代資源調度管理框架YARN 161
8.3.1 MapReduce 1.0的缺陷 162
8.3.2 YARN設計思路 162
8.3.3 YARN體系結構 163
8.3.4 YARN工作流程 165
8.3.5 YARN框架與MapReduce 1.0框架的對比分析 166
8.3.6 YARN的發展目標 167
8.4 本章小結 168
8.5 習題 168
第9章 數據倉庫Hive 169
9.1 數據倉庫的概念 169
9.2 數據湖 171
9.2.1 數據湖的概念 171
9.2.2 數據湖與數據倉庫的區別 172
9.2.3 數據湖能解決的企業問題 173
9.3 湖倉一體 173
9.4 數據倉庫Hive概述 174
9.4.1 傳統數據倉庫面臨的挑戰 174
9.4.2 Hive簡介 175
9.4.3 Hive與Hadoop生態系統中其他組件的關系 175
9.4.4 Hive與傳統數據庫的對比分析 176
9.4.5 Hive在企業中的部署和應用 176
9.5 Hive系統架構 178
9.6 Hive工作原理 178
9.6.1 SQL語句轉換成MapReduce作業的基本原理 179
9.6.2 SQL查詢轉換成MapReduce作業的過程 180
9.7 Hive HA基本原理 181
9.8 Impala 182
9.8.1 Impala簡介 182
9.8.2 Impala的系統架構 183
9.8.3 Impala查詢的執行過程 183
9.8.4 Impala與Hive的比較 184
9.9 Hive編程實踐 185
9.9.1 Hive的數據類型 185
9.9.2 Hive的基本操作 186
9.9.3 Hive應用實例:WordCount 189
9.9.4 Hive編程的優勢 189
9.10 本章小結 190
9.11 習題 190
實驗6 熟悉Hive的基本操作 191
第 10章 Spark 193
10.1 Spark概述 193
10.1.1 Spark簡介 193
10.1.2 Scala簡介 194
10.1.3 Spark與Hadoop的對比 194
10.2 Spark生態系統 196
10.3 Spark運行架構 198
10.3.1 基本概念 198
10.3.2 架構設計 198
10.3.3 Spark運行基本流程 199
10.3.4 RDD的設計與運行原理 200
10.4 Spark的部署模式和應用方式 209
10.4.1 Spark的部署模式 209
10.4.2 從“Hadoop+Storm”架構轉向Spark架構 210
10.4.3 Hadoop和Spark的統一部署 211
10.5 Spark編程實踐 212
10.5.1 啟動Spark Shell 212
10.5.2 RDD基本操作 212
10.5.3 Spark應用程序 217
10.6 本章小結 221
10.7 習題 222
實驗7 Spark初級編程實踐 222
第 11章 流計算 225
11.1 流計算概述 225
11.1.1 靜態數據和流數據 225
11.1.2 批量計算和實時計算 226
11.1.3 流計算的概念 226
11.1.4 流計算與Hadoop 227
11.1.5 流計算框架與平臺 227
11.2 流計算的處理流程 228
11.2.1 概述 228
11.2.2 數據實時採集 229
11.2.3 數據實時計算 229
11.2.4 實時查詢服務 229
11.3 流計算的應用場景 230
11.3.1 應用場景1:實時分析 230
11.3.2 應用場景2:實時交通 231
11.4 流計算框架Storm 231
11.5 流計算框架Spark Streaming 232
11.6 流處理框架Structured Streaming 233
11.6.1 Structured Streaming簡介 233
11.6.2 Structured Streaming的關鍵思想 233
11.6.3 Structured Streaming的兩種處理模型 234
11.7 流計算框架Flink 235
11.8 本章小結 236
11.9 習題 236
第 12章 Flink 237
12.1 Flink簡介 237
12.2 為什麽選擇Flink 237
12.2.1 傳統數據處理架構 238
12.2.2 大數據Lambda架構 238
12.2.3 流處理架構 239
12.2.4 Flink是理想的流計算框架 240
12.2.5 Flink的優勢 240
12.3 Flink典型應用場景 241
12.3.1 事件驅動型應用 241
12.3.2 數據分析應用 242
12.3.3 數據流水線應用 243
12.4 Flink核心組件棧 244
12.5 Flink體系架構 244
12.6 Flink編程模型 246
12.7 Flink編程實踐 246
12.7.1 安裝Flink 246
12.7.2 編程實現WordCount程序 248
12.8 本章小結 252
12.9 習題 252
實驗8 Flink初級編程實踐 253
第 13章 圖計算 254
13.1 圖計算簡介 254
13.1.1 傳統圖計算解決方案的不足之處 254
13.1.2 通用圖計算軟件 255
13.2 Pregel簡介 256
13.3 Pregel圖計算模型 256
13.3.1 有向圖和頂點 256
13.3.2 頂點之間的消息傳遞 256
13.3.3 Pregel計算過程 257
13.3.4 Pregel計算過程的實例 258
13.4 Pregel的C++ API 260
13.4.1 消息傳遞機制 261
13.4.2 Combiner 261
13.4.3 Aggregator 262
13.4.4 拓撲改變 262
13.4.5 輸入和輸出 262
13.5 Pregel的體系結構 263
13.5.1 Pregel的執行過程 263
13.5.2 容錯性 264
13.5.3 Worker 265
13.5.4 Master 265
13.5.5 Aggregator 266
13.6 Pregel的應用實例 266
13.6.1 單源最短路徑問題 266
13.6.2 二分匹配問題 267
13.7 Pregel和MapReduce實現PageRank算法的對比 268
13.7.1 PageRank算法 269
13.7.2 PageRank算法在Pregel中的實現 269
13.7.3 PageRank算法在MapReduce中的實現 270
13.7.4 PageRank算法在Pregel 和MapReduce中實現方式的比較 272
13.8 本章小結 272
13.9 習題 273
第4篇 大數據應用
第 14章 大數據應用 276
14.1 大數據在互聯網領域的應用 276
14.2 大數據在生物醫學領域的應用 277
14.2.1 流行病預測 277
14.2.2 智慧醫療 278
14.2.3 生物信息學 279
14.3 大數據在物流領域的應用 279
14.3.1 智能物流的概念 280
14.3.2 大數據是智能物流的關鍵 280
14.3.3 中國智能物流骨乾網—菜鳥 280
14.4 大數據在城市管理領域的應用 281
14.4.1 智能交通 281
14.4.2 環保監測 282
14.4.3 城市規劃 282
14.4.4 安防 283
14.5 大數據在金融領域的應用 283
14.5.1 高頻交易 284
14.5.2 市場情緒分析 284
14.5.3 信貸風險分析 284
14.5.4 大數據徵信 285
14.6 大數據在汽車領域的應用 286
14.7 大數據在零售領域的應用 286
14.7.1 發現關聯購買行為 286
14.7.2 客戶群體細分 287
14.7.3 供應鏈管理 288
14.8 大數據在餐飲領域的應用 288
14.8.1 餐飲領域擁抱大數據 288
14.8.2 餐飲O2O 288
14.9 大數據在電信領域的應用 289
14.10 大數據在能源領域的應用 290
14.11 大數據在體育和娛樂領域的應用 291
14.11.1 訓練球隊 291
14.11.2 投拍影視作品 291
14.11.3 預測比賽結果 292
14.12 大數據在安全領域的應用 292
14.12.1 “棱鏡門”事件 292
14.12.2 應用大數據技術防禦網絡攻擊 293
14.12.3 應用大數據工具預防犯罪 293
14.13 大數據在日常生活中的應用 294
14.14 本章小結 295
14.15 習題 296
參考文獻 297