Hadoop技術原理與案例教程(微課版)
韓玉民 郭麗
相關主題
商品描述
本書系統地介紹Hadoop技術原理與應用。本書分為4篇,第一篇為分佈式存儲與計算基礎,第二篇為數據倉庫Hive,第三篇為非關系型分佈式數據庫HBase,第四篇為綜合案例。本書共14章,包括大數據技術基礎、Hadoop簡介、Hadoop分佈式文件系統、 Hadoop分佈式計算系統、Hadoop資源管理器Yarn、Hadoop案例開發、Hive原理與應用、Hive數據定義、Hive數據分析基礎、Hive數據分析案例、HBase基礎知識、HBase原理與架構、HBase案例開發、綜合案例等。
本書原理與實踐並重,前3篇每章都有基本案例和課後習題,以及相應的綜合應用案例,第四篇是總結性的綜合案例,以便讀者能夠深入理解原理並培養相應的工程實踐能力。
本書可作為高等院校大數據、電腦、信息處理等相關專業的大數據課程教材,也可作為大數據等相關技術人員的培訓教材。
作者簡介
韩玉民,长期从事计算机教育与软件研发,担任中原工学院软件学院教学副院长十多年,创新教学理念,具有丰富的专业建设、课程与教材建设、教研教改经验。软件工程专业入选国家一流本科专业建设点。 主持、参与完成省级以上教研项目多项,获省级以上教学成果奖励四项,一项获2021年度河南省教学成果特等奖,并入选国家级2022年教学成果奖推荐名单。 主编、副主编专业教材12部,获得首届河南省教材建设二等奖一项
目錄大綱
第一篇 分佈式存儲與計算基礎
第1章 大數據基礎
1.1 數據、信息和知識 2
1.2 大數據 3
1.2.1 大數據的發展歷程 3
1.2.2 大數據的定義 5
1.3 數據分析流程 7
1.3.1 確定數據分析目標 7
1.3.2 數據採集 7
1.3.3 數據預處理 10
1.3.4 數據分析 11
1.4 大數據技術生態體系 13
1.5 大數據應用場景 17
1.5.1 基於大數據的電子商務 18
1.5.2 能源大數據體系建設 18
1.5.3 交通大數據體系建設 19
1.5.4 政務大數據體系建設 20
1.5.5 基於大數據的人口遷徙 21
1.5.6 農業大數據體系建設 21
1.6 本章小結 23
習題 23
第2章 Hadoop簡介
2.1 Hadoop概述 25
2.1.1 起源 26
2.1.2 Hadoop發行版本 26
2.1.3 Hadoop架構變遷 27
2.1.4 Hadoop特點 27
2.2 Hadoop“生態圈” 28
2.3 Hadoop核心架構 29
2.3.1 HDFS 29
2.3.2 MapReduce 29
2.3.3 Yarn 30
2.4 Hadoop運行模式 30
2.4.1 本地模式 30
2.4.2 偽分佈式模式 30
2.4.3 完全分佈式模式 31
2.5 Hadoop集群搭建 31
2.5.1 集群規劃 31
2.5.2 基本軟件的安裝 32
2.5.3 完全分佈式集群的搭建 33
2.6 常見問題及解決方案 46
2.7 本章小結 47
習題 47
第3章 Hadoop分佈式文件系統
3.1 HDFS概述 50
3.1.1 文件系統 50
3.1.2 傳統文件系統 50
3.1.3 HDFS的引入 51
3.1.4 HDFS的設計目標 51
3.1.5 HDFS的使用場景 52
3.1.6 HDFS的局限性 52
3.2 HDFS的技術架構 53
3.2.1 分塊存儲 53
3.2.2 副本機制 55
3.2.3 NameNode 55
3.2.4 DataNode 56
3.2.5 SecondaryNameNode 57
3.2.6 BackupNode 58
3.2.7 HDFS寫入數據流程 58
3.2.8 HDFS讀取數據流程 59
3.3 HDFS的Shell操作 60
3.3.1 基本命令 60
3.3.2 上傳命令 61
3.3.3 下載命令 61
3.3.4 高級操作 61
3.4 HDFS的API實戰開發 62
3.4.1 環境介紹 62
3.4.2 pom.xml配置說明 62
3.4.3 HDFS操作 63
3.5 HDFS核心解密 65
3.5.1 再談NameNode 65
3.5.2 節點的服役 67
3.5.3 節點的退役 68
3.5.4 DataNode多目錄的配置 69
3.6 常見問題及解決方案 69
3.7 本章小結 70
習題 70
第4章 Hadoop分佈式計算系統
4.1 MapReduce概述 74
4.2 WordCount入門 74
4.2.1 下載Hadoop配置文件 74
4.2.2 項目配置 75
4.2.3 打包在集群運行 77
4.3 MapReduce編程思想 78
4.3.1 MapReduce原理 79
4.3.2 MapReduce進程 80
4.3.3 MapReduce編程規範 80
4.4 Hadoop序列化 81
4.4.1 序列化與反序列化 81
4.4.2 Hadoop序列化要求 81
4.4.3 Hadoop序列化機制 82
4.5 MapReduce輸入 83
4.6 Shuffle過程 87
4.6.1 Shuffle原理 87
4.6.2 分區 88
4.6.3 排序 89
4.6.4 分組 91
4.7 Combiner過程 92
4.8 MapReduce輸出 93
4.9 常見問題及解決方案 94
4.10 本章小結 98
習題 98
第5章 Hadoop資源管理器Yarn
5.1 Yarn基本結構 100
5.1.1 ResourceManager 101
5.1.2 ApplicationMaster 101
5.1.3 NodeManager 102
5.1.4 Container 102
5.2 Yarn工作機制 102
5.3 Yarn資源調度器 103
5.3.1 FIFO Scheduler 104
5.3.2 Capacity Scheduler 104
5.3.3 Fair Scheduler 107
5.4 本章小結 107
習題 107
第6章 Hadoop案例開發
6.1 WordCount 109
6.2 最值 112
6.3 全排序 113
6.4 二次排序 115
6.5 MapReduce鏈 117
6.6 MapReduce數據合並 120
6.6.1 案例描述 120
6.6.2 Reduce JOIN實現 121
6.6.3 Map JOIN實現 124
6.7 本章小結 125
習題 125
第二篇 數據倉庫Hive
第7章 Hive原理與應用
7.1 Hive簡介 127
7.1.1 數據倉庫簡介 127
7.1.2 Hive起源 127
7.1.3 Hive的主要特點 128
7.1.4 Hive下載 128
7.1.5 Hive安裝包 129
7.2 Hive組件簡介 131
7.2.1 Hive元數據管理 131
7.2.2 Metastore 132
7.2.3 HiveServer2 132
7.3 Hive啟動方式 133
7.3.1 Hive Metastore部署模式 133
7.3.2 JDBC訪問Hive 139
7.4 Hive配置文件詳解 142
7.4.1 Hive的核心配置文件 142
7.4.2 Hive運行環境參數配置 145
7.4.3 Hive的本地運行模式 146
7.5 本章小結 147
習題 147
第8章 Hive數據定義
8.1 Hive的數據結構 149
8.1.1 創建數據庫與表 149
8.1.2 加載數據到表中 153
8.1.3 查詢數據庫與表 160
8.1.4 修改數據庫與表 162
8.1.5 刪除數據庫與表 163
8.1.6 導出數據 164
8.2 Hive的數據類型 165
8.2.1 Hive原生數據類型 165
8.2.2 Hive復雜數據類型 169
8.2.3 數據類型轉換 174
8.3 Hive的數據模型 175
8.3.1 外部表與內部表的定義與區別 176
8.3.2 分區的概念與作用 182
8.3.3 分桶的概念與作用 193
8.3.4 Hive數據表的序列化與反序列化 197
8.4 本章小結 199
習題 199
第9章 Hive數據分析基礎
9.1 基於IntelliJ IDEA實現Hive操作 204
9.1.1 基於IntelliJ IDEA配置Hive 204
9.1.2 Hive服務器連接 204
9.1.3 Console功能區 206
9.2 數據查詢 209
9.2.1 基本查詢 209
9.2.2 分組查詢 214
9.2.3 子查詢 218
9.2.4 Hive的JOIN操作 220
9.2.5 Hive的JOIN原理 228
9.3 常用系統函數 231
9.3.1 聚合函數 231
9.3.2 窗口函數 232
9.3.3 表值函數 236
9.3.4 時間日期函數 238
9.3.5 字符串函數 240
9.3.6 數學函數 242
9.3.7 集合函數 243
9.4 自定義函數 244
9.4.1 UDF 245
9.4.2 UDAF 248
9.4.3 UDTF 250
9.5 本章小結 251
習題 251
第10章 Hive數據分析案例
10.1 數據分析流程與數據分析目標的選定 255
10.1.1 數據分析流程 255
10.1.2 數據分析目標的選定 255
10.2 常用數據分析方法 256
10.2.1 描述性數據分析 256
10.2.2 探索性數據分析 258
10.2.3 預測性數據分析 260
10.3 二手車數據集 261
10.3.1 數據集簡介 261
10.3.2 數據分析目標 262
10.3.3 數據導入 262
10.4 二手車市場特徵和需求探索案例 263
10.4.1 二手車數據描述性分析 263
10.4.2 二手車數據處理與轉換 269
10.4.3 二手車數據探索性分析 270
10.4.4 二手車數據異常值與缺失值處理 271
10.5 二手車數據變量關系分析 272
10.5.1 相關系數簡介 272
10.5.2 二手車數據相關系數分析 272
10.5.3 特徵關系可視化分析 275
10.5.4 結果分析與結論 276
10.6 二手車數據聚類分析 277
10.7 本章小結 278
習題 278
第三篇 非關系數據庫HBase
第11章 HBase基礎知識
11.1 HBase概述 281
11.1.1 NoSQL的出現 281
11.1.2 HBase的出現 281
11.1.3 HBase的相關學習資源 281
11.2 HBase系統部署 281
11.2.1 版本選擇 281
11.2.2 系統準備 282
11.2.3 組件的上傳和解壓 283
11.2.4 配置環境變量 283
11.2.5 配置ZooKeeper 284
11.2.6 配置HBase 284
11.3 HBase基本Shell操作 286
11.3.1 啟動HBase Shell 286
11.3.2 創建和刪除表 286
11.3.3 寫入數據 287
11.3.4 查詢數據 288
11.3.5 刪除數據 289
11.3.6 表結構處理 289
11.4 HBase基本API操作 290
11.4.1 Maven工程基本結構 290
11.4.2 創建和刪除表 291
11.4.3 寫入數據 293
11.4.4 查詢數據 294
11.4.5 刪除數據 294
11.5 本章小結 295
習題 295
第12章 HBase原理與架構
12.1 HBase數據存儲結構 297
12.1.1 大數據時代的MySQL 297
12.1.2 解決問題的思路 299
12.1.3 兩類存儲思路的對比 300
12.1.4 HBase的數據格式 300
12.2 HBase架構 300
12.2.1 HBase整體架構 301
12.2.2 客戶端和HBase的通信過程 302
12.2.3 WAL與HLOG 302
12.2.4 HBase與HDFS 302
12.3 本章小結 303
習題 303
第13章 HBase案例開發
13.1 數據準備 304
13.2 基礎統計任務 306
13.2.1 基本查詢 306
13.2.2 過濾器 307
13.2.3 基本統計任務 310
13.3 高級統計任務 312
13.3.1 HBase on MapReduce 312
13.3.2 HBase with Hive 317
13.4 本章小結 318
習題 319
第四篇 綜合案例
第14章 綜合案例:維基百科數據挖掘
14.1 案例介紹 320
14.1.1 常見文本語料格式 320
14.1.2 語料介紹 321
14.2 案例步驟 322
14.2.1 數據的下載與上傳 322
14.2.2 創建Hive外接表 325
14.2.3 正文字段預處理 328
14.2.4 文章單詞統計 329
14.2.5 文章倒排表 330
14.2.6 正負面分析 332
14.3 本章小結 333
參考文獻 334