本書是一本全面介紹Spark以及Spark生態系統相關技術的書籍。主要內容包括Spark系統概述、Spark安裝和集群的部署、RDD的編程實踐、Spark的運行模式、Spark的運行機制以及Spark的四大子框架(Spark SQL、Spark Streaming、Spark GraphX、MLlib)的詳細講解。本書通過理論和實踐相結合的方式對Spark的核心框架和生態圈做了詳細的解讀,不僅對Spark的原理進行詳細闡述,還結合Spark的源碼和案例操作展示了Spark框架的所具有的優雅和豐富的表現力。本書適合大數據從業者、Spark技術愛好者閱讀。相信通過學習本書,讀者能夠熟悉和掌握Spark這一當前流行的大數據計算框架,并將其投入到實踐中去。
大數據培訓名師、Spark大數據暢銷書《大數據Spark企業級實戰》作者王家林新作。內容全面覆蓋Spark技術及其生態系統,通過源碼分析詳解Spark四大子框架。秉承“實戰”類圖書特點,解析大量代碼的編寫操作,具有較強的可操作性,便于讀者學習和理解。
第1章Spark系統概述11Spark是什么12Spark生態系統BDAS121Spark Core122Spark SQL123Spark Streaming124Spark GraphX125MLlib126Tachyon127BlinkDB思考題第2章Spark安裝和集群部署21搭建Hadoop分布式集群211安裝VMware虛擬機212安裝Ubuntu的鏡像文件213安裝JDK214搭建另外兩臺Ubuntu系統并配置SSH免密碼登錄215安裝Hadoop和搭建Hadoop分布式集群22Spark安裝和集群部署221安裝Scala222安裝Spark和集群部署23測試Spark集群231通過Spark提供的示例LocalPi測試Spark集群232通過Spark Shell測試Spark集群思考題第3章Spark RDD與Spark API編程實踐31RDD介紹311RDD是Spark的核心抽象312RDD的特征32RDD的操作分類321輸入操作322轉換操作323行動操作324控制操作33Spark Shell下的Spark API編程實踐331Local模式下實踐map、filter和collect方法332集群模式下實踐textFile、sortByKey和 saveAstextFile方法333集群模式下實踐union、join、reduce和lookup方法334搜狗日志數據分析實踐34基于IntelliJ IDEA使用Spark API開發應用程序341搭建和設置IntelliJ IDEA開發環境342在IntelliJ IDEA下開發并部署Spark應用程序343使用SBT編譯Spark應用程序344使用Maven構建Spark應用程序345Spark工具思考題第4章Spark的運行模式41Spark的運行模式概覽411Spark的基本工作流程412Spark應用程序部署42Local模式421Local模式實例部署及運行演示422Local模式內部實現原理43Standalone模式431Standalone模式實例部署及運行演示432Standalone模式內部實現原理44Yarn-Cluster模式441Yarn-Cluster模式實例部署及運行演示442Yarn-Cluster模式內部實現原理45Yarn-Client模式451Yarn-Client模式實例部署及運行演示452Yarn-Client模式內部實現原理46Mesos模式461Mesos模式實例部署及運行演示462Mesos模式內部實現原理思考題第5章Spark的運行機制51Spark集群的架構52Spark的作業和任務調度521Spark Application提交522作業(Job)提交523DAGScheduler劃分Stage并提交524TaskScheduler提交Task525Executor運行Task并返回結果526Driver的處理53容錯機制531Lineage機制532Checkpoint機制54Storage存儲模塊541Storage模塊整體架構542緩存實現原理543緩存策略55Spark的消息傳遞機制Akka551Akka架構解析552Akka驅動下的start-allsh源碼解析56Shuffle機制561Shuffle的原理 562Shuffle的寫操作563Shuffle的讀操作57共享變量571廣播變量572累加器58Spark性能調優581數據序列化582內存優化583其他優化方法思考題第6章Spark SQL61Spark SQL原理和實現611Spark SQL簡介612Spark SQL運行架構613Hive在Spark上的使用614源碼解析SQL語句和HiveQL語句的執行過程62Spark SQL的操作實例621文本文件操作以及DSL操作622Parquet文件以及JSON文件操作623Hive數據操作演示(訂單交易數據操作)624Spark SQL處理交通數據實戰思考題第7章Spark Streaming71Spark Streaming運行原理711Spark Streaming簡介712編程模型DStream713容錯和持久化714性能調優715監控應用72源碼解析Spark Streaming的運行過程721StreamingContext初始化并啟動722數據接收723數據處理73Spark Streaming操作實例演示731文本數據操作實例演示732網絡數據操作實例——銷售模擬器演示733有狀態(Stateful)操作實例演示734Window操作實例演示735SparkStreaming處理多源數據實戰思考題第8章Spark GraphX81圖的定義和應用811圖的定義812圖的應用82Spark GraphX簡介821彈性分布式屬性圖822Spark GraphX圖的切分和存儲策略823Spark GraphX圖的操作83Spark GraphX架構831Pregel圖計算框架832Spark GraphX的實現833Spark GraphX圖算法的實現方法84Spark GraphX圖操作實例841基于Spark GraphX的屬性圖的操作實例842Spark GraphX圖算法操作實例思考題第9章MLlib91機器學習簡介911機器學習的定義912機器學習的分類913機器學習的常用算法92MLlib的簡介921什么是MLlib922MLlib的架構923MLlib的數據類型924MLlib的算法93MLlib常用算法操作實踐931K-Means算法解析和實踐932協同過濾算法分析和案例實踐思考題