《Hadoop大數據技術原理與套用》是2019年5月清華大學出版社出版的圖書,作者是黑馬程式設計師。
基本介紹
- 書名:Hadoop大數據技術原理與套用
- 作者:黑馬程式設計師
- ISBN:9787302524403
- 定價:39元
- 出版社:清華大學出版社
- 出版時間:2019年5月
內容簡介,圖書目錄,
內容簡介
本書圍繞Hadoop生態圈相關係統介紹大數據處理架構。全書共11章,其中,第1、2章主要帶領大家認識Hadoop以及學會搭建Hadoop集群;第3~5章講解分散式檔案系統(HDFS)、分散式計算框架MapReduce以及分散式協調服務;第6章講解Hadoop 2.0新特性,包含YARN和高可用特性;第7~10章主要講解Hadoop生態圈的相關輔助系統,包括Hive、Flume、Azkaban和Sqoop;第11章是一個綜合項目——網站流量日誌數據分析系統,目的是教會大家如何利用Hadoop生態圈技術構建大數據系統架構並進行開發,同時加深對Hadoop技術的理解。
本書附有配套視頻、原始碼、習題、教學設計、教學課件等資源。同時,為了幫助初學者更好地學習本書中的內容,還提供了線上答疑,歡迎讀者關注。
本書可作為高等院校本、專科計算機相關專業,信息管理等相關專業的大數據課程教材,也可供相關技術人員參考,是一本適合廣大計算機編程愛好者的優秀讀物。
圖書目錄
第1章初識Hadoop1
1.1大數據概述1
1.1.1什麼是大數據1
1.1.2大數據的特徵2
1.1.3研究大數據的意義3
1.2大數據的套用場景4
1.2.1醫療行業的套用4
1.2.2金融行業的套用4
1.2.3零售行業的套用5
1.3Hadoop概述6
1.3.1Hadoop的前世今生6
1.3.2Hadoop的優勢7
1.3.3Hadoop的生態體系7
1.3.4Hadoop的版本9
1.4本章小結11
1.5課後習題11
第2章搭建Hadoop集群13
2.1安裝準備13
2.1.1虛擬機安裝13
2.1.2虛擬機克隆22
2.1.3Linux系統網路配置24
2.1.4SSH服務配置28
2.2Hadoop集群搭建31
2.2.1Hadoop集群部署模式31
2.2.2JDK安裝32
2.2.3Hadoop安裝33
2.2.4Hadoop集群配置35
2.3Hadoop集群測試38
2.3.1格式化檔案系統38Hadoop大數據技術原理與套用2.3.2啟動和關閉Hadoop集群39
2.3.3通過UI查看Hadoop運行狀態41
2.4Hadoop集群初體驗43
2.5本章小結46
2.6課後習題46
第3章HDFS分散式檔案系統48
3.1HDFS的簡介48
3.1.1HDFS的演變48
3.1.2HDFS的基本概念50
3.1.3HDFS的特點51
3.2HDFS的架構和原理52
3.2.1HDFS存儲架構52
3.2.2HDFS檔案讀寫原理53
3.3HDFS的Shell操作55
3.3.1HDFS Shell介紹55
3.3.2案例——Shell定時採集數據到HDFS58
3.4HDFS的Java API操作62
3.4.1HDFS Java API介紹62
3.4.2案例——使用Java API操作HDFS63
3.5本章小結68
3.6課後習題69
第4章MapReduce分散式計算框架70
4.1MapReduce概述70
4.1.1MapReduce核心思想70
4.1.2MapReduce編程模型71
4.1.3MapReduce編程實例——詞頻統計72
4.2MapReduce工作原理73
4.2.1MapReduce工作過程73
4.2.2MapTask工作原理74
4.2.3ReduceTask工作原理75
4.2.4Shuffle工作原理76
4.3MapReduce編程組件77
4.3.1InputFormat組件77
4.3.2Mapper組件78
4.3.3Reducer組件78
4.3.4Partitioner組件80
4.3.5Combiner組件80
4.3.6OutputFormat組件81
4.4MapReduce運行模式82
4.5MapReduce性能最佳化策略84
4.6MapReduce經典案例——倒排索引86
4.6.1案例分析86
4.6.2案例實現89
4.7MapReduce經典案例——數據去重93
4.7.1案例分析93
4.7.2案例實現93
4.8MapReduce經典案例——TopN96
4.8.1案例分析96
4.8.2案例實現97
4.9本章小結100
4.10課後習題100
第5章Zookeeper分散式協調服務102
5.1初識Zookeeper102
5.1.1Zookeeper簡介102
5.1.2Zookeeper的特性103
5.1.3Zookeeper集群角色103
5.2數據模型104
5.2.1數據存儲結構104
5.2.2Znode的類型105
5.2.3Znode的屬性105
5.3Zookeeper的Watch機制106
5.3.1Watch機制的簡介106
5.3.2Watch機制的特點106
5.3.3Watch機制的通知狀態和事件類型107
5.4Zookeeper的選舉機制107
5.4.1選舉機制的簡介107
5.4.2選舉機制的類型108
5.5Zookeeper分散式集群部署109
5.5.1Zookeeper安裝包的下載安裝109
5.5.2Zookeeper相關配置109
5.5.3Zookeeper服務的啟動和關閉112
5.6Zookeeper的Shell操作113
5.6.1Zookeeper Shell介紹113
5.6.2通過Shell命令操作Zookeeper113
5.7Zookeeper的Java API操作119
5.7.1Zookeeper Java API介紹119
5.7.2通過Java API操作Zookeeper120
5.8Zookeeper典型套用場景122
5.8.1數據發布與訂閱122
5.8.2統一命名服務123
5.8.3分散式鎖123
5.9本章小結123
5.10課後習題124
第6章Hadoop 2.0新特性125
6.1Hadoop 2.0改進與提升125
6.2YARN資源管理框架125
6.2.1YARN體系結構125
6.2.2YARN工作流程127
6.3HDFS的高可用128
6.3.1HDFS的高可用架構128
6.3.2搭建Hadoop高可用集群129
6.4本章小結134
6.5課後習題135
第7章Hive數據倉庫136
7.1數據倉庫簡介136
7.1.1什麼是數據倉庫136
7.1.2數據倉庫的結構137
7.1.3數據倉庫的數據模型138
7.2Hive簡介140
7.2.1什麼是Hive140
7.2.2Hive系統架構141
7.2.3Hive工作原理141
7.2.4Hive數據模型142
7.3Hive的安裝143
7.3.1Hive安裝模式簡介143
7.3.2嵌入模式144
7.3.3本地模式和遠程模式145
7.4Hive的管理147
7.4.1CLI方式147
7.4.2遠程服務148
7.5Hive內置數據類型150
7.6Hive數據模型操作151
7.6.1Hive資料庫操作151
7.6.2Hive內部表操作153
7.6.3Hive外部表操作157
7.6.4Hive分區表操作158
7.6.5Hive桶表操作163
7.7Hive數據操作166
7.8本章小結170
7.9課後習題170
第8章Flume日誌採集系統172
8.1Flume概述172
8.1.1Flume簡介172
8.1.2Flume運行機制172
8.1.3Flume日誌採集系統結構圖173
8.2Flume基本使用175
8.2.1Flume系統要求175
8.2.2Flume安裝配置175
8.2.3Flume入門使用177
8.3Flume採集方案配置說明181
8.3.1Flume Sources181
8.3.2Flume Channels184
8.3.3Flume Sinks186
8.4Flume的可靠性保證189
8.4.1負載均衡189
8.4.2故障轉移195
8.5Flume攔截器196
8.6案例——日誌採集198
8.6.1案例分析198
8.6.2案例實現199
8.7本章小結204
8.8課後習題205
第9章工作流管理器(Azkaban)206
9.1工作流管理器概述206
9.1.1工作流調度系統背景206
9.1.2常用工作流管理器介紹206
9.2Azkaban概述207
9.2.1Azkaban特點208
9.2.2Azkaban組成結構208
9.2.3Azkaban部署模式209
9.3Azkaban部署210
9.3.1Azkaban資源準備210
9.3.2Azkaban安裝配置212
9.3.3Azkaban啟動測試220
9.4Azkaban使用224
9.4.1Azkaban工作流相關概念224
9.4.2案例演示——依賴任務調度管理226
9.4.3案例演示——MapReduce任務調度管理232
9.4.4案例演示——HIVE腳本任務調度管理235
9.5本章小結237
9.6課後習題237
第10章Sqoop數據遷移239
10.1Sqoop概述239
10.1.1Sqoop簡介239
10.1.2Sqoop原理240
10.2Sqoop安裝配置241
10.3Sqoop指令介紹242
10.4Sqoop數據導入244
10.4.1MySQL表數據導入HDFS245
10.4.2增量導入247
10.4.3MySQL表數據導入Hive248
10.4.4MySQL表數據子集導入249
10.5Sqoop數據導出251
10.6本章小結253
10.7課後習題253
第11章綜合項目——網站流量日誌數據分析系統255
11.1系統概述255
11.1.1系統背景介紹255
11.1.2系統架構設計255
11.1.3系統預覽256
11.2模組開發——數據採集257
11.2.1使用Flume搭建日誌採集系統257
11.2.2日誌信息說明258
11.3模組開發——數據預處理258
11.3.1分析預處理的數據258
11.3.2實現數據的預處理259
11.4模組開發——數據倉庫開發268
11.4.1設計數據倉庫268
11.4.2實現數據倉庫269
11.5模組開發——數據分析273
11.5.1流量分析273
11.5.2人均瀏覽量分析274
11.6模組開發——數據導出275
11.7模組開發——日誌分析系統報表展示276
11.7.1搭建日誌分析系統277
11.7.2實現報表展示功能285
11.7.3系統功能模組展示290
11.8本章小結290