從零開始學Hadoop大數(shù)據(jù)分析(視頻教學版)
定 價:89 元
當前圖書已被 11 所學校薦購過!
查看明細
- 作者:
- 出版時間:2019/3/1
- ISBN:9787111619314
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書針對愿意加入大數(shù)據(jù)行業(yè)的初學者量身定做,以簡練風趣的語言介紹了大數(shù)據(jù)程核心技術及相關案例。內容包括了數(shù)據(jù)的基本概念、Hadoop的安裝與配置、HDFS、基于Hadoop3的HDFS高可用、Zookeeper、MapReduce、YARN、Sqoop、KafKa、Redis,每個知識點配有可運行的案例,同時結合企業(yè)實際案例,讓讀者能夠掌握從大數(shù)據(jù)環(huán)境搭建到大數(shù)據(jù)核心技術,并且進一步熟悉企業(yè)案例的分析及開發(fā)過程,從而輕松進入到大數(shù)據(jù)領域。本書實用性強,非常適合Hadoop大數(shù)據(jù)分析入門讀者閱讀,也適合相關院校作為大數(shù)據(jù)分析與挖掘的教材使用。
前言
第1篇 Hadoop基礎知識
第1章 初識Hadoop2
1.1 大數(shù)據(jù)初探2
1.1.1 大數(shù)據(jù)技術2
1.1.2 大數(shù)據(jù)技術框架3
1.1.3 大數(shù)據(jù)的特點3
1.1.4 大數(shù)據(jù)在各個行業(yè)中的應用4
1.1.5 大數(shù)據(jù)計算模式4
1.1.6 大數(shù)據(jù)與云計算、物聯(lián)網(wǎng)的關系4
1.2 Hadoop簡介5
1.2.1 Hadoop應用現(xiàn)狀6
1.2.2 Hadoop簡介與意義6
1.3 小結6
第2章 Hadoop的安裝與配置7
2.1 虛擬機的創(chuàng)建7
2.2 安裝Linux系統(tǒng)10
2.3 配置網(wǎng)絡信息11
2.4 克隆服務器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 小結21
第3章 Hadoop分布式文件系統(tǒng)22
3.1 DFS介紹22
3.1.1 什么是DFS22
3.1.2 DFS的結構22
3.2 HDFS介紹23
3.2.1 HDFS的概念及體系結構23
3.2.2 HDFS的設計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的應用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 小結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集群架構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和主機名字映射關系41
4.2.5 SSH免密碼登錄設置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 將配置文件復制到其他節(jié)點上54
4.4.4 啟動JN節(jié)點54
4.4.5 格式化55
4.4.6 復制元數(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 小結58
第2篇 Hadoop核心技術
第5章 Hadoop的分布式協(xié)調服務——ZooKeeper60
5.1 ZooKeeper的核心概念60
5.1.1 Session會話機制60
5.1.2 數(shù)據(jù)節(jié)點、版本與Watcher的關聯(lián)61
5.1.3 ACL策略61
5.2 ZooKeeper的安裝與運行61
5.3 ZooKeeper服務器端的常用命令63
5.4 客戶端連接ZooKeeper的相關操作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é)點內容66
5.4.6 delete命令——刪除節(jié)點67
5.5 使用Java API訪問ZooKeeper67
5.5.1 環(huán)境準備與創(chuàng)建會話實例68
5.5.2 節(jié)點創(chuàng)建實例69
5.5.3 Java API訪問ZooKeeper實例70
5.6 小結73
第6章 分布式離線計算框架——MapReduce74
6.1 MapReduce概述74
6.1.1 MapReduce的特點74
6.1.2 MapReduce的應用場景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 溫度排序實例86
6.4.1 時間和溫度的封裝類MyKey.Java87
6.4.2 Map任務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任務MyReducer.java90
6.4.7 主函數(shù)RunJob.java91
6.5 小結94
第7章 Hadoop的集群資源管理系統(tǒng)——YARN95
7.1 為什么要使用YARN95
7.2 YARN的基本架構96
7.2.1 ResourceManager進程96
7.2.2 ApplicationMaster和NodeManager97
7.3 YARN工作流程97
7.4 YARN搭建98
7.5 小結100
第8章 Hadoop的數(shù)據(jù)倉庫框架——Hive101
8.1 Hive的理論基礎101
8.1.1 什么是Hive101
8.1.2 Hive和數(shù)據(jù)庫的異同102
8.1.3 Hive設計的目的與應用104
8.1.4 Hive的運行架構104
8.1.5 Hive的執(zhí)行流程105
8.1.6 Hive服務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 導入數(shù)據(jù)114
8.4 表的分區(qū)與分桶115
8.4.1 表的分區(qū)115
8.4.2 表的分桶117
8.5 內部表與外部表118
8.5.1 內部表119
8.5.2 外部表119
8.6 內置函數(shù)與自定義函數(shù)121
8.6.1 內置函數(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 小結127
第9章 大數(shù)據(jù)快速讀寫——HBase128
9.1 關于NoSQL128
9.1.1 什么是NoSQL128
9.1.2 NoSQL數(shù)據(jù)庫的分類129
9.1.3 NoSQL數(shù)據(jù)庫的應用129
9.1.4 關系型數(shù)據(jù)庫與非關系型數(shù)據(jù)庫的區(qū)別130
9.2 HBase基礎130
9.2.1 HBase簡介130
9.2.2 HBase數(shù)據(jù)模型131
9.2.3 HBase體系架構及組件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 小結142
第10章 海量日志采集工具——Flume143
10.1 什么是Flume143
10.2 Flume的特點143
10.3 Flume架構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應用典型實例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 小結158
第11章 Hadoop和關系型數(shù)據(jù)庫間的數(shù)據(jù)傳輸工具——Sqoop159
11.1 什么是Sqoop159
11.2 Sqoop工作機制159
11.3 Sqoop的安裝與配置161
11.3.1 下載Sqoop161
11.3.2 Sqoop配置162
11.4 Sqoop數(shù)據(jù)導入實例163
11.4.1 向HDFS中導入數(shù)據(jù)165
11.4.2 將數(shù)據(jù)導入Hive167
11.4.3 向HDFS中導入查詢結果170
11.5 Sqoop數(shù)據(jù)導出實例172
11.6 小結173
第12章 分布式消息隊列——Kafka174
12.1 什么是Kafka174
12.2 Kafka的架構和主要組件174
12.2.1 消息記錄的類別名——Topic175
12.2.2 Producer與Consumer——數(shù)據(jù)的生產和消費176
12.2.3 其他組件——Broker、Partition、Offset、Segment177
12.3 Kafka的下載與集群安裝177
12.3.1 安裝包的下載與解壓177
12.3.2 Kafka的安裝配置178
12.4 Kafka應用實例181
12.4.1 Producer實例181
12.4.2 Consumer實例182
12.5 小結184
第13章 開源的內存數(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 設置密碼登錄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 小結197
第14章 Ambari和CDH198
14.1 Ambari的安裝與集群管理198
14.1.1 認識HDP與Ambari198
14.1.2 Ambari的搭建199
14.1.3 配置網(wǎng)卡與修改本機名199
14.1.4 定義DNS服務器與修改hosts主機映射關系200
14.1.5 關閉防火墻并安裝JDK200
14.1.6 升級OpenSSL安全套接層協(xié)議版本201
14.1.7 關閉SELinux的強制訪問控制201
14.1.8 SSH免密碼登錄202
14.1.9 同步NTP202
14.1.10 關閉Linux的THP服務204
14.1.11 配置UMASK與HTTP服務204
14.1.12 安裝本地源制作相關工具與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 修改本機名與定義DNS服務器217
14.2.5 修改hosts主機映射關系218
14.2.6 關閉防火墻218
14.2.7 安裝JDK219
14.2.8 升級OpenSSL安全套接層協(xié)議版本219
14.2.9 禁用SELinux的強制訪問功能220
14.2.10 SSH 免密碼登錄220
14.2.11 同步NTP安裝220
14.2.12 安裝MySQL222
14.2.13 安裝Cloudera Manager222
14.2.14 添加MySQL驅動包和修改Agent配置223
14.2.15 初始化CM5數(shù)據(jù)庫和創(chuàng)建cloudera-scm用戶223
14.2.16 準備Parcels223
14.2.17 CDH的安裝配置224
14.3 小結227
第15章 快速且通用的集群計算系統(tǒng)——Spark228
15.1 Spark基礎知識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è)運行機制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 小結246
第3篇 Hadoop項目案例實戰(zhàn)
第16章 基于電商產品的大數(shù)據(jù)業(yè)務分析系統(tǒng)實戰(zhàn)248
16.1 項目背景、實現(xiàn)目標和項目需求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 查看文件內容255
16.3.6 上傳user.list文件256
16.3.7 上傳brand.list目錄256
16.4 數(shù)據(jù)預處理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ù)導入MySQL數(shù)據(jù)庫266
16.7 數(shù)據(jù)可視化268
16.8 小結272
第17章 用戶畫像分析實戰(zhàn)273
17.1 項目背景273
17.2 項目目標與項目開發(fā)過程274
17.2.1 數(shù)據(jù)采集274
17.2.2 數(shù)據(jù)預處理275
17.2.3 模型構建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任務1:UserProfileMapReduce.java285
17.3.12 MapReduce任務2:UserProfileMapReduce2.java289
17.3.13 UserProfilePutInHbaseMap.java:提取用戶畫像291
17.3.14 UserProfilePutInHbaseReduce:存儲用戶畫像292
17.4 項目部署293
17.5 小結294
第18章 基于個性化的視頻推薦系統(tǒng)實戰(zhàn)295
18.1 項目背景295
18.2 項目目標與推薦系統(tǒng)簡介295
18.2.1 推薦系統(tǒng)的分類295
18.2.2 推薦模型的構建流程296
18.2.3 推薦系統(tǒng)核心算法297
18.2.4 如何基于Mahout框架完成商品推薦300
18.2.5 基于Mahout框架的商品推薦實例300
18.3 推薦系統(tǒng)項目架構302
18.4 推薦系統(tǒng)模型構建303
18.5 核心代碼304
18.5.1 公共部分305
18.5.2 離線部分307
18.5.3 在線部分311
18.6 小結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ù)質量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ù)轉換324
19.5.1 變量轉換324
19.5.2 壓縮分類水平數(shù)324
19.5.3 連續(xù)數(shù)據(jù)離散化325
19.5.4 變換啞變量326
19.5.5 數(shù)據(jù)標準化326
19.5.6 數(shù)據(jù)壓縮326
19.6 建模327
19.6.1 決策樹算法概述327
19.6.2 決策樹的訓練步驟327
19.6.3 訓練決策樹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ù)準備339
19.9.2 相關性分析341
19.9.3 最終建模342
19.9.4 模型評估343
19.10 小結346