Spark 實戰

Petar Zeevi

  • 出版商: 機械工業
  • 出版日期: 2019-08-01
  • 定價: $594
  • 售價: 8.0$475
  • 語言: 簡體中文
  • 裝訂: 平裝
  • ISBN: 7111617487
  • ISBN-13: 9787111617488
  • 相關分類: Spark
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

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

目錄大綱

目錄
譯者序
致謝
前言
關於本書
關於作者
關於封面
*部分*步
*章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-a*ion虛擬機
1.5.1下載啟動虛擬機
1.5.2停止虛擬機
1.6總結
2章Spark基礎
2.1使用spark-in-a*ion虛擬機
2.1.1複製Spark in A*ion GitHub存儲庫
2.1.2找到*ava
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使用用*p轉換
2.3.2使用distin*和fl*Map轉換
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建立uber*ar
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使用D*aFrames
5.1.1從RDD創建D*aFrames
5.1.2 D*aFrame API基礎知識
5.1.3用SQL函數執行數據計算
5.1.4使用缺失值
5.1.5將D*aFrames轉換為RDD
5.1.6分組和連接數據
5.1.7執行連接
5.2*D*aFrames:引入D*aSet
5.3使用SQL命令
5.3.1表目錄和Hive metastore
5.3.2執行SQL查詢
5.3.3通過Thrift服務器連接到Spark SQL
5.4保存並加載D*aFrame數據
5.4.1內置數據源
5.4.2保存數據
5.4.3加載數據
5.5 C*alyst優化器
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創建流式D*aFrame
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
*0章運行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 *ster參數
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 Executo*(執行器)頁面
10.5在本地機器運行Spark
10.5.1本地模式
10.5.2本地集*模式
10.6總結
*1章在Spark獨立集*上運行
11.1 Spark Standalone集*組件
11.1.1啟動Stanalone集*
11.1.2用shell腳本啟動*集
11.1.3手動啟動集*
11.1.4查看Spark進程
11.1.5 Standalone * ster高可用性和恢復
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在Am*on EC2上運行
11.6.1先決條件
11.6.2創建一個E2C獨立集*
11.6.3使用E2C集*
11.6.4銷毀集*
11.7總結
*2章在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部分協同使用
*3章實例學習:實時儀錶盤
13.1了解用例
13.1.1概況
13.1.2了解應用程序組件
13.2運行應用程序
13.2.1在spark-in-a*ion VM中運行應用程序
13.2.2手動啟動應用程序
13.3理解源代碼
13.3.1 KafkaLogsSi*l*or項目
13.3.2 Streaming Log Analyzer項目
13.3.3 Web統計信息顯示板項目
13.3.4建設項目
13.4總結
*4章H20深入學習Spark
14.1什麼是深入學習
14.2在Spark中使用H2O和
14.2.1什麼是H2O
14.4.2在Spark中啟動Sparkling W*er
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 W*er API構建和評估深度學習模型
14.4使用H2O的深度學*行分類
14.4.1加載和拆分數據
14.4.2通過Flow UI建造模型
14.4.3通過Sparkling W*er API建造模型
14.4.4停止H2O集*
14.5總結
附錄A安裝Apache Spark
附錄B了解MapReduce
附錄C線性代數基礎