Hadoop+Spark大數據技術(微課版)

Hadoop+Spark大數據技術(微課版)

《Hadoop+Spark大數據技術(微課版)》是2018年11月清華大學出版社出版的圖書,作者是劉彬斌主、李柏章、周磊、李永富。

基本介紹

  • 中文名:Hadoop+Spark大數據技術(微課版)
  • 作者:劉彬斌主、李柏章、周磊、李永富
  • 出版社清華大學出版社
  • 出版時間:2018年11月
  • 定價:69 元
  • ISBN:9787302514275
內容簡介,圖書目錄,

內容簡介

全書內容分為大數據系統基礎、Hadoop技術、Spark技術和項目實戰4部分。其中,Linux是學習大數據技術的基礎,先從Linux入手,打下堅實的基礎,之後才能更好地學習Hadoop和Spark。4部分內容分別介紹如下。
大數據系統基礎篇通過大數據概述、Linux系統安裝、Linux系統基礎命令、Shell編程和MySQL數據操作,為以後編程奠定堅實的基礎。
Hadoop技術篇以Hadoop生態圈為中心,詳細介紹Hadoop高可用集群搭建、HDFS技術、MapReduce技術、Hive技術,為讀者學習大數據開發技術提供便利,並以實用的方式簡單介紹HBase、Sqoop、Flume工具的使用,使讀者在精通一門技術的前提下,能擴展了解相關知識,真正成為一專多能的專業型人才。
Spark技術篇從Spark概述、Scala語言、環境搭建、RDD核心技術、Spark SQL和機器學習等多方面講解Spark大數據的開發,從基礎的Scala語言開始學習,並以Hadoop環境為基礎搭建Spark大數據集群,從最基礎、最常用、最容易理解的思路出發,幫助讀者逐步掌握Spark大數據技術。
項目實戰篇從真實項目“電力能源大數據分析”中抽取一部分業務作為實戰解讀,通過簡潔的流程講解,使讀者了解大數據項目開發的整個過程。

圖書目錄

第1篇 大數據系統基礎
第1章 大數據概述 3
1.1 數據的產生與發展 3
1.2 大數據的基礎知識 4
1.3 大數據架構 5
第2章 系統的安裝與使用 7
2.1 系統安裝 7
2.1.1 安裝CentOS 6.x 7
2.1.2 安裝步驟 7
2.2 基本命令 18
2.2.1 cd命令 18
2.2.2 打包和解壓指令 19
2.2.3 其他常用命令 21
2.3 許可權與 26
2.3.1 許可權 26
2.3.2 27
2.4 檔案操作 28
2.4.1 檔案與管理 28
2.4.2 用戶和用戶組管理 39
2.5 習題與思考 46
第3章 任務命令 47
3.1 腳本配置 47
3.1.1 Shell腳本 47
3.1.2 Shell變數 47
3.1.3 Shell傳遞參數 48
3.1.4 Shell數組 50
3.1.5 Shell運算符 51
3.1.6 Shell echo命令 55
3.1.7 Shell printf命令 57
3.1.8 Shell test命令 58
3.1.9 Shell流程控制 60
3.2 網路配置 67
3.3 習題與思考 70
第4章 資料庫操作 71
4.1 資料庫簡介 71
4.1.1 MySQL資料庫簡介 71
4.1.2 安裝MySQL 72
4.2 資料庫基本操作 72
4.2.1 MySQL的DDL操作 72
4.2.2 MySQL的DML操作 80
4.3 資料庫用戶操作 83
4.3.1 創建用戶 83
4.3.2 給用戶授權 83
4.3.3 撤銷授權 84
4.3.4 查看用戶許可權 85
4.3.5 刪除用戶 85
4.3.6 修改用戶密碼 86
4.4 資料庫查詢操作 86
4.5 習題與思考 90
第2篇 Hadoop技術
第5章 Hadoop開發環境 95
5.1 Hadoop生態圈工具 95
5.2 環境搭建 97
5.2.1 步驟1——虛擬機安裝 97
5.2.2 步驟2——安裝JDK和Hadoop 97
5.2.3 步驟3——複製虛擬機 113
5.2.4 步驟4——設定免密 117
5.2.5 步驟5——安裝Zookeeper 119
5.2.6 步驟6——啟動Hadoop集群 122
5.2.7 正常啟動順序 125
5.3 常見問題匯總 127
5.4 習題與思考 128
第6章 HDFS技術 129
6.1 HDFS架構 129
6.2 HDFS命令 130
6.2.1 version命令 131
6.2.2 dfsadmin命令 131
6.2.3 jar命令 132
6.2.4 fs命令 132
6.3 API的使用 140
6.4 習題與思考 142
第7章 MapReduce技術 143
7.1 MapReduce工作原理 143
7.1.1 MapReduce作業運行流程 143
7.1.2 早期MapReduce架構存在的問題 144
7.2 YARN運行概述 144
7.2.1 YARN模組介紹 144
7.2.2 YARN工作流程 145
7.3 MapReduce編程模型 146
7.4 MapReduce數據流 148
7.4.1 輸入檔案 150
7.4.2 輸入格式 150
7.4.3 數據片段 151
7.4.4 記錄讀取器 151
7.4.5 Mapper 151
7.4.6 Shuffle 152
7.4.7 排序 153
7.4.8 歸約 153
7.4.9 輸出格式 153
7.5 MapReduce API編程 154
7.5.1 詞頻統計 154
7.5.2 指定欄位 156
7.5.3 求平均數 158
7.5.4 關聯 160
7.6 習題與思考 163
第8章 Hive數據倉庫 165
8.1 Hive模型 165
8.1.1 Hive架構與基本組成 165
8.1.2 Hive的數據模型 166
8.2 Hive的安裝 167
8.2.1 Hive的基本安裝 167
8.2.2 MySQL的安裝 168
8.2.3 Hive配置 169
8.3 HQL詳解 170
8.3.1 Hive數據管理方式 170
8.3.2 HQL操作 174
8.4 習題與思考 182
第9章 HBase分散式資料庫 183
9.1 HBase工作原理 183
9.1.1 HBase表結構 183
9.1.2 體系結構 184
9.1.3 物理模型 186
9.1.4 HBase讀寫流程 187
9.2 HBase完全分散式 189
9.2.1 安裝前的準備 189
9.2.2 配置檔案 189
9.2.3 集群啟動 191
9.3 HBase Shell 192
9.3.1 DDL操作 192
9.3.2 DML操作 194
9.4 習題與思考 197
第10章 Sqoop工具 198
10.1 Sqoop安裝 199
10.2 Sqoop的使用 200
10.2.1 MySQL的導入導出 200
10.2.2 Oracle的導入導出 201
10.3 習題與思考 202
第11章 Flume日誌收集 203
11.1 體系架構 204
11.1.1 Flume內部結構 204
11.1.2 Flume事件 204
11.2 Flume的特點 205
11.3 Flume集群搭建 206
11.4 Flume實例 207
11.4.1 實例1:實時測試客戶端傳輸的數據 207
11.4.2 實例2:監控本地資料夾並寫入到HDFS中 208
11.5 習題與思考 210
第3篇 Spark技術
第12章 Spark概述 213
12.1 Spark框架原理 213
12.2 Spark大數據處理 214
12.3 RDD數據集 215
12.4 Spark子系統 215
第13章 Scala語言 216
13.1 Scala語法基礎 216
13.1.1 變數、常量與賦值 216
13.1.2 運算符與表達式 217
13.1.3 條件分支控制 217
13.1.4 循環流程控制 218
13.1.5 Scala數據類型 218
13.2 Scala運算與函式 219
13.3 Scala閉包 220
13.4 Scala數組與字元串 220
13.4.1 Scala數組 220
13.4.2 Scala字元串 221
13.5 Scala疊代器 221
13.6 Scala類和對象 222
13.7 習題與思考 223
第14章 Spark高可用環境 224
14.1 環境搭建 224
14.1.1 準備工作 224
14.1.2 下載並安裝Spark 224
14.2 常見問題匯總 226
第15章 RDD技術 228
15.1 RDD的實現 228
15.1.1 數據源 228
15.1.2 調度器 228
15.2 RDD編程接口 229
15.3 RDD操作 229
15.3.1 Spark基於命令行的操作 229
15.3.2 Spark基於套用作業的操作 231
15.3.3 Spark操作的基礎命令與開發工具介紹 231
15.3.4 Spark基於YARN的調度模式 231
15.3.5 Spark基於Scala語言的本地套用開發 234
15.3.6 Spark基於Scala語言的集群套用開發 235
15.3.7 Spark基於Java語言的套用開發 236
15.3.8 Spark基於Java語言的本地套用開發 237
15.3.9 Spark基於Java語言的集群套用開發 238
15.4 習題與思考 241
第16章 Spark SQL 242
16.1 Spark SQL架構原理 242
16.1.1 Hive的兩種功能 242
16.1.2 Spark SQL的重要功能 242
16.1.3 Spark SQL的DataFrame特徵 243
16.2 Spark SQL操作Hive 243
16.2.1 添加配置檔案,便於Spark SQL訪問Hive倉庫 243
16.2.2 安裝JDBC驅動 243
16.2.3 啟動MySQL服務及其Hive的元數據服務 243
16.2.4 啟動HDFS集群和Spark集群 244
16.2.5 啟動Spark-Shell並測試 244
16.3 Spark SQL操作HDFS 244
16.3.1 操作代碼 244
16.3.2 工程檔案 246
16.3.3 創建測試數據 246
16.3.4 運行Job並提交到集群 247
16.3.5 查看運行結果 247
16.4 Spark SQL操作關係資料庫 248
16.4.1 添加訪問MySQL的驅動包 248
16.4.2 添加必要的開發環境 248
16.4.3 使用Spark SQL操作關係資料庫 248
16.4.4 初始化MySQL資料庫服務 250
16.4.5 準備Spark SQL源數據 251
16.4.6 運行Spark代碼 252
16.4.7 創建dist資料夾 252
16.4.8 安裝資料庫驅動 252
16.4.9 基於集群操作 253
16.4.10 打包工程代碼到dist下 256
16.4.11 啟動集群並提交Job套用 256
16.4.12 檢查關係資料庫中是否已有數據 258
16.5 習題與思考 258
第17章 Spark Streaming 260
17.1 架構與原理 260
17.1.1 Spark Streaming中的離散流特徵 260
17.1.2 Spark Streaming的套用場景 260
17.2 KafKa中間件 261
17.2.1 KafKa的特點 261
17.2.2 ZeroCopy技術 261
17.2.3 KafKa的通信原理 261
17.2.4 KafKa的內部存儲結構 262
17.2.5 KafKa的下載 262
17.2.6 KafKa集群搭建 262
17.2.7 啟動並使用KafKa集群 263
17.2.8 停止KafKa集群 264
17.2.9 KafKa集成Flume 264
17.3 Socket事件流操作 265
17.3.1 netcat網路Socket控制台工具 265
17.3.2 基於本地的Spark Streaming流式數據分析示例 266
17.3.3 基於集群的Spark Streaming流式數據分析示例 269
17.3.4 基於集群模式下的集群檔案I/O流分析示例 272
17.4 KafKa事件流操作 275
17.4.1 基於Receiver模式的KafKa集成 275
17.4.2 基於Direct模式的KafKa集成 278
17.5 I/O檔案事件流操作 280
17.5.1 基於路徑掃描的Spark Streaming 281
17.5.2 打包至工程的dist 284
17.5.3 啟動集群 284
第18章 Spark機器學習 289
18.1 機器學習原理 289
18.1.1 機器學習的概念 289
18.1.2 機器學習的分類 289
18.1.3 Spark機器學習的版本演變 290
18.1.4 DataFrame數據結構 290
18.1.5 DataSet數據結構 290
18.1.6 執行引擎的性能與效率 290
18.1.7 Spark 2.x的新特性 290
18.2 線性回歸 291
18.2.1 線性回歸分析過程 291
18.2.2 矩陣分析過程 291
18.2.3 基於本地模式的線性回歸分析 291
18.2.4 基於集群模式的線性回歸分析 294
18.3 聚類分析 300
18.3.1 K-Means聚類算法原理 300
18.3.2 聚類分析過程 300
18.3.3 基於本地模式的聚類算法分析 301
18.3.4 基於集群模式的聚類算法分析 305
18.4 協同過濾 312
18.4.1 個性化推薦算法 312
18.4.2 相關性推薦算法 312
18.4.3 基於本地的協同過濾算法分析 312
18.4.4 基於集群的協同過濾算法分析 317
第4篇 項目實戰
第19章 基於電力能源的大數據實戰 325
19.1 需求分析 325
19.2 項目設計 325
19.2.1 數據採集 325
19.2.2 數據處理 326
19.2.3 數據呈現 326
19.3 數據收集與處理 329
19.3.1 數據收集 329
19.3.2 數據處理 329
19.4 大數據呈現 341
19.4.1 數據傳輸 341
19.4.2 數據呈現 342
19.5 項目總結 343

相關詞條

熱門詞條

聯絡我們