大數據原理與實戰

大數據原理與實戰

《大數據原理與實戰》是中國水利水電出版社於2022年1月出版(2022年12月底2次重印)的圖書,由趙渝強(網名:趙強老師)編著。該書從大數據生態圈技術的基礎理論出發,為讀者系統地介紹每個相關知識點。每個實驗步驟都經過作者驗證,幫助讀者在學習過程中搭建學習及實驗的環境。 該書涵蓋了大數據平台體系中的 Hadoop 生態圈、Spark 生態圈和 Flink 生態圈,內容涉及體系架構、管理運維和套用開發,全書共 16 章。

基本介紹

  • 中文名:大數據原理與實戰 
  • 作者:趙渝強 編著
  • 出版時間:2022年1月1日
  • 出版社:中國水利水電出版社
  • 頁數:476 頁
  • ISBN: 9787522600116
  • 類別:大數據與雲計算
  • 定價:99.8 元
  • 開本:16 開
  • 規格:190mm × 235mm
內容簡介,圖書目錄,

內容簡介

《大數據原理與實戰》一書覆蓋完整的大數據生態圈體系,包括 Hadoop 生態圈體系、Spark 生態圈體系、Flink 生態圈體系、NoSQL 資料庫及相關組件。本書側重動手實操,提供完整詳細的實驗步驟,可以讓讀者真實模擬大數據平台體系的運行環境,在虛擬機上構建自己的大數據集群;同時,本書也兼顧必要的理論講解,深入淺出,讓讀者在了解大數據基本架構和原理機制的基礎上,能夠通過實驗真正掌握大數據平台體系中的技術組件。
《大數據原理與實戰》適合具有一定 Java 編程基礎的人員閱讀,如平台架構師、開發人員、運維管理人員等。本書內容詳盡,不僅可以作為初學者的學習用書,而且可以作為開發人員等工作中的參考手冊。

圖書目錄

第 1 章 大數據核心理論基礎與架構 1
1.1 大數據概述 1
1.1.1 大數據的基本概念和特性 1
1.1.2 大數據平台所要解決的核心問題 2
1.1.3 數據倉庫與大數據 4
1.2 大數據的理論基礎 6
1.2.1 Google 檔案系統 6
1.2.2 MapReduce 分散式計算模型 10
1.2.3 BigTable 分散式資料庫 13
1.3 大數據生態圈組件 15
1.3.1 Hadoop 生態圈 15
1.3.2 Spark 生態圈 16
1.3.3 Flink 生態圈 17
1.4 基於大數據組件的平台架構 18
第 2 章 部署大數據環境 21
2.1 準備大數據平台環境 21
2.1.1 安裝 Linux 作業系統 22
2.1.2 配置 Linux 環境 28
2.2 部署 Hadoop 環境 31
2.2.1 Hadoop 的目錄結構 31
2.2.2 部署 Hadoop 本地模式 32
2.2.3 部署 Hadoop 偽分布模式…… 33
2.2.4 部署 Hadoop 全分布模式…… 38
2.3 部署 Spark 環境 …………………… 42
2.3.1 部署 Spark 偽分布模式 …… 42
2.3.2 部署 Spark 全分布模式 …… 43
2.4 部署 Flink 環境 45
2.4.1 部署 Flink 偽分布模式 45
2.4.2 部署 Flink 全分布模式 46
2.5 大數據體系的單點故障問題 47
第 3 章 HDFS 48
3.1 HDFS 體系架構詳解 48
3.1.1 NameNode 48
3.1.2 DataNode 51
3.1.3 SecondaryNameNode 51
3.2 使用不同方式操作 HDFS 52
3.2.1 HDFS 命令行 53
3.2.2 Java API 58
3.2.3 Web Console 61
3.3 HDFS 的高級特性 64
3.3.1 資源回收筒 64
3.3.2 快照 65
3.3.3 配額管理 66
3.3.4 安全模式 67
3.3.5 許可權管理 68
3.4 聯 盟 69
3.4.1 聯盟概述 69
3.4.2 聯盟的架構 70
3.4.3 部署聯盟 71
3.5 HDFS 的底層通信方式 RPC 75
3.5.1 RPC 概述 75
3.5.2 開發伺服器端程式和客戶端程式 75
3.5.3 運行 RPC 伺服器端程式和客戶端程式 78
第 4 章 NoSQL 資料庫 HBase 80
4.1 HBase 的基本概念與體系架構 80
4.1.1 HMaster 81
4.1.2 Region Server 81
4.1.3 ZooKeeper 82
4.2 部署 HBase 83
4.2.1 部署 HBase 本地模式 83
4.2.2 部署 HBase 偽分布模式 85
4.2.3 部署 HBase 全分布模式 86
4.2.4 HBase 的 HA 模式 87
4.3 使用不同方式操作 HBase 88
4.3.1 HBase Shell 命令行 89
4.3.2 Java API 90
4.3.3 過濾器 93
4.3.4 Web Console 98
4.4 深入了解 HBase 原理 99
4.4.1 HBase 的寫操作步驟 99
4.4.2 HBase 的讀過程與 META 表 … 99
4.4.3 HBase 的讀合併與讀放大 … 101
4.4.4 Region 的分裂與讀操作的負載均衡 102
4.4.5 HBase 的異常恢復 102
4.5 HBase 的高級功能 103
4.5.1 多版本 Version 103
4.5.2 快照 104
4.5.3 Bulk Loading 105
4.5.4 用戶許可權管理 107
4.5.5 備份與恢復 110
4.5.6 主從複製 111
4.6 SQL on HBase 112
4.6.1 安裝和使用 Phoenix 113
4.6.2 Phoenix 與 HBase 的映射關係 114
4.6.3 二級索引 115
4.6.4 在 Phoenix 中創建不同的索引 116
4.6.5 索引的案例分析 117
4.6.6 在 Phoenix 中執行 JDBC 119
第 5 章 MapReduce 編程 121
5.1 MapReduce WordCount 121
5.1.1 執行 WordCount 示例程式 … 121
5.1.2 WordCount 數據處理流程 … 123
5.1.3 開發自己的 WordCount 程式 … 125
5.2 YARN 與 MapReduce 128
5.2.1 YARN 調度 MapReduce 的過程 128
5.2.2 YARN 的資源調度方式 129
5.3 MapReduce 的高級功能 131
5.3.1 序列化 131
5.3.2 排序 135
5.3.3 合併 139
5.3.4 分區 141
5.3.5 MapJoin 144
5.3.6 鏈式處理 147
5.3.7 Shuffle 151
5.4 MapReduce 編程案例 152
5.4.1 數據去重 152
5.4.2 多表查詢 154
5.4.3 處理 HBase 的數據 160
第 6 章 數據分析引擎 Hive 163
6.1 Hive 簡介 163
6.1.1 Hive 概述 163
6.1.2 Hive 的體系架構 164
6.2 安裝部署 Hive 165
6.2.1 準備 MySQL 資料庫 165
6.2.2 Hive 的嵌入模式 166
6.2.3 Hive 的遠程模式 169
6.2.4 使用 Hive Beeline 客戶端 171
6.3 Hive 的數據模型 173
6.3.1 內部表 173
6.3.2 外部表 175
6.3.3 分區表 176
6.3.4 臨時表 179
6.3.5 桶表 179
6.3.6 視圖 181
6.4 Hive 的內置函式 182
6.4.1 字元函式 182
6.4.2 URL 解析函式與 JSON 解析函式 184
6.4.3 數值函式 185
6.4.4 日期函式 186
6.4.5 條件函式 187
6.4.6 開窗函式 188
6.5 Hive 的自定義函式 189
6.5.1 用戶自定義函式 190
6.5.2 用戶自定義表生成函式 192
6.6 Hive 的 JDBC 客戶端 194
第 7 章 數據分析引擎 Pig 197
7.1 Pig 簡 介 197
7.1.1 Pig 的數據模型 197
7.1.2 安裝部署 Pig 198
7.2 使用 PigLatin 語句處理數據 200
7.3 Pig 的自定義函式 203
7.3.1自定義過濾函式 203
7.3.2自定義運算函式 204
7.3.3自定義載入函式 206
第 8 章 數據分析引擎 Presto 209
8.1 Presto 基礎 209
8.1.1 Presto 簡介 209
8.1.2 Presto 的體系架構 210
8.1.3 Presto 與 Hive 210
8.2 使用 Presto 處理數據 211
8.2.1 安裝部署 Presto 211
8.2.2 Presto 執行查詢的過程 214
8.2.3 Presto Connectors 216
8.3 Presto 的 JDBC 客戶端 218
第 9 章 大數據計算引擎 Spark Core 221
9.1 Spark 基礎 221
9.1.1 Spark 概述 221
9.1.2 Spark 的體系架構 222
9.1.3 spark-submit 223
9.1.4 spark-shell 225
9.1.5 Spark HA 基礎 227
9.2 Spark RDD 227
9.2.1 Spark RDD 概述 227
9.2.2 RDD 的運算元 229
9.2.3 RDD 的運算元示例 231
9.2.4 RDD 的快取機制 236
9.2.5 RDD 的檢查點機制 237
9.2.6 RDD 的依賴關係和任務執行階段 239
9.3 Spark Core 編程案例 241
9.3.1 Java 版 WordCount 241
9.3.2 求網站的訪問量 243
9.3.3 創建自定義分區 245
9.3.4 訪問資料庫 248
第 10 章 數據分析引擎 Spark SQL 252
10.1 Spark SQL 基礎 252
10.1.1 Spark SQL 簡介 252
10.1.2 Spark SQL 的數據模型 253
10.1.3 創建 DataFrame 253
10.1.4 使用 DataFrame 處理數據 255
10.1.5 使用視圖 257
10.2 Spark SQL 的數據源 259
10.2.1 通用的 Load/Save 函式 259
10.2.2 Parquet 檔案 260
10.2.3 JSON 檔案 261
10.2.4 使用 JDBC 263
10.2.5 使用 Hive Table 264
10.3 最佳化 Spark SQL 265
10.3.1 使用 Spark SQL 的快取機制 265
10.3.2 Spark SQL 的最佳化參數 …… 267
10.4 在 IDE 中開發 Spark SQL 程式…… 268
10.4.1 使用 StructType 指定Schema 268
10.4.2 使用樣本類指定 Schema … 269
10.4.3 將 Spark SQL 的處理結果保存到資料庫中 …… 270
第 11 章 流式計算引擎 Spark Streaming … 272
11.1 Spark Streaming 基礎 ……………… 272
11.1.1 Spark Streaming 簡介 …… 272
11.1.2 運行第一個 Spark Streaming任務 273
11.1.3 開發第一個自己的 Spark Streaming 任務 275
11.2 Spark Streaming 進階 277
11.2.1 DStream 277
11.2.2 DStream 中的轉換操作 …… 278
11.2.3 視窗操作 281
11.2.4 輸入 DStream 282
11.2.5 DStream 的輸出操作 284
11.2.6 使用 Spark SQL 286
11.3 最佳化 Spark Streaming 287
11.3.1 減少批數據的執行時間 …… 287
11.3.2 設定正確的批容量 288
第 12 章 大數據計算引擎 Flink 基礎 289
12.1 Flink 基礎 289
12.1.1 Flink 簡介 289
12.1.2 Flink 的體系架構 290
12.1.3 運行 Flink Example 290
12.1.4 Flink on YARN 292
12.1.5 對比 Flink、Storm 和 Spark Streaming 296
12.2 Flink 開發入門 297
12.2.1 Flink 批處理開發 297
12.2.2 Flink 流處理開發 299
12.2.3 使用 Flink Scala Shell 301
12.3 使用 Fink DataSet API 302
12.3.1 map 、flatMap 與 mapPartition 303
12.3.2 filter 與 distinct 306
12.3.3 join 308
12.3.4 cross 309
12.3.5 First-N 310
12.3.6 Outer Join 312
12.4 使用 Fink DataStream API 315
12.4.1 DataStream Source 315
12.4.2 DataStream Transformation 319
12.4.3 DataStream Sink 323
12.4.4 視窗與時間 324
12.4.5 水位線 326
第 13 章 大數據計算引擎 Flink 進階 333
13.1 Flink 的高級特性 333
13.1.1 Flink 的並行度分析 333
13.1.2 Flink 的分散式快取 334
13.1.3 廣播變數 336
13.1.4 累加器與計數器 338
13.2 狀態的管理與恢復 340
13.2.1 狀態 340
13.2.2 檢查點與後端存儲 343
13.2.3 重啟策略 345
13.3 開發 Flink Table API 和 SQL API 345
13.3.1 開發 Flink Table API 347
13.3.2 開發 Flink SQL API 350
第 14 章 分散式協調服務 ZooKeeper 354
14.1 ZooKeeper 集群基礎 354
14.1.1 ZooKeeper 集群的架構…… 354
14.1.2 ZooKeeper 集群中的角色… 354
14.2 部署 ZooKeeper …………………… 355
14.2.1 ZooKeeper 的核心配置檔案 355
14.2.2 部署 ZooKeeper 的 Standalone模式 357
14.2.3 部署 ZooKeeper 的集群模式 361
14.2.4 測試 ZooKeeper 集群 …… 364
14.3 ZooKeeper 集群的功能特性 ……… 366
14.3.1 ZooKeeper 的節點類型 …… 366
14.3.2 ZooKeeper 的 Watcher機制 368
14.3.3 ZooKeeper 的分散式鎖…… 370
14.3.4 ZooKeeper 在大數據體系架構中的作用 372
14.4 基於 ZooKeeper 實現 HDFS 的 HA… 372
14.4.1 HDFS HA 的架構 372
14.4.2 部署 HDFS HA 373
14.4.3 測試 HDFS HA 378
14.5 部署 Spark 與 Flink 的 HA 380
14.5.1 Spark HA 的架構與部署 … 380
14.5.2 Flink HA 的架構與部署 … 385
第 15 章 大數據的 ETL 採集框架 388
15.1 使用 Apache Sqoop 388
15.1.1 準備實驗環境 388
15.1.2 Sqoop 的操作命令 390
15.1.3 使用 Sqoop 完成數據交換 392
15.2 使用 Apache Flume ………………… 396
15.2.1 Apache Flume 的體系架構 … 396
15.2.2 Apache Flume 的安裝和部署 399
15.2.3 Flume 的 Source 組件 …… 402
15.2.4 Flume 的 Channel 組件 …… 404
15.2.5 Flume 的 Sink 組件 ……… 406
15.2.6 Flume 採集日誌綜合示例… 409
第 16 章 訊息系統 Kafka 413
16.1 訊息系統概述 413
16.2 訊息系統的分類 414
16.2.1 同步訊息機制與異步訊息機制 414
16.2.2 佇列與主題 416
16.3 Kafka 的體系架構 416
16.3.1 Broker 417
16.3.2 Topic 、Partition 與副本 … 417
16.3.3 Producer 419
16.3.4 Consumer 與 Consumer Group 420
16.4 安裝部署 Kafka 422
16.4.1 部署單機單 Broker 426
16.4.2 部署單機多 Broker 427
16.4.3 部署多機多 Broker 429
16.4.4 使用命令行測試 Kafka …… 430
16.4.5 Kafka 配置參數詳解 431
16.4.6 Kafka 在 ZooKeeper 中保存的數據 432
16.5 開發 Kafka 應用程式 434
16.5.1 開發 Java 版本的客戶端程式 434
16.5.2 開發 Scala 版本的客戶端程式 436
16.5.3 發布訂閱自定義訊息 …… 438
16.6 Kafka 核心原理解析 444
16.6.1 訊息的持久化 444
16.6.2 訊息的傳輸保障 446
16.6.3 Leader 的選舉 448
16.6.4 日誌的清理 449
16.7 集成 Kafka 451
16.7.1 Flume 與 Kafka 451
16.7.2 Kafka 與 Spark Streaming … 453
16.7.3 Kafka 與 Flink DataStream … 458

相關詞條

熱門詞條

聯絡我們