Spark技術內幕:深入解析Spark內核架構設計與實現(xiàn)原理是一本Spark解析實用教學書籍,由張安站編著,全書詳細剖析了Spark內核各個模塊,以源碼為基礎,全面分析了Spark內核的各個模塊的設計思想和實現(xiàn)原理,深入理解其內部運作機制乃至實現(xiàn)細節(jié),幫助Spark領域的從業(yè)人員全面掌握Spark核心技術,進而在應用開發(fā)中做到游刃有余和性能調優(yōu)時做到有的放矢。
內容介紹
《Spark技術內幕:深入解析Spark內核架構設計與實現(xiàn)原理》以源碼為基礎,深入分析Spark內核的設計理念和架構實現(xiàn),系統(tǒng)講解各個核心模塊的實現(xiàn),為性能調優(yōu)、二次開發(fā)和系統(tǒng)運維提供理論支持;本文最后以項目實戰(zhàn)的方式,系統(tǒng)講解生產環(huán)境下Spark應用的開發(fā)、部署和性能調優(yōu)。
本書共分為9章:
第1章介紹了Spark的技術背景和特點,給出了架構的整體概述,并簡單介紹了Spark的生態(tài)圈。
第2章介紹了Spark源碼如何獲取和學習環(huán)境如何搭建。
第3章是RDD的詳細介紹,介紹了RDD的定義和Spark對于DAG的實現(xiàn),最后通過RDD計算的詳細介紹,講解了Spark對于計算的實現(xiàn)原理。
第4章詳細介紹任務調度的實現(xiàn),包括如何通過DAG來生成計算任務,最后通過“Word Count”來加深對這個實現(xiàn)過程的理解。
第5章介紹了Spark的運行模式,尤其是Standalone模式。Standalone是Spark自身實現(xiàn)的資源管理和調度的模塊,這里會詳細介紹它的實現(xiàn)原理。
第6章是Executor模塊的詳細講解。Executor是最終執(zhí)行計算任務的單元,這章將詳細介紹Executor的實現(xiàn)原理,包括Executor的分配、Task在Executor的詳細執(zhí)行過程。
第7章詳細介紹了Spark對于Shuffle的實現(xiàn)原理,包括基于Hash和基于排序的實現(xiàn)。除了詳細闡述基于Hash和排序的Shuffle寫和Shuffle讀之外,還介紹了Shuffle Pluggable框架,為需要實現(xiàn)特定Shuffle邏輯的讀者介紹其實現(xiàn)原理。
第8章詳細介紹了Spark的Storage模塊,在詳細介紹了模塊的架構后詳細解析了不同存儲級別的實現(xiàn)細節(jié)。
第9章介紹了Spark在百度、騰訊和阿里等國內互聯(lián)網領域的應用現(xiàn)狀。
章節(jié)目錄
序 前言 第1章 Spark簡介1 1.1Spark的技術背景1 1.2Spark的優(yōu)點2 1.3Spark架構綜述4 1.4Spark核心組件概述5 1.4.1Spark Streaming5 1.4.2MLlib6 1.4.3Spark SQL7 1.4.4 GraphX8 1.5Spark的整體代碼結構規(guī)模8 第2章 Spark學習環(huán)境的搭建9 2.1源碼的獲取與編譯9 2.1.1源碼獲取9 2.1.2源碼編譯10 2.2構建Spark的源碼閱讀環(huán)境11 2.3小結15 第3章 RDD實現(xiàn)詳解16 3.1概述16 3.2什么是RDD17 3.2.1RDD的創(chuàng)建19 3.2.2RDD的轉換20 3.2.3 RDD的動作22 3.2.4RDD的緩存23 3.2.5RDD的檢查點24 3.3RDD的轉換和DAG的生成25 3.3.1RDD的依賴關系26 3.3.2DAG的生成30 3.3.3Word Count的RDD轉換和DAG劃分的邏輯視圖30 3.4RDD的計算33 3.4.1Task簡介33 3.4.2Task的執(zhí)行起點33 3.4.3緩存的處理35 3.4.4checkpoint的處理37 3.4.5RDD的計算邏輯39 3.5RDD的容錯機制39 3.6小結40 第4章 Scheduler 模塊詳解41 4.1模塊概述41 4.1.1整體架構41 4.1.2Scheduler的實現(xiàn)概述43 4.2DAGScheduler實現(xiàn)詳解45 4.2.1DAGScheduler的創(chuàng)建46 4.2.2Job的提交48 4.2.3Stage的劃分49 4.2.4任務的生成54 4.3任務調度實現(xiàn)詳解57 4.3.1TaskScheduler的創(chuàng)建57 4.3.2Task的提交概述58 4.3.3任務調度具體實現(xiàn)61 4.3.4Task運算結果的處理65 4.4Word Count調度計算過程詳解72 4.5小結74 第5章 Deploy模塊詳解76 5.1 Spark運行模式概述76 5.1.1 local77 5.1.2Mesos78 5.1.3YARN82 5.2模塊整體架構86 5.3消息傳遞機制詳解87 5.3.1Master和Worker87 5.3.2Master和Client89 5.3.3Client和Executor91 5.4集群的啟動92 5.4.1Master的啟動92 5.4.2Worker的啟動96 5.5集群容錯處理98 5.5.1Master 異常退出98 5.5.2Worker異常退出99 5.5.3Executor異常退出101 5.6Master HA實現(xiàn)詳解102 5.6.1Master啟動的選舉和數(shù)據(jù)恢復策略103 5.6.2集群啟動參數(shù)的配置105 5.6.3Curator Framework簡介 106 5.6.4ZooKeeperLeaderElectionAgent的實現(xiàn)109 5.7小結110 第6章 Executor模塊詳解112 6.1Standalone模式的Executor分配詳解113 6.1.1SchedulerBackend創(chuàng)建AppClient114 6.1.2AppClient向Master注冊Application116 6.1.3Master根據(jù)AppClient的提交選擇Worker119 6.1.4Worker根據(jù)Master的資源分配結果創(chuàng)建Executor121 6.2Task的執(zhí)行122 6.2.1依賴環(huán)境的創(chuàng)建和分發(fā)123 6.2.2任務執(zhí)行125 6.2.3任務結果的處理128 6.2.4Driver端的處理130 6.3 參數(shù)設置131 6.3.1 spark.executor.memory131 6.3.2日志相關132 6.3.3spark.executor.heartbeatInterval132 6.4小結133 第7章 Shuffle模塊詳解134 7.1Hash Based Shuffle Write135 7.1.1Basic Shuffle Writer實現(xiàn)解析136 7.1.2存在的問題138 7.1.3Shuffle Consolidate Writer139 7.1.4小結140 7.2Shuffle Pluggable 框架141 7.2.1org.apache.spark.shuffle.ShuffleManager141 7.2.2org.apache.spark.shuffle.ShuffleWriter143 7.2.3org.apache.spark.shuffle.ShuffleBlockManager143 7.2.4org.apache.spark.shuffle.ShuffleReader144 7.2.5如何開發(fā)自己的Shuffle機制144 7.3Sort Based Write144 7.4Shuffle Map Task運算結果的處理148 7.4.1Executor端的處理148 7.4.2Driver端的處理150 7.5Shuffle Read152 7.5.1整體流程152 7.5.2數(shù)據(jù)讀取策略的劃分155 7.5.3本地讀取156 7.5.4遠程讀取158 7.6性能調優(yōu)160 7.6.1spark.shuffle.manager160 7.6.2spark.shuffle.spill162 7.6.3spark.shuffle.memoryFraction和spark.shuffle.safetyFraction162 7.6.4spark.shuffle.sort.bypassMergeThreshold 163 7.6.5spark.shuffle.blockTransferService 163 7.6.6spark.shuffle.consolidateFiles 163 7.6.7spark.shuffle.compress和 spark.shuffle.spill.compress164 7.6.8spark.reducer.maxMbInFlight165 7.7小結165 第8章 Storage模塊詳解167 8.1模塊整體架構167 8.1.1整體架構167 8.1.2源碼組織結構170 8.1.3Master 和Slave的消息傳遞詳解173 8.2存儲實現(xiàn)詳解181 8.2.1存儲級別181 8.2.2模塊類圖184 8.2.3org.apache.spark.storage.DiskStore實現(xiàn)詳解186 8.2.4org.apache.spark.storage.MemoryStore實現(xiàn)詳解188 8.2.5org.apache.spark.storage.TachyonStore實現(xiàn)詳解189 8.2.6Block存儲的實現(xiàn)190 8.3性能調優(yōu)194 8.3.1spark.local.dir194 8.3.2spark.executor.memory194 8.3.3spark.storage.memoryFraction194 8.3.4spark.streaming.blockInterval195 8.4小結195 第9章 企業(yè)應用概述197 9.1Spark在百度197 9.1.1現(xiàn)狀197 9.1.2百度開放云BMR的Spark198 9.1.3在Spark中使用Tachyon199 9.2Spark在阿里200 9.3Spark在騰訊200 9.4小結201
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀
- 下載地址
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- 得間免費小說電腦版 v5.3.0.372.58M / 簡體中文
- 有柿電腦版 v11.6.284.23M / 簡體中文
- cnki全球學術快報電腦版 v1.0.1135.99M / 簡體中文
- 南方Plus電腦版 v11.9.026.47M / 簡體中文
- 網易新聞電腦版 v113.197.68M / 簡體中文
- 開源閱讀電腦版 v3.2517.96M / 簡體中文
- 瀟湘書院電腦版 v2.3.11.888官方版49.65M / 簡體中文
- 吉利博瑞用戶手冊 pdf高清版57.89M / 簡體中文
- docker入門實戰(zhàn) pdf完整版1.38M / 簡體中文
- C++黑客編程揭秘與防范第2版 冀云pdf掃描版54.58M / 簡體中文