從零開始學(xué)Hadoop大數(shù)據(jù)分析(視頻教學(xué)版)
定 價:89 元
當(dāng)前圖書已被 11 所學(xué)校薦購過!
查看明細(xì)
- 作者:
- 出版時間: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,每個知識點配有可運行的案例,同時結(jié)合企業(yè)實際案例,讓讀者能夠掌握從大數(shù)據(jù)環(huán)境搭建到大數(shù)據(jù)核心技術(shù),并且進(jìn)一步熟悉企業(yè)案例的分析及開發(fā)過程,從而輕松進(jìn)入到大數(shù)據(jù)領(lǐng)域。本書實用性強(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ù)的特點3
1.1.4 大數(shù)據(jù)在各個行業(yè)中的應(yīng)用4
1.1.5 大數(shù)據(jù)計算模式4
1.1.6 大數(shù)據(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è)計23
3.2.3 HDFS的優(yōu)點和缺點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高可用實現(xiàn)原理47
4.3.2 HDFS高可用實現(xiàn)48
4.4 搭建HDFS高可用50
4.4.1 配置ZooKeeper50
4.4.2 配置Hadoop配置文件52
4.4.3 將配置文件復(fù)制到其他節(jié)點上54
4.4.4 啟動JN節(jié)點54
4.4.5 格式化55
4.4.6 復(fù)制元數(shù)據(jù)到node2節(jié)點上55
4.4.7 格式化ZKFC55
4.4.8 啟動集群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會話機(jī)制60
5.1.2 數(shù)據(jù)節(jié)點、版本與Watcher的關(guān)聯(lián)61
5.1.3 ACL策略61
5.2 ZooKeeper的安裝與運行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命令——創(chuàng)建節(jié)點65
5.4.4 get命令——獲取數(shù)據(jù)與信息66
5.4.5 set命令——修改節(jié)點內(nèi)容66
5.4.6 delete命令——刪除節(jié)點67
5.5 使用Java API訪問ZooKeeper67
5.5.1 環(huán)境準(zhǔn)備與創(chuàng)建會話實例68
5.5.2 節(jié)點創(chuàng)建實例69
5.5.3 Java API訪問ZooKeeper實例70
5.6 小結(jié)73
第6章 分布式離線計算框架——MapReduce74
6.1 MapReduce概述74
6.1.1 MapReduce的特點74
6.1.2 MapReduce的應(yīng)用場景75
6.2 MapReduce執(zhí)行過程76
6.2.1 單詞統(tǒng)計實例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實例79
6.3.1 WordCount本地測試實例79
6.3.2 ETL本地測試實例84
6.4 溫度排序?qū)嵗?6
6.4.1 時間和溫度的封裝類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è)計的目的與應(yīng)用104
8.1.4 Hive的運行架構(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ù)實例121
8.6.2 自定義UDAF函數(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實例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的特點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)用典型實例149
10.6.1 本地數(shù)據(jù)讀。╟onf1)149
10.6.2 收集至HDFS150
10.6.3 基于日期分區(qū)的數(shù)據(jù)收集152
10.7 通過exec命令實現(xiàn)數(shù)據(jù)收集153
10.7.1 安裝工具153
10.7.2 編輯配置文件conf4155
10.7.3 運行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)入實例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)出實例172
11.6 小結(jié)173
第12章 分布式消息隊列——Kafka174
12.1 什么是Kafka174
12.2 Kafka的架構(gòu)和主要組件174
12.2.1 消息記錄的類別名——Topic175
12.2.2 Producer與Consumer——數(shù)據(jù)的生產(chǎn)和消費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)用實例181
12.4.1 Producer實例181
12.4.2 Consumer實例182
12.5 小結(jié)184
第13章 開源的內(nèi)存數(shù)據(jù)庫——Redis185
13.1 Redis簡介185
13.1.1 什么是Redis185
13.1.2 Redis的特點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ū)動包和修改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章 快速且通用的集群計算系統(tǒng)——Spark228
15.1 Spark基礎(chǔ)知識228
15.1.1 Spark的特點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è)運行機(jī)制232
15.4 運行在YARN上的Spark233
15.4.1 在YARN上運行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實例詳解241
15.6.1 網(wǎng)站用戶瀏覽次數(shù)最多的URL統(tǒng)計241
15.6.2 用戶地域定位實例243
15.7 小結(jié)246
第3篇 Hadoop項目案例實戰(zhàn)
第16章 基于電商產(chǎn)品的大數(shù)據(jù)業(yè)務(wù)分析系統(tǒng)實戰(zhàn)248
16.1 項目背景、實現(xiàn)目標(biāo)和項目需求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 啟動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ù)分析——創(chuàng)建外部表261
16.6 建立模型264
16.6.1 各年齡段用戶消費總額264
16.6.2 查詢各品牌銷售總額265
16.6.3 查詢各省份消費總額266
16.6.4 使用Sqoop將數(shù)據(jù)導(dǎo)入MySQL數(shù)據(jù)庫266
16.7 數(shù)據(jù)可視化268
16.8 小結(jié)272
第17章 用戶畫像分析實戰(zhàn)273
17.1 項目背景273
17.2 項目目標(biāo)與項目開發(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 項目流程介紹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 項目部署293
17.5 小結(jié)294
第18章 基于個性化的視頻推薦系統(tǒng)實戰(zhàn)295
18.1 項目背景295
18.2 項目目標(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框架的商品推薦實例300
18.3 推薦系統(tǒ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)用戶挽留實戰(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