Hadoop大數據開發實戰(慕課版)
內容描述
共分11章,第1章對大數據及Hadoop進行總體介紹,第2章講解瞭如何搭建Hadoop集群。第3-5章講解了HDFS分佈式文件系統、MapReduce分佈式計算框架以及Zookeeper分佈式協調服務。第6章講解Hadoop2.0的新特性。第7-10章主要講解了Hadoop生態圈中的相關輔助系統,包括Hive、HBase分佈式存儲系統、Flume、Saoop。第11章講解了綜合項目:電商精準營銷。
目錄大綱
第1章 初識Hadoop 1
1.1 大數據簡介 1
1.1.1 大數據的五大特徵 1
1.1.2 大數據的六大發展趨勢 3
1.1.3 大數據在電商行業的應用 4
1.1.4 大數據在交通行業的應用 5
1.1.5 大數據在醫療行業的應用 5
1.2 大數據技術的核心需求 5
1.3 Hadoop簡介 6
1.3.1 什麽是Hadoop 6
1.3.2 Hadoop的產生和發展 6
1.3.3 Hadoop的優缺點 7
1.3.4 Hadoop版本介紹 7
1.3.5 Hadoop生態圈的相關組件 7
1.3.6 Hadoop應用介紹 8
1.3.7 國內Hadoop的就業情況分析 9
1.3.8 分佈式系統概述 10
1.4 離線數據分析流程介紹 10
1.4.1 項目需求描述 11
1.4.2 數據來源 11
1.4.3 數據處理流程 11
1.4.4 項目最終效果 12
1.5 大數據學習流程 12
1.6 本章小結 13
1.7 習題 14
第2章 搭建Hadoop集群 15
2.1 安裝準備 15
2.1.1 虛擬機安裝 15
2.1.2 虛擬機克隆 21
2.1.3 Linux系統網絡配置 23
2.1.4 SSH服務配置 26
2.2 Linux基本命令 28
2.2.1 系統工作命令 29
2.2.2 磁盤操作命令 30
2.2.3 目錄與文件操作命令 30
2.2.4 權限操作命令 31
2.3 Hadoop集群搭建 32
2.3.1 Hadoop集群部署模式 32
2.3.2 安裝JDK 32
2.3.3 安裝Hadoop 33
2.3.4 Hadoop集群配置 34
2.4 Hadoop 集群測試 37
2.4.1 格式化文件系統 37
2.4.2 啟動和關閉Hadoop進程命令 37
2.4.3 啟動和查看Hadoop進程 38
2.4.4 查看Web界面 38
2.5 使用Hadoop集群 39
2.6 本章小結 40
2.7 習題 40
第3章 HDFS分佈式文件系統 41
3.1 HDFS簡介 41
3.1.1 HDFS的概念 41
3.1.2 HDFS數據的存儲和讀取方式 42
3.1.3 HDFS的特點 42
3.2 HDFS存儲架構和數據讀寫流程 43
3.2.1 HDFS的存儲架構 43
3.2.2 HDFS的數據讀寫流程 44
3.3 HDFS的Shell命令 46
3.4 Java程序操作HDFS 47
3.4.1 HDFS Java API概述 47
3.4.2 使用Java API操作HDFS 47
3.5 Hadoop序列化 55
3.5.1 Hadoop序列化簡介 55
3.5.2 常用實現Writable接口的類 56
3.5.3 自定義實現Writable接口的類 58
3.6 Hadoop小文件處理 59
3.6.1 壓縮小文件 59
3.6.2 創建序列文件 60
3.7 通信機制RPC 63
3.7.1 RPC簡介 63
3.7.2 Hadoop的RPC架構 63
3.8 本章小結 64
3.9 習題 64
第4章 MapReduce分佈式計算框架 65
4.1 認識MapReduce 65
4.1.1 MapReduce核心思想 65
4.1.2 MapReduce編程模型 65
4.1.3 MapReduce編程案例——WordCount 67
4.2 MapReduce編程組件 72
4.2.1 InputFormat組件 72
4.2.2 OutputFormat組件 73
4.2.3 RecordReader組件和
RecordWriter組件 76
4.2.4 Partitioner組件 76
4.2.5 Combiner組件 78
4.3 MapReduce作業解析 82
4.3.1 MapReduce作業簡介 82
4.3.2 MapReduce作業運行時的資源調度 82
4.3.3 MapReduce作業運行流程 83
4.4 MapReduce工作原理 83
4.4.1 Map任務工作原理 83
4.4.2 Reduce任務工作原理 83
4.5 Shuffle階段 83
4.5.1 Shuffle的概念 83
4.5.2 Map端的Shuffle 84
4.5.3 Reduce端的Shuffle 85
4.6 優化——數據傾斜 85
4.7 MapReduce典型案例——排序 86
4.7.1 部分排序 86
4.7.2 全排序 87
4.8 MapReduce典型案例——倒排索引 91
4.8.1 準備模擬數據 91
4.8.2 輸出數據解析 92
4.8.3 編寫MapReduce程序 92
4.9 MapReduce典型案例——連接 94
4.9.1 準備模擬數據 94
4.9.2 輸出數據解析 94
4.9.3 編寫MapReduce程序 94
4.10 MapReduce典型案例——平均分以及百分比 97
4.10.1 準備模擬數據 97
4.10.2 輸出數據解析 97
4.10.3 編寫MapReduce程序 97
4.11 MapReduce典型案例——過濾敏感詞匯 100
4.11.1 準備模擬數據 100
4.11.2 創建敏感詞庫 101
4.11.3 編寫MapReduce程序 101
4.12 本章小結 103
4.13 習題 103
第5章 ZooKeeper分佈式協調服務 105
5.1 認識ZooKeeper 105
5.1.1 ZooKeeper簡介 105
5.1.2 ZooKeeper的設計目的 105
5.1.3 ZooKeeper的系統模型 106
5.1.4 ZooKeeper中的角色 106
5.1.5 ZooKeeper的工作原理 107
5.2 ZooKeeper安裝和常用命令 108
5.2.1 ZooKeeper單機模式 108
5.2.2 ZooKeeper全分佈式 109
5.2.3 ZooKeeper服務器常用腳本 111
5.2.4 ZooKeeper客戶端節點和命令 111
5.3 ZooKeeper客戶端編程 113
5.3.1 配置開發環境 113
5.3.2 Java程序操作ZooKeeper客戶端 114
5.4 ZooKeeper典型應用場景 115
5.4.1 數據發布與訂閱 115
5.4.2 命名服務 115
5.4.3 分佈式鎖 116
5.5 本章小結 116
5.6 習題 116
第6章 Hadoop 2.0新特性 118
6.1 Hadoop 2.0的改進 118
6.1.1 HDFS存在的問題 118
6.1.2 MapReduce存在的問題 118
6.1.3 HDFS 2.0解決HDFS 1.0中的問題 119
6.2 YARN資源管理框架 119
6.2.1 YARN簡介 119
6.2.2 YARN架構 119
6.2.3 YARN的優勢 120
6.3 Hadoop的HA模式 120
6.3.1 HA模式簡介 120
6.3.2 HDFS的HA模式 121
6.3.3 YARN的HA模式 127
6.3.4 啟動和關閉Hadoop的HA模式 131
6.4 本章小結 132
6.5 習題 132
第7章 Hive 133
7.1 數據倉庫簡介 133
7.1.1 數據倉庫概述 133
7.1.2 數據倉庫的使用 133
7.1.3 數據倉庫的特點 134
7.1.4 主流的數據倉庫 134
7.2 認識Hive 134
7.2.1 Hive簡介 134
7.2.2 Hive架構 135
7.2.3 Hive和關系型數據庫比較 136
7.3 Hive安裝 136
7.4 Hive數據類型 140
7.4.1 Hive基本數據類型 140
7.4.2 Hive復雜數據類型 141
7.5 Hive數據庫操作 142
7.6 Hive表 143
7.6.1 內部表和外部表 143
7.6.2 對表進行分區 149
7.6.3 對表或分區進行桶操作 153
7.7 Hive表的查詢 156
7.7.1 select查詢語句 156
7.7.2 視圖 161
7.7.3 Join 162
7.8 Hive函數 165
7.8.1 Hive內置函數 165
7.8.2 通過JDBC驅動程序使用Hiveserver2服務 167
7.8.3 Hive用戶自定義函數 169
7.9 Hive性能優化 171
7.10 Hive案例分析 173
7.11 本章小結 174
7.12 習題 174
第8章 HBase分佈式存儲系統 175
8.1 認識HBase 175
8.1.1 HBase簡介 175
8.1.2 HBase的數據模型 176
8.1.3 HBase架構 176
8.1.4 HBase文件存儲格式 178
8.1.5 HBase存儲流程 179
8.1.6 HBase和HDFS 179
8.2 HBase表設計 179
8.2.1 列簇設計 179
8.2.2 行鍵設計 180
8.3 HBase安裝 180
8.3.1 HBase的單機模式 180
8.3.2 HBase的HA模式 182
8.4 HBase Shell常用操作 184
8.5 HBase編程 190
8.5.1 配置開發環境 190
8.5.2 使用Java API操作HBase 191
8.5.3 使用HBase實現WordCount 193
8.6 HBase過濾器和比較器 195
8.6.1 過濾器 195
8.6.2 比較器 196
8.6.3 編程實例 196
8.7 HBase與Hive結合 201
8.7.1 HBase與Hive結合的原因 201
8.7.2 Hive關聯HBase 201
8.8 HBase性能優化 202
8.9 本章小結 204
8.10 習題 204
第9章 Flume 205
9.1 認識Flume 205
9.1.1 Flume簡介 205
9.1.2 Flume的特點 205
9.2 Flume基本組件 206
9.2.1 Event 206
9.2.2 Agent 206
9.3 Flume安裝 207
9.4 Flume數據流模型 208
9.5 Flume的可靠性保證 210
9.5.1 負載均衡 210
9.5.2 故障轉移 211
9.6 Flume攔截器 212
9.7 採集案例 214
9.7.1 採集目錄到HDFS 214
9.7.2 採集文件到HDFS 215
9.8 本章小結 216
9.9 習題 216
第10章 Sqoop 217
10.1 認識Sqoop 217
10.1.1 Sqoop簡介 217
10.1.2 Sqoop原理 218
10.1.3 Sqoop架構 218
10.2 Sqoop安裝 218
10.3 Sqoop命令 220
10.3.1 Sqoop數據庫連接參數 221
10.3.2 Sqoop export參數 221
10.3.3 Sqoop import參數 221
10.3.4 Sqoop import命令的基本操作 221
10.4 Sqoop數據導入 222
10.4.1 將MySQL的數據導入HDFS 222
10.4.2 將MySQL的數據導入Hive 223
10.4.3 將MySQL的數據導入HBase 226
10.4.4 增量導入 227
10.4.5 按需導入 229
10.5 Sqoop數據導出 230
10.5.1 將HDFS的數據導出到MySQL 230
10.5.2 將Hive的數據導出到MySQL 231
10.5.3 將HBase的數據導出到MySQL 231
10.6 Sqoop job 233
10.7 本章小結 233
10.8 習題 234
第11章 綜合項目——電商精準營銷 235
11.1 項目概述 235
11.1.1 項目背景介紹 235
11.1.2 項目架構設計 235
11.2 項目詳細介紹 237
11.2.1 項目核心關註點 237
11.2.2 重要概念 237
11.2.3 維度 238
11.3 項目模塊分析 239
11.3.1 用戶基本信息分析模塊 239
11.3.2 瀏覽器分析模塊 239
11.3.3 地域分析模塊 239
11.3.4 外鏈分析模塊 239
11.4 數據採集 240
11.4.1 日誌採集系統概述 240
11.4.2 JS SDK收集數據 240
11.4.3 Java SDK收集數據 242
11.4.4 使用Flume搭建日誌採集系統 243
11.4.5 日誌信息說明 244
11.5 數據清洗 245
11.5.1 分析需要清洗的數據 245
11.5.2 解析數據格式轉換 245
11.5.3 利用MapReduce清洗數據 245
11.6 使用數據倉庫進行數據分析 253
11.6.1 事件板塊數據分析 253
11.6.2 訂單板塊數據分析 257
11.6.3 時間板塊數據分析 262
11.7 可視化 264
11.7.1 ECharts簡介 264
11.7.2 ECharts的優點 265
11.7.3 操作流程 265
11.8 本章小結 267
11.9 習題 267
附錄 268
作者介紹
千锋教育 1.千锋教育采用全程面授高品质、高成本培养模式,教学大纲紧跟企业需求,拥有全国一体化就业保障服务,成为学员信赖的IT职业教育品牌。 2.获得荣誉包括:中关村移动互联网产业联盟副理事长单位、中国软件协会教育培训委员会认证一级培训机构、中关村国际孵化软件协会授权中关村移动互联网学院、教育部教育管理信息中心指定移动互联网实训基地等。