● 章 大數據技術概述 11.1 大數據概念與關鍵技術 21.1.1 大數據的概念 21.1.2 大數據關鍵技術 21.2 代表性大數據技術 41.2.1 Hadoop 41.2.2 Spark 81.2.3 Flink 101.2.4 Beam 111.3 編程語言的選擇 121.4 在線資源 131.5 本章小結 141.6 習題 14實驗1 Linux 繫統的安裝和常用命令 15第2 章 Spark 的設計與運行原理 172.1 概述 182.2 Spark 生態繫統 192.3 Spark 運行架構 212.3.1 基本概念 212.3.2 架構設計 212.3.3 Spark 運行基本流程 222.3.4 RDD 的設計與運行原理 242.4 Spark 的部署方式 332.5 本章小結 342.6 習題 34第3 章 Spark 環境搭建和使用方法 353.1 安裝Spark 363.1.1 基礎環境 363.1.2 安裝文件 363.1.3 配置相關文件 383.1.4 驗證Spark 是否安裝成功 393.1.5 Spark 和Hadoop 的交互 393.2 在pyspark 中運行代碼 403.2.1 pyspark 命令 403.2.2 啟動pyspark 413.3 開發Spark 獨立應用程序 423.3.1 編寫程序 423.3.2 通過spark-submit 運行程序 433.4 Spark 集群環境搭建 443.4.1 集群概況 443.4.2 搭建Hadoop 集群 443.4.3 在集群中安裝Spark 453.4.4 配置環境變量 453.4.5 Spark 的配置 463.4.6 啟動Spark 集群 473.4.7 關閉Spark 集群 473.5 在集群上運行Spark 應用程序 483.5.1 啟動Spark 集群 483.5.2 采用獨立集群管理器 483.5.3 采用Hadoop YARN 管理器 493.6 本章小結 513.7 習題 51實驗2 Spark 和Hadoop 的安裝 51第4 章 RDD 編程 534.1 RDD 編程基礎 544.1.1 RDD 創建 544.1.2 RDD 操作 564.1.3 持久化 634.1.4 分區 644.1.5 一個綜合實例 694.2 鍵值對RDD 714.2.1 鍵值對RDD 的創建 714.2.2 常用的鍵值對轉換操作 724.2.3 一個綜合實例 784.3 數據讀寫 794.3.1 文件數據讀寫 794.3.2 讀寫HBase 數據 824.4 綜合實例 864.4.1 求TOP 值 864.4.2 文件排序 894.4.3 二次排序 914.5 本章小結 944.6 習題 95實驗3 RDD 編程初級實踐 95第5 章 Spark SQL 985.1 Spark SQL 簡介 995.1.1 從Shark 說起 995.1.2 Spark SQL 架構 1005.1.3 為什麼推出Spark SQL 1015.2 DataFrame 概述 1015.3 DataFrame 的創建 1025.4 DataFrame 的保存 1035.5 DataFrame 的常用操作 1045.6 從RDD 轉換得到DataFrame 1055.6.1 利用反射機制推斷RDD 模式 1065.6.2 使用編程方式定義RDD 模式 1075.7 使用Spark SQL 讀寫數據庫 1085.7.1 準備工作 1095.7.2 讀取MySQL 數據庫中的數據 1095.7.3 向MySQL 數據庫寫入數據 1105.8 本章小結 1115.9 習題 112實驗4 Spark SQL 編程初級實踐 112第6 章 Spark Streaming 1156.1 流計算概述 1166.1.1 靜態數據和流數據 1166.1.2 批量計算和實時計算 1176.1.3 流計算概念 1176.1.4 流計算框架 1186.1.5 流計算處理流程 1196.2 Spark Streaming 1216.2.1 Spark Streaming 設計 1216.2.2 Spark Streaming 與Storm 的對比 1226.2.3 從“Hadoop+Storm”架構轉向Spark 架構 1226.3 DStream 操作概述 1236.3.1 Spark Streaming 工作機制 1236.3.2 編寫Spark Streaming 程序的基本步驟 1246.3.3 創建StreamingContext 對像 1246.4 基本輸入源 1256.4.1 文件流 1256.4.2 套接字流 1276.4.3 RDD 隊列流 1316.5 不錯數據源 1336.5.1 Kafka 簡介 1336.5.2 Kafka 準備工作 1336.5.3 Spark 準備工作 1356.5.4 編寫Spark Streaming 程序使用Kafka 數據源 1366.6 轉換操作 1376.6.1 DStream 無狀態轉換操作 1376.6.2 DStream 有狀態轉換操作 1386.7 輸出操作 1436.7.1 把DStream 輸出到文本文件中 1436.7.2 把DStream 寫入到關繫數據庫中 1456.8 本章小結 1476.9 習題 147實驗5 Spark Streaming 編程初級實踐 147第7 章 Structured Streaming 1507.1 概述 1517.1.1 基本概念 1517.1.2 兩種處理模型 1527.1.3 Structured Streaming 和Spark SQL、Spark Streaming 的關繫 1547.2 編寫Structured Streaming程序的基本步驟 1547.2.1 實現步驟 1547.2.2 測試運行 1567.3 輸入源 1587.3.1 File 源 1587.3.2 Kafka 源 1637.3.3 Socket 源 1677.3.4 Rate 源 1677.4 輸出操作 1697.4.1 啟動流計算 1697.4.2 輸出模式 1707.4.3 輸出接收器 1707.5 容錯處理 1737.5.1 從檢查點恢復故障 1737.5.2 故障恢復中的限制 1737.6 遲到數據處理 1747.6.1 事件時間 1747.6.2 遲到數據 1757.6.3 水印 1767.6.4 多水印規則 1777.6.5 處理遲到數據的實例 1787.7 查詢的管理和監控 1817.7.1 管理和監控的方法 1817.7.2 一個監控的實例 1827.8 本章小結 1847.9 習題 185實驗6 Structured Streaming編程實踐 185第8章 Spark MLlib 1878.1 基於大數據的機器學習 1888.2 機器學習庫MLlib 概述 1898.3 基本數據類型 1908.3.1 本地向量 1908.3.2 標注點 1918.3.3 本地矩陣 1928.4 機器學習流水線 1938.4.1 流水線的概念 1938.4.2 流水線工作過程 1938.5 特征提取、轉換和選擇 1958.5.1 特征提取 1958.5.2 特征轉換 1998.5.3 特征選擇 2048.5.4 局部敏感哈希 2058.6 分類算法 2058.6.1 邏輯斯蒂回歸分類器 2068.6.2 決策樹分類器 2128.7 聚類算法 2178.7.1 K-Means 聚類算法 2188.7.2 GMM 聚類算法 2208.8 協同過濾算法 2238.8.1 推薦算法的原理 2238.8.2 ALS 算法 2248.9 模型選擇和超參數調整 2288.9.1 模型選擇工具 2298.9.2 用交叉驗證選擇模型 2298.10 本章小結 2328.11 習題 233實驗7 Spark 機器學習庫MLlib編程實踐 233參考文獻 235
內容簡介
本書以Python作為開發Spark應用程序的編程語言,繫統介紹了Spark編程的基礎知識。全書共8章,內容包括大數據技術概述、Spark的設計與運行原理、Spark環境搭建和使用方法、RDD編程、Spark SQL、Spark Streaming、Structured Streaming、Spark MLlib等。