從零開始學(xué)Hadoop大數(shù)據(jù)分析(視頻教學(xué)版)
定 價(jià):89 元
- 作者:
- 出版時(shí)間:2019/3/1
- ISBN:9787111619314
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書針對愿意加入大數(shù)據(jù)行業(yè)的初學(xué)者量身定做,以簡練風(fēng)趣的語言介紹了大數(shù)據(jù)程核心技術(shù)及相關(guān)案例。內(nèi)容包括了數(shù)據(jù)的基本概念、Hadoop的安裝與配置、HDFS、基于Hadoop3的HDFS高可用、Zookeeper、MapReduce、YARN、Sqoop、KafKa、Redis,每個(gè)知識點(diǎn)配有可運(yùn)行的案例,同時(shí)結(jié)合企業(yè)實(shí)際案例,讓讀者能夠掌握從大數(shù)據(jù)環(huán)境搭建到大數(shù)據(jù)核心技術(shù),并且進(jìn)一步熟悉企業(yè)案例的分析及開發(fā)過程,從而輕松進(jìn)入到大數(shù)據(jù)領(lǐng)域。本書實(shí)用性強(qiáng),非常適合Hadoop大數(shù)據(jù)分析入門讀者閱讀,也適合相關(guān)院校作為大數(shù)據(jù)分析與挖掘的教材使用。
前言
第1篇 Hadoop基礎(chǔ)知識
第1章 初識Hadoop2
1.1 大數(shù)據(jù)初探2
1.1.1 大數(shù)據(jù)技術(shù)2
1.1.2 大數(shù)據(jù)技術(shù)框架3
1.1.3 大數(shù)據(jù)的特點(diǎn)3
1.1.4 大數(shù)據(jù)在各個(gè)行業(yè)中的應(yīng)用4
1.1.5 大數(shù)據(jù)計(jì)算模式4
1.1.6 大數(shù)據(jù)與云計(jì)算、物聯(lián)網(wǎng)的關(guān)系4
1.2 Hadoop簡介5
1.2.1 Hadoop應(yīng)用現(xiàn)狀6
1.2.2 Hadoop簡介與意義6
1.3 小結(jié)6
第2章 Hadoop的安裝與配置7
2.1 虛擬機(jī)的創(chuàng)建7
2.2 安裝Linux系統(tǒng)10
2.3 配置網(wǎng)絡(luò)信息11
2.4 克隆服務(wù)器12
2.5 SSH免密碼登錄13
2.6 安裝和配置JDK15
2.6.1 上傳安裝包15
2.6.2 安裝JDK16
2.6.3 配置環(huán)境變量16
2.7 Hadoop環(huán)境變量配置16
2.7.1 解壓縮Hadoop壓縮包17
2.7.2 配置Hadoop的bin和sbin文件夾到環(huán)境變量中17
2.7.3 修改/etc/hadoop/hadoop-env.sh17
2.8 Hadoop分布式安裝17
2.8.1 偽分布式安裝17
2.8.2 完全分布式安裝19
2.9 小結(jié)21
第3章 Hadoop分布式文件系統(tǒng)22
3.1 DFS介紹22
3.1.1 什么是DFS22
3.1.2 DFS的結(jié)構(gòu)22
3.2 HDFS介紹23
3.2.1 HDFS的概念及體系結(jié)構(gòu)23
3.2.2 HDFS的設(shè)計(jì)23
3.2.3 HDFS的優(yōu)點(diǎn)和缺點(diǎn)24
3.2.4 HDFS的執(zhí)行原理24
3.2.5 HDFS的核心概念25
3.2.6 HDFS讀文件流程27
3.2.7 HDFS寫文件流程28
3.2.8 Block的副本放置策略29
3.3 Hadoop中HDFS的常用命令30
3.3.1 對文件的操作30
3.3.2 管理與更新31
3.4 HDFS的應(yīng)用31
3.4.1 基于Shell的操作31
3.4.2 基于Java API的操作33
3.4.3 創(chuàng)建文件夾34
3.4.4 遞歸顯示文件34
3.4.5 文件上傳35
3.4.6 文件下載35
3.5 小結(jié)36
第4章 基于Hadoop 3的HDFS高可用37
4.1 Hadoop 3.x的發(fā)展37
4.1.1 Hadoop 3新特性37
4.1.2 Hadoop 3 HDFS集群架構(gòu)38
4.2 Hadoop 3 HDFS完全分布式搭建39
4.2.1 安裝JDK40
4.2.2 配置JDK環(huán)境變量40
4.2.3 配置免密碼登錄40
4.2.4 配置IP和主機(jī)名字映射關(guān)系41
4.2.5 SSH免密碼登錄設(shè)置41
4.2.6 配置Hadoop 3.1.042
4.3 什么是HDFS高可用47
4.3.1 HDFS高可用實(shí)現(xiàn)原理47
4.3.2 HDFS高可用實(shí)現(xiàn)48
4.4 搭建HDFS高可用50
4.4.1 配置ZooKeeper50
4.4.2 配置Hadoop配置文件52
4.4.3 將配置文件復(fù)制到其他節(jié)點(diǎn)上54
4.4.4 啟動(dòng)JN節(jié)點(diǎn)54
4.4.5 格式化55
4.4.6 復(fù)制元數(shù)據(jù)到node2節(jié)點(diǎn)上55
4.4.7 格式化ZKFC55
4.4.8 啟動(dòng)集群56
4.4.9 通過瀏覽器查看集群狀態(tài)56
4.4.10 高可用測試57
4.5 小結(jié)58
第2篇 Hadoop核心技術(shù)
第5章 Hadoop的分布式協(xié)調(diào)服務(wù)——ZooKeeper60
5.1 ZooKeeper的核心概念60
5.1.1 Session會(huì)話機(jī)制60
5.1.2 數(shù)據(jù)節(jié)點(diǎn)、版本與Watcher的關(guān)聯(lián)61
5.1.3 ACL策略61
5.2 ZooKeeper的安裝與運(yùn)行61
5.3 ZooKeeper服務(wù)器端的常用命令63
5.4 客戶端連接ZooKeeper的相關(guān)操作64
5.4.1 查看ZooKeeper常用命令64
5.4.2 connect命令與ls命令65
5.4.3 create命令——?jiǎng)?chuàng)建節(jié)點(diǎn)65
5.4.4 get命令——獲取數(shù)據(jù)與信息66
5.4.5 set命令——修改節(jié)點(diǎn)內(nèi)容66
5.4.6 delete命令——?jiǎng)h除節(jié)點(diǎn)67
5.5 使用Java API訪問ZooKeeper67
5.5.1 環(huán)境準(zhǔn)備與創(chuàng)建會(huì)話實(shí)例68
5.5.2 節(jié)點(diǎn)創(chuàng)建實(shí)例69
5.5.3 Java API訪問ZooKeeper實(shí)例70
5.6 小結(jié)73
第6章 分布式離線計(jì)算框架——MapReduce74
6.1 MapReduce概述74
6.1.1 MapReduce的特點(diǎn)74
6.1.2 MapReduce的應(yīng)用場景75
6.2 MapReduce執(zhí)行過程76
6.2.1 單詞統(tǒng)計(jì)實(shí)例76
6.2.2 MapReduce執(zhí)行過程77
6.2.3 MapReduce的文件切片Split77
6.2.4 Map過程和Reduce過程78
6.2.5 Shuffle過程78
6.3 MapReduce實(shí)例79
6.3.1 WordCount本地測試實(shí)例79
6.3.2 ETL本地測試實(shí)例84
6.4 溫度排序?qū)嵗?6
6.4.1 時(shí)間和溫度的封裝類MyKey.Java87
6.4.2 Map任務(wù)MyMapper.java88
6.4.3 數(shù)據(jù)分組類MyGroup.Java89
6.4.4 溫度排序類MySort.java89
6.4.5 數(shù)據(jù)分區(qū)MyPartitioner.java90
6.4.6 Reducer任務(wù)MyReducer.java90
6.4.7 主函數(shù)RunJob.java91
6.5 小結(jié)94
第7章 Hadoop的集群資源管理系統(tǒng)——YARN95
7.1 為什么要使用YARN95
7.2 YARN的基本架構(gòu)96
7.2.1 ResourceManager進(jìn)程96
7.2.2 ApplicationMaster和NodeManager97
7.3 YARN工作流程97
7.4 YARN搭建98
7.5 小結(jié)100
第8章 Hadoop的數(shù)據(jù)倉庫框架——Hive101
8.1 Hive的理論基礎(chǔ)101
8.1.1 什么是Hive101
8.1.2 Hive和數(shù)據(jù)庫的異同102
8.1.3 Hive設(shè)計(jì)的目的與應(yīng)用104
8.1.4 Hive的運(yùn)行架構(gòu)104
8.1.5 Hive的執(zhí)行流程105
8.1.6 Hive服務(wù)106
8.1.7 元數(shù)據(jù)存儲Metastore106
8.1.8 Embedded模式107
8.1.9 Local模式108
8.1.10 Remote模式109
8.2 Hive的配置與安裝109
8.2.1 安裝MySQL110
8.2.2 配置Hive112
8.3 Hive表的操作113
8.3.1 創(chuàng)建Hive表114
8.3.2 導(dǎo)入數(shù)據(jù)114
8.4 表的分區(qū)與分桶115
8.4.1 表的分區(qū)115
8.4.2 表的分桶117
8.5 內(nèi)部表與外部表118
8.5.1 內(nèi)部表119
8.5.2 外部表119
8.6 內(nèi)置函數(shù)與自定義函數(shù)121
8.6.1 內(nèi)置函數(shù)實(shí)例121
8.6.2 自定義UDAF函數(shù)實(shí)例123
8.7 通過Java訪問Hive124
8.8 Hive優(yōu)化125
8.8.1 MapReduce優(yōu)化126
8.8.2 配置優(yōu)化126
8.9 小結(jié)127
第9章 大數(shù)據(jù)快速讀寫——HBase128
9.1 關(guān)于NoSQL128
9.1.1 什么是NoSQL128
9.1.2 NoSQL數(shù)據(jù)庫的分類129
9.1.3 NoSQL數(shù)據(jù)庫的應(yīng)用129
9.1.4 關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫的區(qū)別130
9.2 HBase基礎(chǔ)130
9.2.1 HBase簡介130
9.2.2 HBase數(shù)據(jù)模型131
9.2.3 HBase體系架構(gòu)及組件132
9.2.4 HBase執(zhí)行原理134
9.3 HBase安裝135
9.4 HBase的Shell操作138
9.5 Java API訪問HBase實(shí)例139
9.5.1 創(chuàng)建表139
9.5.2 插入數(shù)據(jù)140
9.5.3 查詢數(shù)據(jù)141
9.6 小結(jié)142
第10章 海量日志采集工具——Flume143
10.1 什么是Flume143
10.2 Flume的特點(diǎn)143
10.3 Flume架構(gòu)144
10.4 Flume的主要組件144
10.4.1 Event、Client與Agent——數(shù)據(jù)傳輸145
10.4.2 Source—Event接收145
10.4.3 Channel—Event傳輸146
10.4.4 Sink—Event發(fā)送147
10.4.5 其他組件148
10.5 Flume安裝148
10.6 Flume應(yīng)用典型實(shí)例149
10.6.1 本地?cái)?shù)據(jù)讀取(conf1)149
10.6.2 收集至HDFS150
10.6.3 基于日期分區(qū)的數(shù)據(jù)收集152
10.7 通過exec命令實(shí)現(xiàn)數(shù)據(jù)收集153
10.7.1 安裝工具153
10.7.2 編輯配置文件conf4155
10.7.3 運(yùn)行Flume156
10.7.4 查看生成的文件156
10.7.5 查看HDFS中的數(shù)據(jù)157
10.8 小結(jié)158
第11章 Hadoop和關(guān)系型數(shù)據(jù)庫間的數(shù)據(jù)傳輸工具——Sqoop159
11.1 什么是Sqoop159
11.2 Sqoop工作機(jī)制159
11.3 Sqoop的安裝與配置161
11.3.1 下載Sqoop161
11.3.2 Sqoop配置162
11.4 Sqoop數(shù)據(jù)導(dǎo)入實(shí)例163
11.4.1 向HDFS中導(dǎo)入數(shù)據(jù)165
11.4.2 將數(shù)據(jù)導(dǎo)入Hive167
11.4.3 向HDFS中導(dǎo)入查詢結(jié)果170
11.5 Sqoop數(shù)據(jù)導(dǎo)出實(shí)例172
11.6 小結(jié)173
第12章 分布式消息隊(duì)列——Kafka174
12.1 什么是Kafka174
12.2 Kafka的架構(gòu)和主要組件174
12.2.1 消息記錄的類別名——Topic175
12.2.2 Producer與Consumer——數(shù)據(jù)的生產(chǎn)和消費(fèi)176
12.2.3 其他組件——Broker、Partition、Offset、Segment177
12.3 Kafka的下載與集群安裝177
12.3.1 安裝包的下載與解壓177
12.3.2 Kafka的安裝配置178
12.4 Kafka應(yīng)用實(shí)例181
12.4.1 Producer實(shí)例181
12.4.2 Consumer實(shí)例182
12.5 小結(jié)184
第13章 開源的內(nèi)存數(shù)據(jù)庫——Redis185
13.1 Redis簡介185
13.1.1 什么是Redis185
13.1.2 Redis的特點(diǎn)186
13.2 Redis安裝與配置186
13.3 客戶端登錄187
13.3.1 密碼為空登錄187
13.3.2 設(shè)置密碼登錄188
13.4 Redis的數(shù)據(jù)類型188
13.4.1 String類型188
13.4.2 List類型190
13.4.3 Hash類型191
13.4.4 Set類型194
13.5 小結(jié)197
第14章 Ambari和CDH198
14.1 Ambari的安裝與集群管理198
14.1.1 認(rèn)識HDP與Ambari198
14.1.2 Ambari的搭建199
14.1.3 配置網(wǎng)卡與修改本機(jī)名199
14.1.4 定義DNS服務(wù)器與修改hosts主機(jī)映射關(guān)系200
14.1.5 關(guān)閉防火墻并安裝JDK200
14.1.6 升級OpenSSL安全套接層協(xié)議版本201
14.1.7 關(guān)閉SELinux的強(qiáng)制訪問控制201
14.1.8 SSH免密碼登錄202
14.1.9 同步NTP202
14.1.10 關(guān)閉Linux的THP服務(wù)204
14.1.11 配置UMASK與HTTP服務(wù)204
14.1.12 安裝本地源制作相關(guān)工具與Createrepo205
14.1.13 禁止離線更新與制作本地源205
14.1.14 安裝Ambari-server與MySQL208
14.1.15 安裝Ambari210
14.1.16 安裝Agent與Ambari登錄安裝211
14.1.17 安裝部署問題解決方案214
14.2 CDH的安裝與集群管理216
14.2.1 什么是CDH和Cloudera Manager介紹216
14.2.2 Cloudera Manager與Ambari對比的優(yōu)勢216
14.2.3 CDH安裝和網(wǎng)卡配置217
14.2.4 修改本機(jī)名與定義DNS服務(wù)器217
14.2.5 修改hosts主機(jī)映射關(guān)系218
14.2.6 關(guān)閉防火墻218
14.2.7 安裝JDK219
14.2.8 升級OpenSSL安全套接層協(xié)議版本219
14.2.9 禁用SELinux的強(qiáng)制訪問功能220
14.2.10 SSH 免密碼登錄220
14.2.11 同步NTP安裝220
14.2.12 安裝MySQL222
14.2.13 安裝Cloudera Manager222
14.2.14 添加MySQL驅(qū)動(dòng)包和修改Agent配置223
14.2.15 初始化CM5數(shù)據(jù)庫和創(chuàng)建cloudera-scm用戶223
14.2.16 準(zhǔn)備Parcels223
14.2.17 CDH的安裝配置224
14.3 小結(jié)227
第15章 快速且通用的集群計(jì)算系統(tǒng)——Spark228
15.1 Spark基礎(chǔ)知識228
15.1.1 Spark的特點(diǎn)228
15.1.2 Spark和Hadoop的比較229
15.2 彈性分布式數(shù)據(jù)集RDD230
15.2.1 RDD的概念230
15.2.2 RDD的創(chuàng)建方式230
15.2.3 RDD的操作230
15.2.4 RDD的執(zhí)行過程231
15.3 Spark作業(yè)運(yùn)行機(jī)制232
15.4 運(yùn)行在YARN上的Spark233
15.4.1 在YARN上運(yùn)行Spark233
15.4.2 Spark在YARN上的兩種部署模式233
15.5 Spark集群安裝234
15.5.1 Spark安裝包的下載234
15.5.2 Spark安裝環(huán)境236
15.5.3 Scala安裝和配置236
15.5.4 Spark分布式集群配置238
15.6 Spark實(shí)例詳解241
15.6.1 網(wǎng)站用戶瀏覽次數(shù)最多的URL統(tǒng)計(jì)241
15.6.2 用戶地域定位實(shí)例243
15.7 小結(jié)246
第3篇 Hadoop項(xiàng)目案例實(shí)戰(zhàn)
第16章 基于電商產(chǎn)品的大數(shù)據(jù)業(yè)務(wù)分析系統(tǒng)實(shí)戰(zhàn)248
16.1 項(xiàng)目背景、實(shí)現(xiàn)目標(biāo)和項(xiàng)目需求248
16.2 功能與流程249
16.2.1 用戶信息250
16.2.2 商品信息251
16.2.3 購買記錄251
16.3 數(shù)據(jù)收集252
16.3.1 Flume的配置文件252
16.3.2 啟動(dòng)Flume253
16.3.3 查看采集后的文件253
16.3.4 通過后臺命令查看文件254
16.3.5 查看文件內(nèi)容255
16.3.6 上傳user.list文件256
16.3.7 上傳brand.list目錄256
16.4 數(shù)據(jù)預(yù)處理257
16.5 數(shù)據(jù)分析——?jiǎng)?chuàng)建外部表261
16.6 建立模型264
16.6.1 各年齡段用戶消費(fèi)總額264
16.6.2 查詢各品牌銷售總額265
16.6.3 查詢各省份消費(fèi)總額266
16.6.4 使用Sqoop將數(shù)據(jù)導(dǎo)入MySQL數(shù)據(jù)庫266
16.7 數(shù)據(jù)可視化268
16.8 小結(jié)272
第17章 用戶畫像分析實(shí)戰(zhàn)273
17.1 項(xiàng)目背景273
17.2 項(xiàng)目目標(biāo)與項(xiàng)目開發(fā)過程274
17.2.1 數(shù)據(jù)采集274
17.2.2 數(shù)據(jù)預(yù)處理275
17.2.3 模型構(gòu)建275
17.2.4 數(shù)據(jù)分析276
17.3 核心代碼解讀277
17.3.1 項(xiàng)目流程介紹277
17.3.2 核心類的解讀278
17.3.3 core-site.xml配置文件279
17.3.4 hdfs-site.xml配置文件279
17.3.5 UserProfile.properties配置文件280
17.3.6 LoadConfig.java:讀取配置信息280
17.3.7 ReadFile.java:讀取文件281
17.3.8 ReadFromHdfs.java:提取信息281
17.3.9 UserProfile.java:創(chuàng)建用戶畫像282
17.3.10 TextArrayWritable.java:字符串處理工具類285
17.3.11 MapReduce任務(wù)1:UserProfileMapReduce.java285
17.3.12 MapReduce任務(wù)2:UserProfileMapReduce2.java289
17.3.13 UserProfilePutInHbaseMap.java:提取用戶畫像291
17.3.14 UserProfilePutInHbaseReduce:存儲用戶畫像292
17.4 項(xiàng)目部署293
17.5 小結(jié)294
第18章 基于個(gè)性化的視頻推薦系統(tǒng)實(shí)戰(zhàn)295
18.1 項(xiàng)目背景295
18.2 項(xiàng)目目標(biāo)與推薦系統(tǒng)簡介295
18.2.1 推薦系統(tǒng)的分類295
18.2.2 推薦模型的構(gòu)建流程296
18.2.3 推薦系統(tǒng)核心算法297
18.2.4 如何基于Mahout框架完成商品推薦300
18.2.5 基于Mahout框架的商品推薦實(shí)例300
18.3 推薦系統(tǒng)項(xiàng)目架構(gòu)302
18.4 推薦系統(tǒng)模型構(gòu)建303
18.5 核心代碼304
18.5.1 公共部分305
18.5.2 離線部分307
18.5.3 在線部分311
18.6 小結(jié)314
第19章 電信離網(wǎng)用戶挽留實(shí)戰(zhàn)315
19.1 商業(yè)理解315
19.2 數(shù)據(jù)理解316
19.2.1 收集數(shù)據(jù)316
19.2.2 了解數(shù)據(jù)317
19.2.3 保證數(shù)據(jù)質(zhì)量318
19.3 數(shù)據(jù)整理318
19.3.1 數(shù)據(jù)整合318
19.3.2 數(shù)據(jù)過濾319
19.4 數(shù)據(jù)清洗319
19.4.1 噪聲識別320
19.4.2 離群值和極端值的定義321
19.4.3 離群值處理方法321
19.4.4 數(shù)據(jù)空值處理示例323
19.5 數(shù)據(jù)轉(zhuǎn)換324
19.5.1 變量轉(zhuǎn)換324
19.5.2 壓縮分類水平數(shù)324
19.5.3 連續(xù)數(shù)據(jù)離散化325
19.5.4 變換啞變量326
19.5.5 數(shù)據(jù)標(biāo)準(zhǔn)化326
19.5.6 數(shù)據(jù)壓縮326
19.6 建模327
19.6.1 決策樹算法概述327
19.6.2 決策樹的訓(xùn)練步驟327
19.6.3 訓(xùn)練決策樹328
19.6.4 C4.5算法329
19.6.5 決策樹剪枝332
19.7 評估335
19.7.1 混淆矩陣335
19.7.2 ROC曲線336
19.8 部署338
19.9 用戶離網(wǎng)案例代碼詳解339
19.9.1 數(shù)據(jù)準(zhǔn)備339
19.9.2 相關(guān)性分析341
19.9.3 最終建模342
19.9.4 模型評估343
19.10 小結(jié)346