Spark核心技術與高級應用

Spark核心技術與高級應用

作者: 於俊
出版社: 機械工業
出版在: 2015-12-01
ISBN-13: 9787111523543
ISBN-10: 7111523547
總頁數: 300 頁





內容描述


<內容簡介>
本書共分為四大部分:基礎篇(1~10章)介紹了Spark的用途、擴展、安裝、運行模式、程序開發、編程模型、工作原理,以及SparkSQL、SparkStreaming、MLlib、GraphX​​、Bagel等重要的擴展;實戰篇(11~14)講解了搜索結果的排序、個性化推薦系統、日誌分析系統、自然語言處理、數據挖掘等方面的案例;高級篇(15~18)則講解了Spark的調度管理、存儲管理、監控管理、性能優化、最佳實踐以及重點算法的解讀;擴展篇(19~20)講解了Sparkjob-server和Tachyon。  

<章節目錄>
前言基礎篇第1章Spark簡介2 1.1什麼是Spark2 1.1.1概述3 1.1.2Spark大數據處理框架3 1.1.3Spark的特點4 1.1.4Spark應用場景5 1.2Spark的重要擴展6 1.2.1SparkSQL和DataFrame6 1.2 .2SparkStreaming7 1.2.3SparkMLlib和ML8 1.2.4GraphX8 1.2.5SparkR9 1.3本章小結10 第2章Spark部署和運行11 2.1部署準備11 2.1.1下載Spark11 2.1.2編譯Spark版本12 2.1.3集群部署概述14 2.2Spark部署15 2.2.1Local模式部署16 2.2.2Standalone模式部署16 2.2.3YARN模式部署18 2.3運行Spark應用程序19 2.3.1Local模式運行Spark應用程序19 2.3.2Standalone模式運行Spark應用程序20 2.3.3YARN模式運行Spark22 2.3.4應用程序提交和參數傳遞23 2.4本章小結26 第3章Spark程序開發27 3.1使用SparkShell編寫程序27 3.1.1啟動SparkShell28 3.1.2加載text文件28 3.1.3簡單RDD操作28 3.1.4簡單RDD操作應用29 3.1.5RDD緩存30 3.2構建Spark的開發環境30 3.2.1準備環境30 3.2.2構建Spark的Eclipse開發環境31 3.2.3構建Spark的IntelliJIDEA開發環境32 3.3獨立應用程序編程40 3.3. 1創建SparkContext對象40 3.3.2編寫簡單應用程序40 3.3.3編譯並提交應用程序40 3.4本章小結43 第4章編程模型44 4.1RDD介紹44 4.1.1RDD特徵45 4.1.2RDD依賴45 4.2創建RDD47 4.2 .1集合(數組)創建RDD47 4.2.2存儲創建RDD48 4.3RDD操作49 4.3.1轉換操作50 4.3.2執 ​​行操作52 4.3.3控制操作54 4.4共享變量56 4.4.1廣播變量57 4.4.2累加器57 4.5本章小結58 第5章作業執行解析59 5.1基本概念59 5.1.1Spark組件59 5.1.2RDD視圖60 5.1.3DAG圖61 5.2作業執行流程62 5.2.1基於Standalone模式的Spark架構62 5.2.2基於YARN模式的Spark架構64 5.2.3作業事件流和調度分析65 5.3運行時環境67 5.3.1構建應用程序運行時環境68 5.3.2應用程序轉換成DAG68 5.3.3調度執行DAG圖70 5.4應用程序運行實例71 5.5本章小結72 第6章SparkSQL與DataFrame73 6.1概述73 6.1.1SparkSQL發展74 6.1.2SparkSQL架構74 6.1.3SparkSQL特點76 6.1.4SparkSQL性能76 6.2DataFrame77 6.2.1DataFrame和RDD的區別78 6.2.2創建DataFrame78 6.2.3DataFrame操作80 6.2.4RDD轉化為DataFrame82 6.3數據源84 6.3.1加載保存操作84 6.3.2Parquet文件85 6.3.3JSON數據集88 6.3.4Hive表89 6.3.5通過JDBC連接數據庫91 6.3. 6多數據源整合查詢的小例子92 6.4分佈式的SQLEngine93 6.4.1運行ThriftJDBC/ODBC服務93 6.4.2運行SparkSQLCLI94 6.5性能調優94 6.5.1緩存數據94 6.5.2調優參數94 6.5.3增加並行度95 6.6數據類型95 6.7本章小結96 第7章深入瞭解SparkStreaming97 7.1基礎知識97 7.1.1SparkStreaming工作原理98 7.1.2DStream編程模型99 7.2DStream操作100 7.2.1InputDStream100 7.2.2DStream轉換操作102 7.2.3DStream狀態操作104 7.2.4DStream輸出操作106 7.2.5緩存及持久化107 7.2.6檢查點108 7.3性能調優109 7.3.1優化運行時間109 7.3.2設置合適的批次大小111 7.3.3優化內存使用111 7.4容錯處理112 7.4.1文件輸入源112 7.4.2基於Receiver的輸入源112 7.4.3輸出操作113 7.5一個例子113 7.6本章小結115 第8章SparkMLlib與機器學習116 8.1機器學習概述116 8.1 .1機器學習分類117 8.1.2機器學習算法117 8.2SparkMLlib介紹118 8.3SparkMLlib庫119 8.3.1MLlib數據類型120 8.3.2MLlib的算法庫與實例123 8.4ML庫142 8.4.1主要概念143 8.4.2算法庫與實例145 8.5本章小結147 第9章GraphX ​​圖計算框架與應用148 9.1概述148 9.2SparkGraphX ​​架構149 9.3GraphX ​​編程150 9.3.1GraphX ​​的圖操作152 9.3.2常用圖算法161 9.4應用場景164 9.4.1圖譜體檢平臺164 9.4.2多圖合併工具165 9.4.3能量傳播模型165 9.5本章小結166 第10章SparkR(RonSpark)167 10.1概述167 10.1.1SparkR介紹168 10.1.2SparkR的工作原理168 10.1.3R語言介紹169 10.1.4R語言與其他語言的通信170 10.2安裝SparkR170 10.2.1安裝R語言與rJava171 10.2.2SparkR的安裝171 10.3SparkR的運行與應用示例172 10.3.1運行SparkR172 10.3.2SparkR示例程序173 10.3. 3R的DataFrame操作方法175 10.3.4SparkR的DataFrame183 10.4本章小結186 實戰篇第11章大數據分析系統188 11.1背景188 11.2數據格式189 11.3應用架構189 11.4業務實現190 11.4.1流量、性能的實時分析190 11.4.2流量、性能的統計分析192 11.4.3業務關聯分析193 11.4.4離線報表分析195 11.5本章小結199 第12章系統資源分析平臺200 12.1業務背景200 12.1.1業務介紹201 12.1.2實現目標201 12.2應用架構201 12.2.1總體架構202 12.2.2模塊架構202 12.3代碼實現203 12.3.1Kafka集群203 12.3.2數據採集207 12.3.3離線數據處理207 12.3.4數據表現207 12.4結果驗證213 12.5本章小結214 第13章在Spark上訓練LR模型215 13.1邏輯回歸簡介215 13.2數據格式216 13.3MLlib中LR模型源碼介紹217 13.3.1邏輯回歸分類器217 13.3.2優化方法219 13.3.3算法效果評估221 13.4實現案例223 13.4.1訓練模型223 13.4.2計算AUC223 13.5本章小結224 第14章獲取二級鄰居關係圖225 14.1理解PageRank225 14.1.1初步理解PageRank225 14.1.2深入理解PageRank227 14.2PageRank算法基於Spark的實現228 14.3基於PageRank的二級鄰居獲取232 14.3.1系統設計232 14.3.2系統實現232 14.3.3代碼提交命令235 14.4本章小結236 高級篇第15章調度管理238 15.1調度概述238 15.1. 1應用程序間的調度239 15.1.2應用程序中的調度241 15.2調度器242 15.2.1調度池243 15.2.2Job調度流程243 15.2.3調度模塊245 15.2.4Job的生與死249 15.3本章小結253 第16章存儲管理254 16.1硬件環境254 16.1.1存儲系統254 16.1.2本地磁盤255 16.1.3內存255 16.1.4網絡和CPU255 16.2Storage模塊256 16.2.1通信層256 16.2.2存儲層258 16.3 Shuffle數據持久化261 16.4本章小結263 第17章監控管理264 17.1Web界面264 17.2SparkUI歷史監控266 17.2.1使用spark—server的原因266 17.2.2配置spark—server266 17.3監控工具269 17.3.1Metrics工具269 17.3.2其他工具271 17.4本章小結272 第18章性能調優273 18.1文件的優化273 18.1.1輸入採用大文件273 18.1.2lzo壓縮處理274 18.1.3Cache壓縮275 18.2序列化數據277 18.3緩存278 18.4共享變量278 18.4.1廣播變量279 18.4.2累加器279 18.5流水線優化280 18.6本章小結280 擴展篇第19章Spark—jobserver實踐282 19.1Spark—jobserver是什麼282 19.2編譯、部署及體驗283 19.2.1編譯及部署283 19.2.2體驗286 19.3Spark—jobserver程序實戰288 19.3.1創建步驟288 19.3.2一些常見的問題289 19.4使用場景:用戶屬性分佈計算289 19.4.1項目需求290 19.4.2計算架構290 19.4.3使用NamedRDD291 19.5本章小結291 第20章SparkTachyon實戰292 20.1Tachyon文件系統292 20.1.1文件系統概述293 20.1.2HDFS和Tachyon294 20.1.3Tachyon設計原理294 20.1.4Tachyon特性295 20.2Tachyon入門295 20.2. 1Tachyon部署295 20.2.2TachyonAPI297 20.2.3在Spark上使用Tachyon298 20.3容錯機制299 20.4本章小結300  

<作者介紹>
於俊,科大訊飛大數據專家,專註大數據Hadoop和spark平臺;主要工作是大數據統計分析和機器學習算法工程實現。向海,科大訊飛大數據專家,spark愛好者,專註於大數據領域,現從事基於spark的用戶行為分析相關工作。代其鋒,百分點科技大數據架構師,專註於分佈式系統架構;主要工作是負責公司底層基礎平臺的建設和spark技術的推廣。馬海平,科大訊飛大數據高級研究員,專註於用機器學習做大數據商業變現;主要工作是數據挖掘算法研究和spam實現。




相關書籍

Big Data for Chimps: A Guide to Massive-Scale Data Processing in Practice (Paperback)

作者 Philip Kromer Russell Jurney

2015-12-01

JavaScript開發框架權威指南 (JavaScript Frameworks for Modern Web Dev)

作者 安布勒 (Tim Ambler) 克勞德 (Nicholas Cloud)

2015-12-01

Flask 網頁開發, 2/e (Flask Web Development : Developing Web Applications with Python, 2/e)

作者 Miguel Grinberg 賴屹民

2015-12-01