Hadoop大數(shù)據(jù)技術(shù)與應(yīng)用
定 價:55 元
- 作者:楊治明 許桂秋
- 出版時間:2019/3/1
- ISBN:9787115503534
- 出 版 社:人民郵電出版社
- 中圖法分類:TP274
- 頁碼:287
- 紙張:
- 版次:01
- 開本:16開
本書采用理論與實(shí)踐相結(jié)合的方式,全面介紹了Hadoop大數(shù)據(jù)技術(shù)。主要內(nèi)容包括初識Hadoop大數(shù)據(jù)技術(shù)、Hadoop環(huán)境配置,分布式文件系統(tǒng)HDFS、資源調(diào)度框架YARN、分布式計(jì)算框架MapReduce、大數(shù)據(jù)數(shù)據(jù)倉庫Hive、分布式數(shù)據(jù)庫HBase、查詢大型半結(jié)構(gòu)化數(shù)據(jù)集的語言Pig、分布式日志采集工具Flume、分布式數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)相互轉(zhuǎn)換工具Sqoop。
1.采用理論和實(shí)踐相結(jié)合方式全面介紹Hadoop技術(shù)
2.內(nèi)容包括Hadoop環(huán)境配置,分布式文件系統(tǒng)HDFS、資源調(diào)度框架YARN、分布式計(jì)算框架MapReduce、大數(shù)據(jù)數(shù)據(jù)倉庫Hive、分布式數(shù)據(jù)庫HBase、查詢大型半結(jié)構(gòu)化數(shù)據(jù)集的語言Pig、分布式日志采集工具Flume、分布式數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)相互轉(zhuǎn)換工具Sqoop、提供分布式協(xié)調(diào)一致性服務(wù)的ZooKeeper、Hadoop快速部署工具Ambari、提供可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的Mahout
楊治明,教授,現(xiàn)任重慶科技學(xué)院數(shù)理與大數(shù)據(jù)學(xué)院院長,數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)負(fù)責(zé)人。現(xiàn)任重慶市教委教育信息化專家委員會成員、重慶市人工智能技術(shù)創(chuàng)新戰(zhàn)略聯(lián)盟專家委員會成員。獲得國家級教學(xué)成果獎1項(xiàng)、重慶市高等教育教學(xué)成果獎二等獎、三等獎各1項(xiàng)。
第1章 初識Hadoop大數(shù)據(jù)技術(shù) 1
1.1 大數(shù)據(jù)技術(shù)概述 1
1.1.1 大數(shù)據(jù)產(chǎn)生的背景 1
1.1.2 大數(shù)據(jù)的定義 2
1.1.3 大數(shù)據(jù)技術(shù)的發(fā)展 2
1.2 Google的“三駕馬車” 3
1.2.1 GFS的思想 3
1.2.2 MapReduce的思想 4
1.2.3 BigTable的思想 6
1.3 Hadoop概述 8
1.3.1 Hadoop對Google公司三篇論文思想的實(shí)現(xiàn) 8
1.3.2 Hadoop的發(fā)展歷史 9
1.3.3 Hadoop版本的演變 11
1.3.4 Hadoop的發(fā)行版本 12
1.3.5 Hadoop的特點(diǎn) 12
1.4 Hadoop生態(tài)圈 12
1.5 Hadoop的典型應(yīng)用場景與應(yīng)用架構(gòu) 13
1.5.1 Hadoop的典型應(yīng)用場景 13
1.5.2 Hadoop的典型應(yīng)用架構(gòu) 14
習(xí)題 15
第2章 Hadoop環(huán)境設(shè)置 16
2.1 安裝前準(zhǔn)備 16
2.1.1 安裝虛擬機(jī) 17
2.1.2 安裝Ubuntu操作系統(tǒng) 20
2.1.3 關(guān)閉防火墻 22
2.1.4 SSH安裝 22
2.1.5 安裝Xshell及Xftp 22
2.1.6 安裝JDK 24
2.1.7 下載Hadoop并解壓 25
2.1.8 克隆主機(jī) 27
2.2 Hadoop的安裝 28
2.2.1 安裝單機(jī)模式 28
2.2.2 安裝偽分布式模式 29
2.2.3 安裝完全分布式模式 35
習(xí)題 41
實(shí)驗(yàn) 搭建Hadoop偽分布式模式環(huán)境 42
第3章 HDFS 44
3.1 HDFS簡介 44
3.2 HDFS的組成與架構(gòu) 45
3.2.1 NameNode 45
3.2.2 DataNode 46
3.2.3 SecondaryNameNode 46
3.3 HDFS的工作機(jī)制 47
3.3.1 機(jī)架感知與副本冗余存儲策略 47
3.3.2 文件讀取 49
3.3.3 文件寫入 50
3.3.4 數(shù)據(jù)容錯 52
3.4 HDFS操作 53
3.4.1 通過Web界面進(jìn)行HDFS操作 53
3.4.2 通過HDFS Shell進(jìn)行HDFS操作 54
3.4.3 通過HDFS API進(jìn)行HDFS操作 60
3.5 HDFS的高級功能 68
3.5.1 安全模式 68
3.5.2 回收站 69
3.5.3 快照 70
3.5.4 配額 71
3.5.5 高可用性 71
3.5.6 聯(lián)邦 72
習(xí)題 74
實(shí)驗(yàn)1 通過Shell命令訪問HDFS 74
實(shí)驗(yàn)2 熟悉基于IDEA+Maven的Java開發(fā)環(huán)境 77
實(shí)驗(yàn)3 通過API訪問HDFS 86
第4章 YARN 90
4.1 YARN產(chǎn)生的背景 90
4.2 初識YARN 92
4.3 YARN的架構(gòu) 93
4.3.1 YARN架構(gòu)概述 93
4.3.2 YARN中應(yīng)用運(yùn)行的機(jī)制 94
4.3.3 YARN中任務(wù)進(jìn)度的監(jiān)控 94
4.3.4 MapReduce 1與YARN的組成對比 95
4.4 YARN的調(diào)度器 95
4.4.1 先進(jìn)先出調(diào)度器 95
4.4.2 容器調(diào)度器 96
4.4.3 公平調(diào)度器 97
4.4.4 三種調(diào)度器的比較 98
習(xí)題 98
第5章 MapReduce 99
5.1 MapReduce概述 99
5.1.1 MapReduce是什么 99
5.1.2 MapReduce的特點(diǎn) 99
5.1.3 MapReduce不擅長的場景 100
5.2 MapReduce編程模型 100
5.2.1 MapReduce編程模型概述 100
5.2.2 MapReduce編程實(shí)例 101
5.3 MapReduce編程進(jìn)階 112
5.3.1 MapReduce的輸入格式 112
5.3.2 MapReduce的輸出格式 114
5.3.3 分區(qū) 115
5.3.4 合并 118
5.4 MapReduce的工作機(jī)制 119
5.4.1 MapReduce作業(yè)的運(yùn)行機(jī)制 119
5.4.2 進(jìn)度和狀態(tài)的更新 120
5.4.3 Shuffle 121
5.5 MapReduce編程案例 122
5.5.1 排序 122
5.5.2 去重 126
5.5.3 多表查詢 127
習(xí)題 129
實(shí)驗(yàn)1 分析和編寫WordCount程序 130
實(shí)驗(yàn)2 MapReduce序列化、分區(qū)實(shí)驗(yàn) 131
實(shí)驗(yàn)3 使用MapReduce求出各年銷售筆數(shù)、各年銷售總額 134
實(shí)驗(yàn)4 使用MapReduce統(tǒng)計(jì)用戶在搜狗上的搜索數(shù)據(jù) 136
第6章 HBase、Hive、Pig 139
6.1 HBase 139
6.1.1 行式存儲與列式存儲 139
6.1.2 HBase簡介 140
6.1.3 HBase的數(shù)據(jù)模型 141
6.1.4 HBase的物理模型 143
6.1.5 HBase的系統(tǒng)架構(gòu) 144
6.1.6 HBase的安裝 147
6.1.7 訪問HBase 152
6.2 Hive 157
6.2.1 安裝Hive 157
6.2.2 Hive的架構(gòu)與工作原理 160
6.2.3 Hive的數(shù)據(jù)類型與存儲格式 163
6.2.4 Hive的數(shù)據(jù)模型 167
6.2.5 查詢數(shù)據(jù) 169
6.2.6 用戶定義函數(shù) 170
6.3 Pig 171
6.3.1 Pig概述 171
6.3.2 安裝Pig 172
6.3.3 Pig Latin編程語言 172
6.3.4 Pig代碼實(shí)例 177
6.3.5 用戶自定義函數(shù) 179
習(xí)題 181
實(shí)驗(yàn)1 HBase實(shí)驗(yàn)——安裝和配置(可選) 181
實(shí)驗(yàn)2 HBase實(shí)驗(yàn)——通過HBase Shell訪問HBase(可選) 185
實(shí)驗(yàn)3 HBase實(shí)驗(yàn)——通過Java API訪問HBase 187
實(shí)驗(yàn)4 HBase實(shí)驗(yàn)——通過Java API開發(fā)基于HBase的MapReduce程序 189
實(shí)驗(yàn)5 Hive實(shí)驗(yàn)——Metastore采用Local模式(MySQL數(shù)據(jù)庫)搭建Hive環(huán)境(可選) 191
實(shí)驗(yàn)6 Hive實(shí)驗(yàn)——Hive常用操作 193
實(shí)驗(yàn)7 Pig實(shí)驗(yàn)——安裝和使用Pig(可選) 194
實(shí)驗(yàn)8 Pig實(shí)驗(yàn)——使用Pig Latin操作員工表和部門表 195
第7章 Flume 198
7.1 Flume產(chǎn)生的背景 198
7.2 Flume簡介 198
7.3 Flume的安裝 199
7.4 Flume的架構(gòu) 200
7.5 Flume的應(yīng)用 201
7.5.1 Flume的組件類型及其配置項(xiàng) 201
7.5.2 Flume的配置和運(yùn)行方法 206
7.5.3 Flume配置示例 207
7.6 Flume的工作方式 209
習(xí)題 210
實(shí)驗(yàn)1 Flume的配置與使用1——Avro Source + Memory Channel + Logger Sink 211
實(shí)驗(yàn)2 Flume的配置與使用2——Syslogtcp Source + Memory Channel + HDFS Sink 212
實(shí)驗(yàn)3 Flume的配置與使用3——Exec Source + Memory Channel + Logger Sink 213
第8章 Sqoop 214
8.1 Sqoop背景簡介 214
8.2 Sqoop的基本原理 215
8.3 Sqoop的安裝與部署 216
8.3.1 下載與安裝 216
8.3.2 配置Sqoop 217
8.4 Sqoop應(yīng)用 219
8.4.1 列出MySQL數(shù)據(jù)庫的基本信息 219
8.4.2 MySQL和HDFS數(shù)據(jù)互導(dǎo) 219
8.4.3 MySQL和Hive數(shù)據(jù)互導(dǎo) 220
習(xí)題 221
實(shí)驗(yàn) Sqoop常用功能的使用 222
第9章 ZooKeeper 227
9.1 ZooKeeper簡介 227
9.2 ZooKeeper的安裝 228
9.2.1 單機(jī)模式 228
9.2.2 集群模式 229
9.3 ZooKeeper的基本原理 231
9.3.1 Paxos算法 231
9.3.2 Zab算法 232
9.3.3 ZooKeeper的架構(gòu) 232
9.3.4 ZooKeeper的數(shù)據(jù)模型 233
9.4 ZooKeeper的簡單操作 235
9.4.1 通過ZooKeeper Shell命令操作ZooKeeper 235
9.4.2 通過ZooInspector工具操作ZooKeeper 238
9.4.3 通過Java API操作ZooKeeper 238
9.5 ZooKeeper的特性 239
9.5.1 會話 239
9.5.2 臨時節(jié)點(diǎn) 240
9.5.3 順序節(jié)點(diǎn) 240
9.5.4 事務(wù)操作 241
9.5.5 版本號 241
9.5.6 監(jiān)視 242
9.6 ZooKeeper的應(yīng)用場景 243
9.6.1 Master選舉 244
9.6.2 分布式鎖 245
習(xí)題 246
實(shí)驗(yàn) ZooKeeper的3種訪問方式 246
第10章 Ambari 249
10.1 Ambari簡介 249
10.1.1 背景 249
10.1.2 Ambari的主要功能 250
10.2 Ambari的安裝 250
10.2.1 安裝前準(zhǔn)備 250
10.2.2 安裝Ambari 254
10.3 利用Ambari管理Hadoop集群 257
10.3.1 安裝與配置HDP集群 258
10.3.2 節(jié)點(diǎn)的擴(kuò)展 264
10.3.3 啟用HA 267
10.4 Ambari的架構(gòu)和工作原理 271
10.4.1 Ambari的總體架構(gòu) 271
10.4.2 Ambari Agent 272
10.4.3 Ambari Server 272
習(xí)題 273
第11章 Mahout 274
11.1 Mahout簡介 274
11.1.1 什么是Mahout 274
11.1.2 Mahout能做什么 275
11.2 Taste簡介 276
11.2.1 DataModel 276
11.2.2 Similarity 277
11.2.3 UserNeighborhood 277
11.2.4 Recommender 277
11.2.5 RecommenderEvaluator 277
11.2.6 RecommenderIRStatsEvaluator 278
11.3 使用Taste構(gòu)建推薦系統(tǒng) 278
11.3.1 創(chuàng)建Maven項(xiàng)目 278
11.3.2 導(dǎo)入Mahout依賴 278
11.3.3 獲取電影評分?jǐn)?shù)據(jù) 278
11.3.4 編寫基于用戶的推薦 279
11.3.5 編寫基于物品的推薦 280
11.3.6 評價推薦模型 281
11.3.7 獲取推薦的查準(zhǔn)率和查全率 281
習(xí)題 282
實(shí)驗(yàn) 基于Mahout的電影推薦系統(tǒng) 283
綜合實(shí)驗(yàn) 搜狗日志查詢分析(MapReduce+Hive綜合實(shí)驗(yàn)) 284
參考文獻(xiàn) 287