Spark實戰

Spark實戰

《Spark實戰》是2019年機械工業出版社出版的圖書。

基本介紹

  • 中文名:Spark實戰
  • 作者:[克羅地亞]彼得·澤斯維奇
  • 譯者:鄭美珠、田華、王佐兵
  • 出版時間:2019年8月
  • 出版社:機械工業出版社
  • ISBN:9787111617488
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

本書介紹了Spark應用程式及更高級套用的工作流程,主要從使用角度進行了描述,每個具體內容都有對應的代碼。本書涵蓋了Apache Spark和它豐富的API,構成Spark的組件(包括Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX),在Spark standalone、 Hadoop YARN以及 Mesos clusters上運行Spark應用程式的部署和安裝。通過對應的實例全面、詳細地介紹了整個Spark實戰開發的流程。*後,還介紹了Spark的高級套用,包括Spark流應用程式及可擴展和快速的機器學習框架H2O。
本書可以作為高等院校計算機、軟體工程、數據科學與大數據技術等專業的大數據課程材料,可用於指導Spark編程實踐,也可供相關技術人員參考使用。

圖書目錄

目錄
譯者序
致謝
前言
關於本書
關於作者
關於封面
第1部分 第1步
第1章 Apache Spark介紹
1.1什麼是Spark
1.1.1 Spark革命
1.1.2 MapReduce的缺點
1.1.3 Spark帶來了什麼有價值的東西
1.2 Spark組件
1.2.1 Spark核心
1.2.2 Spark SQL
1.2.3 Spark Streaming
1.2.4 Spark MLlib
1.2.5 Spark GraphX
1.3 Spark程式流
1.4 Spark生態系統
1.5 建立spark-in-action 虛擬機
1.5.1下載啟動虛擬機
1.5.2 停止虛擬機
1.6總結
第2章 Spark基礎
2.1使用spark-in-action虛擬機
2.1.1 複製Spark in Action GitHub存儲庫
2.1.2 找到java
2.1.3 用虛擬機的Hadoop安裝
2.1.4 檢查虛擬機的Spark安裝
2.2用Spark shell(殼)編寫第一個Spark程式
2.2.1 啟動Spark shell
2.2.2 第一個Spark代碼示例
2.2.3 彈性分散式數據集的概念
2.3基礎RDD行為和轉換
2.3.1 使用用map轉換
2.3.2 使用distinct和flatMap 轉換
2.3.3 使用sample、take和takeSample操作獲取RDD的元素
2.4 Double RDD功能
2.4.1 Double RDD基本統計
2.4.2 使用直方圖可視化數據分布
2.4.3 近似求和與平均值
2.5 總結
第3章 編寫Spark應用程式
3.1在Eclipse上生成一個新的Spark項目
3.2開發應用程式
3.2.1 準備 GitHub 檔案數據
3.2.2 載入 JSON
3.2.3 從Eclipse運行套用
3.2.4 數據匯總
3.2.5 排除非公司員工
3.2.6 廣播變數
3.2.7 使用整個數據集
3.3提交應用程式
3.3.1 建立uberjar
3.3.2 調整應用程式
3.3.3 使用spark-submit
3.4 總結
第4章 深入Spark API
4.1使用鍵值對RDD
4.1.1 創建鍵值對RDD
4.1.2 鍵值對RDD的基本功能
4.2了解數據分區和減少數據混排
4.2.1 使用spark數據分區器
4.2.2 了解和避免不必要的數據混排
4.2.3 RDD重新分區
4.2.4 在分區中映射數據
4.3 連線、排序、分組數據
4.3.1 連線數據
4.3.2 數據排序
4.3.3 數據分組
4.4 理解RDD依賴
4.4.1 RDD依賴和Spark執行
4.4.2 Spark階段和任務
4.4.3 使用檢查點保存Spark譜系
4.5 使用累加器和廣播變數與spark執行器進行溝通
4.5.1 使用累加器從執行器獲取數據
4.5.2 使用廣播變數將數據傳送數據到執行器
4.6總結
第二部分 認識Spark家族
第5章 Spark SQL查詢
5.1使用DataFrames
5.1.1 從RDD創建DataFrames
5.1.2 DataFrame API 基礎知識
5.1.3 用SQL函式執行數據計算
5.1.4 使用缺失值
5.1.5 將DataFrames轉換為RDD
5.1.6 分組和連線數據
5.1.7 執行連線
5.2超越DataFrames:引入DataSet
5.3使用SQL命令
5.3.1 表目錄和Hive metastore
5.3.2 執行SQL查詢
5.3.3 通過Thrift伺服器連線到Spark SQL
5.4保存並載入DataFrame 數據
5.4.1 內置數據源
5.4.2 保存數據
5.4.3 載入數據
5.5 Catalyst 最佳化器
5.6 Tungsten性能改進
5.7總結
第6章 使用Spark Streaming提取數據
6.1編寫Spark Streaming應用程式
6.1.1 介紹示例程式
6.1.2 創建流上下文
6.1.3 創建離散流
6.1.4 使用離散流
6.1.5 把結果保存到文檔
6.1.6 啟動和停止流計算
6.1.7 隨著保存計算狀態
6.1.8 使用視窗操作進行限制計算
6.1.9 檢查其他內置輸入流
6.2使用外部數據源
6.2.1 設定kafka
6.2.2 使用kafka更改流應用程式
6.3 Spark Streaming任務的性能
6.3.1 獲得良好的性能
6.3.2 實現容錯
6.4結構化流
6.4.1 創建流式DataFrame
6.4.2 輸出流數據
6.4.3 檢查流執行
6.4.4 結構化流的未來方向
6.5總結
第7章 使用MLlib變聰明
7.1機器學習簡介
7.1.1 機器學習的定義
7.1.2 機器學習算法分類
7.1.3 使用Spark進行機器學習
7.2 Spark中的線性代數
7.2.1 本地向量與矩陣實現
7.2.2 分散式矩陣
7.3線性回歸
7.3.1 有關線性回歸
7.3.2 簡單的線性回歸
7.3.3 將模型擴展到多元線性回歸
7.4分析和準備數據
7.4.1 分析數據分布
7.4.2 分析列餘弦相似性
7.4.3 協方差矩陣的計算
7.4.4 轉化為標記點
7.4.5 拆分數據
7.4.6 特徵縮放和平均歸一化
7.5擬合和使用線性回歸模型
7.5.1 預測目標值
7.5.2 評估模型性能
7.5.3 解釋模型參數
7.5.4 載入和保存模型
7.6調整算法
7.6.1 找到正確的步長和疊代次數
7.6.2 添加高階多項式
7.6.3 偏差-方差權衡和模型複雜度
7.6.4 繪製殘差圖
7.6.5 利用正則化避免過度擬合
7.6.6 k折交叉驗證
7.7最佳化線性回歸
7.7.1 小批量隨機梯度下降
7.7.2 LBFGS最佳化
7.8總結
八、ML:分類和聚類
8.1 Spark ML 圖書館
8.1.1 估計器,變壓器和評估器
8.1.2 ML參數
8.1.3 ML管道
8.2邏輯回歸
8.2.1 二元邏輯回歸模型
8.2.2準備數據在Spark中使用邏輯回歸
8.2.3 訓練模型
8.2.4 評估分類模型
8.2.5 執行k折交叉驗證
8.2.6 多類邏輯回歸
8.3決策樹和隨機森林
8.3.1 決策樹
8.3.2 隨機森林
8.4使用k均值聚類
8.4.1 k均值聚類
8.5總結
第9章 使用GraphX連線點
9.1 Spark圖處理
9.1.1 使用GraphX API構造圖
9.1.2 轉換圖
9.2圖算法
9.2.1 數據集的介紹
9.2.2 最短路徑算法
9.2.3 頁面排名
9.2.4 連通分量
9.2.5 強連通分量
9.3實現A *搜尋算法
9.3.1 了解A *搜尋算法
9.3.2 實現A *搜尋算法
9.3.3 測試實現
9.4總結
第3部分 Spark ops
第10章 運行Spark
10.1 Spark的運行時架構概述
10.1.1 Spark運行組件
10.1.2 Spark集群類型
10.2作業與資源調度
10.2.1 集群資源調度
10.2.2 Spark作業調度
10.2.3 數據局部性考慮
10.2.4 Spark記憶體調度
10.3配置Spark
10.3.1 Spark配置檔案
10.3.2 命令行參數
10.3.3 系統環境變數
10.3.4 譯編程方式設定配置
10.3.5 master參數
10.3.6 查看所有配置的參數
10.4 Spark Web UI (網路用戶界面)
10.4.1 Jobs(作業)頁面
10.4.2 Stages(階段)頁面
10.4.3 Storage(存儲)頁面
10.4.4 Environment(環境)頁面
10.4.5 Executors(執行器)頁面
10.5在本地機器運行Spark
10.5.1 本地模式
10.5.2 本地集群模式
10.6總結
第11章 在Spark獨立集群上運行
11.1 Spark Standalone集群組件
11.1.1 啟動Stanalone集群
11.1.2 用shell腳本啟動群集
11.1.3 手動啟動集群
11.1.4 查看Spark進程
11.1.5 Standalone master高可用性和恢復
11.3 Standalone集群網路用戶界面
11.4 在3Standalone集群中運行應用程式
11.4.1 驅動器的位置
11.4.2 指定執行器的數量
11.4.3 指定額外的類路徑和檔案
11.4.4 終止應用程式
11.4.5 應用程式自動重啟
11.5 Spark歷史記錄伺服器和事件日誌記錄
11.6 在Amazon EC2上運行
11.6.1 先決條件
11.6.2 創建一個E2C獨立集群
11.6.3 使用E2C集群
11.6.4 銷毀集群
11.7 總結
第12章 在YARN and Mesos運行
12.1 在YARN上運行Spark
12.1.1 YARN架構
12.1.2 安裝配置啟動YARN
12.1.3 YARN中的資源調度
12.1.4 向YARN提交Spark應用程式
12.1.5 在YARN上配置Spark
12.1.6 為Spark工作配置資源
12.1.7 YARN UI
12.1.8 在YARN上尋找日誌
12.1.9 安全注意事項
12.1.10 動態資源分配
12.2在Mesos上運行Spark
12.2.1 Mesos架構
12.2.2 安裝配置Mesos
12.2.3 Mesos Web UI
12.2.4 Mesos資源調度
12.2.5 向Mesos提交Spark應用程式
12.2.6 使用 Docker運行Spark
12.3總結
第4部分 協同使用
第13章 實例學習:實時儀錶盤
13.1了解用例
13.1.1 概況
13.1.2 了解應用程式組件
13.2 運行應用程式
13.2.1 在spark-in-action VM中運行應用程式
13.2.2 手動啟動應用程式
13.3 理解原始碼
13.3.1 KafkaLogsSimulator項目
13.3.2 Streaming Log Analyzer項目
13.3.3 Web統計信息顯示板項目
13.3.4 建設項目
13.4總結
第14章 H20深入學習Spark
14.1什麼是深入學習
14.2 在Spark中使用H2O和
14.2.1 什麼是H2O
14.4.2 在Spark中啟動Sparkling Water
14.4.3 啟動H2O集群
14.4.4 訪問Flow UI
14.3 使用H2O的深度學習進行回歸
14.4.3 將數據載入到H2O框架中
14.4.4 使用Flow UI構建和評估深度學習模型
14.4.5 使用Sparkling Water API構建和評估深度學習模型
14.4使用H2O的深度學習進行分類
14.4.1 載入和拆分數據
14.4.2 通過Flow UI 建造模型
14.4.3 通過Sparkling Water API建造模型
14.4.4 停止H2O集群
14.5總結
附錄A 安裝Apache Spark
附錄B 了解MapReduce
附錄C 線性代數基礎

作者簡介

Marko Bonaći has worked with Java for 13 years. He currently works as IBM Enterprise Content Management team lead at SV Group. Petar Zečević is a CTO at SV Group. During the last 14 years he has worked on various projects as a Java developer, team leader, consultant and software specialist. He is the founder and, with Marko, organizer of popular Spark@Zg meetup group.

相關詞條

熱門詞條

聯絡我們