內容簡介
大數據貴在落實! 本書是一本講解大數據實戰的圖書,按照“深入分析組件原理、充分展示搭建過程、詳細指導套用開發”編寫。全書分為三篇,第一篇為大數據的基本概念和技術,主要介紹大數據的背景、發展及關鍵技術;第二篇為Hadoop大數據平台搭建與基本套用,內容涉及Linux、HDFS、MapReduce、YARN、Hive、HBase、Sqoop、Kafka、Spark等;第三篇為大數據處理與項目開發,包括互動式數據處理、協同過濾推薦系統、銷售數據分析系統,並就京東的部分銷售數據套用大數據進行處理分析。
目錄
第一篇 大數據的基本概念和技術
第1章 緒論 3
1.1 時代背景 3
1.1.1 全球大數據浪潮 3
1.1.2 我國的大數據國家戰略 5
1.2 大數據的概念 7
1.2.1 概念 7
1.2.2 特徵 8
1.3 技術支撐體系 9
1.3.1 概覽 9
1.3.2 大數據採集層 9
1.3.3 大數據存儲層 10
1.3.4 大數據分析(處理與服務)層 11
1.3.5 大數據套用層 11
1.3.6 垂直視圖 13
1.4 大數據人才及其能力要求 14
1.4.1 首席數據官 14
1.4.2 數據科學家(數據分析師) 15
1.4.3 大數據開發工程師 16
1.4.4 大數據運維工程師 17
1.5 本章小結 17
第2章 Hadoop大數據關鍵技術 19
2.1 Hadoop生態系統 19
2.1.1 架構的基本理論 19
2.1.2 主要組件及其關係 21
2.2 數據採集 24
2.2.1 結構化數據採集工具 24
2.2.2 日誌檔案採集工具與技術 25
2.3 大數據存儲技術 29
2.3.1 相關概念 29
2.3.2 分散式檔案存儲系統 34
2.3.3 資料庫與數據倉庫 38
2.4 分散式計算框架 43
2.4.1 離線計算框架 43
2.4.2 實時流計算平台 50
2.5 數據分析平台與工具 57
2.5.1 面向大數據的數據挖掘與分析工具 57
2.5.2 機器學習 61
2.6 本章小結 66
第二篇 Hadoop大數據平台搭建與基本套用
第3章 Linux作業系統與集群搭建 69
3.1 Linux作業系統 69
3.1.1 概述 69
3.1.2 特點 70
3.1.3 Linux的組成 72
3.2 Linux安裝與集群搭建 75
3.2.1 安裝VMware Workstation 75
3.2.2 在VMware上安裝Linux(CentOS7) 79
3.3 集群的配置 91
3.3.1 設定主機名 91
3.3.2 網路設定 93
3.3.3 關閉防火牆 98
3.3.4 安裝JDK 99
3.3.5 免密鑰登錄配置 102
3.4 Linux基本命令 105
3.5 本章小結 112
第4章 HDFS安裝與基本套用 113
4.1 HDFS概述 113
4.1.1 特點 113
4.1.2 主要組件與架構 114
4.2 HDFS架構分析 114
4.2.1 數據塊 114
4.2.2 NameNode 115
4.2.3 DataNode 116
4.2.4 SecondaryNameNode 117
4.2.5 數據備份 117
4.2.6 通信協定 118
4.2.7 可靠性保證 118
4.3 檔案操作過程分析 119
4.3.1 讀檔案 119
4.3.2 寫檔案 120
4.3.3 刪除檔案 122
4.4 Hadoop HDFS安裝與配置 122
4.4.1 解壓Hadoop安裝包 122
4.4.2 配置Hadoop環境變數 123
4.4.3 配置Yarn環境變數 124
4.4.4 配置核心組件檔案 125
4.4.5 配置檔案系統 125
4.4.6 配置yarn-site.xml檔案 126
4.4.7 配置MapReduce計算框架檔案 128
4.4.8 配置Master的slaves檔案 129
4.4.9 複製Master上的Hadoop到Slave節點 129
4.5 Hadoop集群的啟動 130
4.5.1 配置作業系統環境變數 130
4.5.2 創建Hadoop數據目錄 131
4.5.3 格式化檔案系統 132
4.5.4 啟動和關閉Hadoop 133
4.5.5 驗證Hadoop是否啟動成功 133
4.6 Hadoop集群的基本套用 136
4.6.1 HDFS基本命令 136
4.6.2 在Hadoop集群中運行程式 139
4.7 本章小結 141
第5章 MapReduce與Yarn 143
5.1 MapReduce程式的概念 143
5.1.1 基本編程模型 143
5.1.2 計算過程分析 144
5.2 深入理解Yarn 147
5.2.1 Yarn的基本架構 147
5.2.2 Yarn的工作流程 151
5.3 在Linux平台安裝Eclipse 152
5.3.1 Eclipse簡介 153
5.3.2 安裝並啟動Eclipse 154
5.4 開發MapReduce程式的基本方法 155
5.4.1 為Eclipse安裝Hadoop外掛程式 156
5.4.2 WordCount:第一個MapReduce程式 160
5.5 本章小結 175
第6章 Hive和HBase的安裝與套用 177
6.1 在CentOS7下安裝MySQL 177
6.1.1 下載或複製MySQL安裝包 177
6.1.2 執行安裝命令 178
6.1.3 啟動MySQL 179
6.1.4 登錄MySQL 179
6.1.5 使用MySQL 181
6.1.6 問題與解決辦法 182
6.2 Hive安裝與套用 183
6.2.1 下載並解壓Hive安裝包 183
6.2.2 配置Hive 184
6.2.3 啟動並驗證Hive 187
6.2.4 Hive的基本套用 189
6.3 ZooKeeper集群安裝 190
6.3.1 ZooKeeper簡介 190
6.3.2 安裝ZooKeeper 191
6.3.3 配置ZooKeeper 191
6.3.4 啟動和測試 193
6.4 HBase的安裝與套用 195
6.4.1 解壓並安裝HBase 195
6.4.2 配置HBase 196
6.4.3 啟動並驗證HBase 199
6.4.4 HBase的基本套用 200
6.4.5 套用HBase中常見問題及其解決辦法 203
6.5 本章小結 204
第7章 Sqoop和Kafka的安裝與套用 205
7.1 安裝部署Sqoop 205
7.1.1 下載或複製Sqoop安裝包 205
7.1.2 解壓並安裝Sqoop 206
7.1.3 配置Sqoop 206
7.1.4 啟動並驗證Sqoop 208
7.1.5 測試Sqoop與MySQL的連線 209
7.2 安裝部署Kafka集群 211
7.2.1 下載或複製Kafka安裝包 211
7.2.2 解壓縮Kafka安裝包 211
7.2.3 配置Kafka集群 211
7.2.4 Kafka的初步套用 213
7.3 本章小結 218
第8章 Spark集群安裝與開發環境配置 219
8.1 深入理解Spark 219
8.1.1 Spark系統架構 219
8.1.2 關鍵概念 221
8.2 安裝與配置Scala 224
8.2.1 下載Scala安裝包 225
8.2.2 安裝Scala 225
8.2.3 啟動並套用Scala 226
8.3 Spark集群的安裝與配置 226
8.3.1 安裝模式 226
8.3.2 Spark的安裝 227
8.3.3 啟動並驗證Spark 230
8.3.4 幾點說明 234
8.4 開發環境安裝與配置 236
8.4.1 IDEA簡介 236
8.4.2 IDEA的安裝 236
8.4.3 IDEA的配置 238
8.5 本章小結 243
第9章 Spark套用基礎 245
9.1 Spark程式的運行模式 245
9.1.1 Spark on Yarn-cluster 245
9.1.2 Spark on Yarn-client 246
9.2 Spark套用設計 247
9.2.1 分散式估算圓周率 248
9.2.2 基於Spark MLlib的貸款風險預測 265
9.3 本章小結 285
第三篇 數據處理與項目開發術
第10章 互動式數據處理 289
10.1 數據預處理 289
10.1.1 查看數據 289
10.1.2 數據擴展 291
10.1.3 數據過濾 292
10.1.4 數據上傳 293
10.2 創建數據倉庫 294
10.2.1 創建Hive數據倉庫的基本命令 294
10.2.2 創建Hive分區表 296
10.3 數據分析 299
10.3.1 基本統計 299
10.3.2 用戶行為分析 301
10.3.3 實時數據 303
10.4 本章小結 304
第11章 協同過濾推薦系統 305
11.1 推薦算法概述 305
11.1.1 基於人口統計學的推薦 305
11.1.2 基於內容的推薦 306
11.1.3 協同過濾推薦 307
11.2 協同過濾推薦算法分析 308
11.2.1 基於用戶的協同過濾推薦 308
11.2.2 基於物品的協同過濾推薦 310
11.3 Spark MLlib推薦算法套用 312
11.3.1 ALS算法原理 312
11.3.2 ALS的套用設計 315
11.4 本章小結 329
第12章 銷售數據分析系統 331
12.1 數據採集 331
12.1.1 在Windows下安裝JDK 331
12.1.2 在Windows下安裝Eclipse 334
12.1.3 將WebCollector項目導入Eclipse 335
12.1.4 在Windows下安裝MySQL 336
12.1.5 連線JDBC 339
12.1.6 運行爬蟲程式 340
12.2 在HBase集群上準備數據 342
12.2.1 將數據導入到MySQL 342
12.2.2 將MySQL表中的數據導入到HBase表中 344
12.3 安裝Phoenix中間件 347
12.3.1 Phoenix架構 347
12.3.2 解壓安裝Phoenix 348
12.3.3 Phoenix環境配置 349
12.3.4 使用Phoenix 350
12.4 基於Web的前端開發 353
12.4.1 將Web前端項目導入Eclipse 353
12.4.2 安裝Tomcat 355
12.4.3 在Eclipse中配置Tomcat 355
12.4.4 在Web瀏覽器中查看執行結果 359
12.5 本章小結 361