??《深入理解Spark:核心思想與源碼分析》

//
《深入理解Spark:核心思想與源碼分析》 PDF 下載_Java知識(shí)分享網(wǎng)-免費(fèi)Java資源下載
http://www.java1234.com/a/javabook/javaweb/2016/0521/6137.html

圖書(shū)簡(jiǎn)介:本書(shū)對(duì)Spark源代碼進(jìn)行了全面而深入的分析,旨在為Spark的優(yōu)化、定制和擴(kuò)展提供原理性的指導(dǎo)抒和。阿里巴巴集團(tuán)專(zhuān)家鼎力推薦错蝴,阿里巴巴資深Java開(kāi)發(fā)和大數(shù)據(jù)專(zhuān)家撰寫(xiě)一喘。本書(shū)對(duì)Spark的核心模塊绒瘦、部署和協(xié)作模塊的實(shí)現(xiàn)原理與使用技巧進(jìn)行了深入的剖析與解讀闭树。
  本書(shū)分為三篇:
  準(zhǔn)備篇(第1~2章)蚪腋,介紹了Spark的環(huán)境搭建丰歌、設(shè)計(jì)理念與基本架構(gòu),幫助讀者了解一些背景知識(shí)屉凯。
  核心設(shè)計(jì)篇(第3~7章)立帖,著重講解SparkContext的初始化、存儲(chǔ)體系悠砚、任務(wù)提交與執(zhí)行晓勇、計(jì)算引擎及部署模式的原理和源碼分析。通過(guò)這部分的內(nèi)容,讀者可以通過(guò)源碼剖析更加深入理解Spark的核心設(shè)計(jì)與實(shí)現(xiàn)绑咱,以便在實(shí)際使用中能夠快速解決線上問(wèn)題并對(duì)性能進(jìn)行調(diào)優(yōu)绰筛。
  擴(kuò)展篇(第8~11章),主要講解基于Spark核心的各種擴(kuò)展及應(yīng)用描融,包括SQL處理引擎铝噩、Hive處理、流式計(jì)算框架Spark Streaming窿克、圖計(jì)算框架GraphX骏庸、機(jī)器學(xué)習(xí)庫(kù)MLlib等內(nèi)容。通過(guò)閱讀這部分內(nèi)容让歼,讀者可以擴(kuò)展實(shí)際項(xiàng)目中對(duì)Spark的應(yīng)用場(chǎng)景敞恋,讓Spark煥發(fā)活力。

相關(guān)截圖:

《深入理解Spark:核心思想與源碼分析》 PDF 下載 圖1

圖書(shū)目錄:Contents 目錄前言準(zhǔn) 備 篇第1章 環(huán)境準(zhǔn)備21.1 運(yùn)行環(huán)境準(zhǔn)備21.1.1 安裝JDK31.1.2 安裝Scala31.1.3 安裝Spark41.2 Spark初體驗(yàn)41.2.1 運(yùn)行spark-shell41.2.2 執(zhí)行word count51.2.3 剖析spark-shell71.3 閱讀環(huán)境準(zhǔn)備111.4 Spark源碼編譯與調(diào)試131.5 小結(jié)17第2章 Spark設(shè)計(jì)理念與基本架構(gòu)182.1 初識(shí)Spark182.1.1 Hadoop MRv1的局限182.1.2 Spark使用場(chǎng)景202.1.3 Spark的特點(diǎn)202.2 Spark基礎(chǔ)知識(shí)202.3 Spark基本設(shè)計(jì)思想222.3.1 Spark模塊設(shè)計(jì)222.3.2 Spark模型設(shè)計(jì)242.4 Spark基本架構(gòu)252.5 小結(jié)26核心設(shè)計(jì)篇第3章 SparkContext的初始化283.1 SparkContext概述283.2 創(chuàng)建執(zhí)行環(huán)境SparkEnv303.2.1 安全管理器SecurityManager313.2.2 基于Akka的分布式消息系統(tǒng)ActorSystem313.2.3 map任務(wù)輸出跟蹤器mapOutputTracker323.2.4 實(shí)例化ShuffleManager343.2.5 shuffle線程內(nèi)存管理器ShuffleMemoryManager343.2.6 塊傳輸服務(wù)BlockTransferService353.2.7 BlockManagerMaster介紹353.2.8 創(chuàng)建塊管理器BlockManager363.2.9 創(chuàng)建廣播管理器Broadcast-Manager363.2.10 創(chuàng)建緩存管理器CacheManager373.2.11 HTTP文件服務(wù)器HttpFile-Server373.2.12 創(chuàng)建測(cè)量系統(tǒng)MetricsSystem393.2.13 創(chuàng)建SparkEnv403.3 創(chuàng)建metadataCleaner413.4 SparkUI詳解423.4.1 listenerBus詳解433.4.2 構(gòu)造JobProgressListener463.4.3 SparkUI的創(chuàng)建與初始化473.4.4 Spark UI的頁(yè)面布局與展示493.4.5 SparkUI的啟動(dòng)543.5 Hadoop相關(guān)配置及Executor環(huán)境變量543.5.1 Hadoop相關(guān)配置信息543.5.2 Executor環(huán)境變量543.6 創(chuàng)建任務(wù)調(diào)度器TaskScheduler553.6.1 創(chuàng)建TaskSchedulerImpl553.6.2 TaskSchedulerImpl的初始化573.7 創(chuàng)建和啟動(dòng)DAGScheduler573.8 TaskScheduler的啟動(dòng)603.8.1 創(chuàng)建LocalActor603.8.2 ExecutorSource的創(chuàng)建與注冊(cè)623.8.3 ExecutorActor的構(gòu)建與注冊(cè)643.8.4 Spark自身ClassLoader的創(chuàng)建643.8.5 啟動(dòng)Executor的心跳線程663.9 啟動(dòng)測(cè)量系統(tǒng)MetricsSystem693.9.1 注冊(cè)Sources703.9.2 注冊(cè)Sinks703.9.3 給Sinks增加Jetty的Servlet-ContextHandler713.10 創(chuàng)建和啟動(dòng)ExecutorAllocation-Manager723.11 ContextCleaner的創(chuàng)建與啟動(dòng)733.12 Spark環(huán)境更新743.13 創(chuàng)建DAGSchedulerSource和BlockManagerSource763.14 將SparkContext標(biāo)記為激活773.15 小結(jié)78第4章 存儲(chǔ)體系794.1 存儲(chǔ)體系概述794.1.1 塊管理器BlockManager的實(shí)現(xiàn)794.1.2 Spark存儲(chǔ)體系架構(gòu)814.2 shuffle服務(wù)與客戶(hù)端834.2.1 Block的RPC服務(wù)844.2.2 構(gòu)造傳輸上下文Transpor-tContext854.2.3 RPC客戶(hù)端工廠Transport-ClientFactory864.2.4 Netty服務(wù)器TransportServer874.2.5 獲取遠(yuǎn)程shuffle文件884.2.6 上傳shuffle文件894.3 BlockManagerMaster對(duì)Block-Manager的管理904.3.1 BlockManagerMasterActor904.3.2 詢(xún)問(wèn)Driver并獲取回復(fù)方法924.3.3 向BlockManagerMaster注冊(cè)BlockManagerId934.4 磁盤(pán)塊管理器DiskBlockManager944.4.1 DiskBlockManager的構(gòu)造過(guò)程944.4.2 獲取磁盤(pán)文件方法getFile964.4.3 創(chuàng)建臨時(shí)Block方法create-TempShuffleBlock964.5 磁盤(pán)存儲(chǔ)DiskStore974.5.1 NIO讀取方法getBytes974.5.2 NIO寫(xiě)入方法putBytes984.5.3 數(shù)組寫(xiě)入方法putArray984.5.4 Iterator寫(xiě)入方法putIterator984.6 內(nèi)存存儲(chǔ)MemoryStore994.6.1 數(shù)據(jù)存儲(chǔ)方法putBytes1014.6.2 Iterator寫(xiě)入方法putIterator詳解1014.6.3 安全展開(kāi)方法unrollSafely1024.6.4 確認(rèn)空閑內(nèi)存方法ensureFreeSpace1054.6.5 內(nèi)存寫(xiě)入方法putArray1074.6.6 嘗試寫(xiě)入內(nèi)存方法tryToPut1084.6.7 獲取內(nèi)存數(shù)據(jù)方法getBytes1094.6.8 獲取數(shù)據(jù)方法getValues1104.7 Tachyon存儲(chǔ)TachyonStore1104.7.1 Tachyon簡(jiǎn)介1114.7.2 TachyonStore的使用1124.7.3 寫(xiě)入Tachyon內(nèi)存的方法putIntoTachyonStore1134.7.4 獲取序列化數(shù)據(jù)方法getBytes1134.8 塊管理器BlockManager1144.8.1 移出內(nèi)存方法dropFrom-Memory1144.8.2 狀態(tài)報(bào)告方法reportBlockStatus1164.8.3 單對(duì)象塊寫(xiě)入方法putSingle1174.8.4 序列化字節(jié)塊寫(xiě)入方法putBytes1184.8.5 數(shù)據(jù)寫(xiě)入方法doPut1184.8.6 數(shù)據(jù)塊備份方法replicate1214.8.7 創(chuàng)建DiskBlockObjectWriter的方法getDiskWriter1254.8.8 獲取本地Block數(shù)據(jù)方法getBlockData1254.8.9 獲取本地shuffle數(shù)據(jù)方法doGetLocal1264.8.10 獲取遠(yuǎn)程Block數(shù)據(jù)方法doGetRemote1274.8.11 獲取Block數(shù)據(jù)方法get1284.8.12 數(shù)據(jù)流序列化方法dataSerializeStream1294.9 metadataCleaner和broadcastCleaner1294.10 緩存管理器CacheManager1304.11 壓縮算法1334.12 磁盤(pán)寫(xiě)入實(shí)現(xiàn)DiskBlockObjectWriter1334.13 塊索引shuffle管理器IndexShuffleBlockManager1354.14 shuffle內(nèi)存管理器ShuffleMemoryManager1374.15 小結(jié)138第5章 任務(wù)提交與執(zhí)行1395.1 任務(wù)概述1395.2 廣播Hadoop的配置信息1425.3 RDD轉(zhuǎn)換及DAG構(gòu)建1445.3.1 為什么需要RDD1445.3.2 RDD實(shí)現(xiàn)分析1465.4 任務(wù)提交1525.4.1 任務(wù)提交的準(zhǔn)備1525.4.2 finalStage的創(chuàng)建與Stage的劃分1575.4.3 創(chuàng)建Job1635.4.4 提交Stage1645.4.5 提交Task1655.5 執(zhí)行任務(wù)1765.5.1 狀態(tài)更新1765.5.2 任務(wù)還原1775.5.3 任務(wù)運(yùn)行1785.6 任務(wù)執(zhí)行后續(xù)處理1795.6.1 計(jì)量統(tǒng)計(jì)與執(zhí)行結(jié)果序列化1795.6.2 內(nèi)存回收1805.6.3 執(zhí)行結(jié)果處理1815.7 小結(jié)187第6章 計(jì)算引擎1886.1 迭代計(jì)算1886.2 什么是shuffle1926.3 map端計(jì)算結(jié)果緩存處理1946.3.1 map端計(jì)算結(jié)果緩存聚合1956.3.2 map端計(jì)算結(jié)果簡(jiǎn)單緩存2006.3.3 容量限制2016.4 map端計(jì)算結(jié)果持久化2046.4.1 溢出分區(qū)文件2056.4.2排序與分區(qū)分組2076.4.3 分區(qū)索引文件2096.5 reduce端讀取中間計(jì)算結(jié)果2106.5.1 獲取map任務(wù)狀態(tài)2136.5.2 劃分本地與遠(yuǎn)程Block2156.5.3 獲取遠(yuǎn)程Block2176.5.4 獲取本地Block2186.6 reduce端計(jì)算2196.6.1 如何同時(shí)處理多個(gè)map任務(wù)的中間結(jié)果2196.6.2 reduce端在緩存中對(duì)中間計(jì)算結(jié)果執(zhí)行聚合和排序2206.7 map端與reduce端組合分析2216.7.1 在map端溢出分區(qū)文件谋右,在reduce端合并組合2216.7.2 在map端簡(jiǎn)單緩存、排序分組补箍,在reduce端合并組合2226.7.3 在map端緩存中聚合改执、排序分組,在reduce端組合2226.8 小結(jié)223第7章 部署模式2247.1 local部署模式2257.2 local-cluster部署模式2257.2.1 LocalSparkCluster的啟動(dòng)2267.2.2 CoarseGrainedSchedulerBackend的啟動(dòng)2367.2.3 啟動(dòng)AppClient2377.2.4 資源調(diào)度2427.2.5 local-cluster模式的任務(wù)執(zhí)行2537.3 Standalone部署模式2557.3.1 啟動(dòng)Standalone模式2557.3.2 啟動(dòng)Master分析2577.3.3 啟動(dòng)Worker分析2597.3.4 啟動(dòng)Driver Application分析2617.3.5 Standalone模式的任務(wù)執(zhí)行2637.3.6 資源回收2637.4 容錯(cuò)機(jī)制2667.4.1 Executor異常退出2667.4.2 Worker異常退出2687.4.3 Master異常退出2697.5 其他部署方案2767.5.1 YARN2777.5.2 Mesos2807.6 小結(jié)282擴(kuò) 展 篇第8章 Spark SQL2848.1 Spark SQL總體設(shè)計(jì)2848.1.1 傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)SQL運(yùn)行原理2858.1.2 Spark SQL運(yùn)行架構(gòu)2868.2 字典表Catalog2888.3 Tree和TreeNode2898.4 詞法解析器Parser的設(shè)計(jì)與實(shí)現(xiàn)2938.4.1 SQL語(yǔ)句解析的入口2948.4.2 建表語(yǔ)句解析器DDLParser2958.4.3 SQL語(yǔ)句解析器SqlParser2968.4.4 Spark代理解析器SparkSQLParser2998.5 Rule和RuleExecutor3008.6 Analyzer與Optimizer的設(shè)計(jì)與實(shí)現(xiàn)3028.6.1 語(yǔ)法分析器Analyzer3048.6.2 優(yōu)化器Optimizer3058.7 生成物理執(zhí)行計(jì)劃3068.8 執(zhí)行物理執(zhí)行計(jì)劃3088.9 Hive3118.9.1 Hive SQL語(yǔ)法解析器3118.9.2 Hive SQL元數(shù)據(jù)分析3138.9.3 Hive SQL物理執(zhí)行計(jì)劃3148.10 應(yīng)用舉例:JavaSparkSQL3148.11 小結(jié)320第9章 流式計(jì)算3219.1 Spark Streaming總體設(shè)計(jì)3219.2 StreamingContext初始化3239.3 輸入流接收器規(guī)范Receiver3249.4 數(shù)據(jù)流抽象DStream3259.4.1 Dstream的離散化3269.4.2 數(shù)據(jù)源輸入流InputDStream3279.4.3 Dstream轉(zhuǎn)換及構(gòu)建DStream Graph3299.5 流式計(jì)算執(zhí)行過(guò)程分析3309.5.1 流式計(jì)算例子CustomReceiver3319.5.2 Spark Streaming執(zhí)行環(huán)境構(gòu)建3359.5.3 任務(wù)生成過(guò)程3479.6 窗口操作3559.7 應(yīng)用舉例3579.7.1 安裝mosquitto3589.7.2 啟動(dòng)mosquitto3589.7.3 MQTTWordCount3599.8 小結(jié)361第10章 圖計(jì)算36210.1 Spark GraphX總體設(shè)計(jì)36210.1.1 圖計(jì)算模型36310.1.2 屬性圖36510.1.3 GraphX的類(lèi)繼承體系36710.2 圖操作36810.2.1 屬性操作36810.2.2 結(jié)構(gòu)操作36810.2.3 連接操作36910.2.4 聚合操作37010.3 Pregel API37110.3.1 Dijkstra算法37310.3.2 Dijkstra的實(shí)現(xiàn)37610.4 Graph的構(gòu)建37710.4.1 從邊的列表加載Graph37710.4.2 在Graph中創(chuàng)建圖的方法37710.5 頂點(diǎn)集合抽象VertexRDD37810.6 邊集合抽象EdgeRDD37910.7 圖分割38010.8 常用算法38210.8.1 網(wǎng)頁(yè)排名38210.8.2 Connected Components的應(yīng)用38610.8.3 三角關(guān)系統(tǒng)計(jì)38810.9 應(yīng)用舉例39010.10 小結(jié)391第11章 機(jī)器學(xué)習(xí)39211.1機(jī)器學(xué)習(xí)概論39211.2 Spark MLlib總體設(shè)計(jì)39411.3 數(shù)據(jù)類(lèi)型39411.3.1 局部向量39411.3.2標(biāo)記點(diǎn)39511.3.3局部矩陣39611.3.4分布式矩陣39611.4基礎(chǔ)統(tǒng)計(jì)39811.4.1摘要統(tǒng)計(jì)39811.4.2相關(guān)統(tǒng)計(jì)39911.4.3分層抽樣40111.4.4假設(shè)檢驗(yàn)40111.4.5隨機(jī)數(shù)生成40211.5分類(lèi)和回歸40511.5.1數(shù)學(xué)公式40511.5.2線性回歸40711.5.3分類(lèi)40711.5.4回歸41011.6決策樹(shù)41111.6.1基本算法41111.6.2使用例子41211.7隨機(jī)森林41311.7.1基本算法41411.7.2使用例子41411.8梯度提升決策樹(shù)41511.8.1基本算法41511.8.2使用例子41611.9樸素貝葉斯41611.9.1算法原理41611.9.2使用例子41811.10保序回歸41811.10.1算法原理41811.10.2使用例子41911.11協(xié)同過(guò)濾41911.12聚類(lèi)42011.12.1K-means42011.12.2高斯混合42211.12.3快速迭代聚類(lèi)42211.12.4latent Dirichlet allocation42211.12.5流式K-means42311.13維數(shù)減縮42411.13.1奇異值分解42411.13.2主成分分析42511.14特征提取與轉(zhuǎn)型42511.14.1術(shù)語(yǔ)頻率反轉(zhuǎn)42511.14.2單詞向量轉(zhuǎn)換42611.14.3標(biāo)準(zhǔn)尺度42711.14.4正規(guī)化尺度42811.14.5卡方特征選擇器42811.14.6Hadamard積42911.15頻繁模式挖掘42911.16預(yù)言模型標(biāo)記語(yǔ)言43011.17管道43111.17.1管道工作原理43211.17.2管道API介紹43311.17.3交叉驗(yàn)證43511.18小結(jié)436附錄A Utils437附錄B Akka446附錄C Jetty450附錄D Metrics453附錄E Hadoop word count456附錄F CommandUtils458附錄G Netty461附錄H 源碼編譯錯(cuò)誤465

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坑雅,一起剝皮案震驚了整個(gè)濱河市辈挂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌裹粤,老刑警劉巖终蒂,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異遥诉,居然都是意外死亡拇泣,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)矮锈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)霉翔,“玉大人,你說(shuō)我怎么就攤上這事苞笨≌洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵瀑凝,是天一觀的道長(zhǎng)序芦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粤咪,這世上最難降的妖魔是什么谚中? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上藏杖,老公的妹妹穿的比我還像新娘将塑。我一直安慰自己,他們只是感情好蝌麸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布点寥。 她就那樣靜靜地躺著,像睡著了一般来吩。 火紅的嫁衣襯著肌膚如雪敢辩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天弟疆,我揣著相機(jī)與錄音戚长,去河邊找鬼。 笑死怠苔,一個(gè)胖子當(dāng)著我的面吹牛同廉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柑司,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼迫肖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了攒驰?” 一聲冷哼從身側(cè)響起蟆湖,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玻粪,沒(méi)想到半個(gè)月后隅津,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劲室,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年伦仍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痹籍。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呢铆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹲缠,到底是詐尸還是另有隱情棺克,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布线定,位于F島的核電站娜谊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏斤讥。R本人自食惡果不足惜纱皆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一湾趾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧派草,春花似錦搀缠、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鉴竭,卻和暖如春歧譬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搏存。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工瑰步, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人璧眠。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓缩焦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蛆橡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舌界,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容