版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Spark設(shè)計與運行原理第3章目
錄01概述02Spark生態(tài)系統(tǒng)03Spark運行架構(gòu)04Spark的部署方式05TensorFlowOnSpark概
述3.1概述3.1概述3.1概述美國加州大學(xué)伯克利分校3.1概述AMP實驗室PeopleMachineAlgorithmYEAR20093.1概述基于內(nèi)存的計算框架大型的低延遲數(shù)據(jù)分析應(yīng)用程序構(gòu)建構(gòu)建3.1概述孵化器項目ApacheYEAR20133.1概述分布式計算系統(tǒng)開源項目3.1概述206個節(jié)點23分鐘100TB數(shù)據(jù)2000個節(jié)點72分鐘100TB數(shù)據(jù)110計算資源Spark在2014年打破了Hadoop保持的基準(zhǔn)排序紀(jì)錄3.1概述206個節(jié)點23分鐘100TB數(shù)據(jù)2000個節(jié)點72分鐘100TB數(shù)據(jù)3倍速度Spark在2014年打破了Hadoop保持的基準(zhǔn)排序紀(jì)錄3.1概述運行速度快內(nèi)存計算循環(huán)數(shù)據(jù)流有向無環(huán)圖設(shè)計機制DAG有向無環(huán)圖3.1概述所有針對數(shù)據(jù)集的操作有向無環(huán)圖3.1概述容易使用ScalaJavaPythonR語言可通過SparkShell進行交互式編程3.1概述流式計算SQL查詢機器學(xué)習(xí)圖算法組件通用性3.1概述模塊化SparkSQLSparkStreamingSparkMLlibSpark的GraphXSparkCore3.1概述運行模式多樣獨立的集群模式運行于3.1概述運行模式多樣可訪問HDFSCassandraHBaseHive數(shù)據(jù)源……3.1概述支持各種數(shù)據(jù)源HBaseHDFSCassandraMongoDBHiveRDBMS3.1概述VS3.1概述MapReduce的缺陷磁盤的IO開銷大延遲高銜接的IO開銷大3.1概述表達能力有限降低了分布式應(yīng)用開發(fā)的復(fù)雜性復(fù)雜業(yè)務(wù)邏輯Map函數(shù)Reduce函數(shù)3.1概述磁盤IO開銷大中間結(jié)果MapReduce3.1概述延遲高02兩個階段01Reduce階段Map階段3.1概述任務(wù)輸出處理Map函數(shù)Reduce函數(shù)中間結(jié)果3.1概述Map…Map3Reduce1Reduce2Reduce3Reduce...Map2Map1并行處理3.1概述輸出等待處理Reduce1Reduce2Reduce3Reduce...Map1Map2Map3Map…完成全部Map中間結(jié)果3.1概述寫入讀取銜接的IO開銷大ReduceMap后結(jié)果3.1概述Spark對Hadoop進行缺陷改進與繼承3.1概述Reduce函數(shù)Map函數(shù)3.1概述MapfilterReducejoingroupBy操作類型更多表達能力更強3.1概述內(nèi)存計算中間結(jié)果再次訪問低延遲3.1概述運行效率提升高效提高迭代運算3.1概述DAG任務(wù)調(diào)度執(zhí)行機制DAG—有向無環(huán)圖3.1概述迭代1結(jié)果2結(jié)果1迭代2使用MapReduce進行反復(fù)迭代3.1概述使用MapReduce進行反復(fù)迭代迭代迭代沒有收斂效率非常低實現(xiàn)3.1概述Spark避免數(shù)據(jù)落地不寫磁盤3.1概述流水線優(yōu)化數(shù)據(jù)生成使用數(shù)據(jù)操作1操作2數(shù)據(jù)交換3.1概述3.1概述圖Hadoop和Spark執(zhí)行邏輯斯蒂回歸的實驗對比1100.9Spark生態(tài)系統(tǒng)3.2Spark生態(tài)系統(tǒng)3.2Spark生態(tài)系統(tǒng)復(fù)雜的批量數(shù)據(jù)處理基于實時數(shù)據(jù)流的數(shù)據(jù)處理基于歷史數(shù)據(jù)的交互式查詢數(shù)十分鐘到數(shù)小時數(shù)十秒到數(shù)分鐘數(shù)百毫秒到數(shù)秒應(yīng)用類型時間跨度3.2Spark生態(tài)系統(tǒng)流處理交互查詢批處理3.2Spark生態(tài)系統(tǒng)資源利用不充分02缺陷0103無法無縫共享使用成本較高3.2Spark生態(tài)系統(tǒng)需要進行數(shù)據(jù)格式轉(zhuǎn)換無法無縫共享3.2Spark生態(tài)系統(tǒng)維護成本較高3.2Spark生態(tài)系統(tǒng)集
群資源利用不充分公共資源管家3.2Spark生態(tài)系統(tǒng)滿足不同的應(yīng)用場景需求3.2Spark生態(tài)系統(tǒng)一個軟件棧滿足不同應(yīng)用場景SQL即席查詢01實時流式計算02機器學(xué)習(xí)03圖計算043.2Spark生態(tài)系統(tǒng)“一個軟件棧滿足不同應(yīng)用場景”3.2Spark生態(tài)系統(tǒng)YARN一站式大數(shù)據(jù)解決方案3.2Spark生態(tài)系統(tǒng)一站式大數(shù)據(jù)解決方案3.2Spark生態(tài)系統(tǒng)伯克利數(shù)據(jù)分析軟件棧BDAS(BerkeleyDataAnalyticsStack)3.2Spark生態(tài)系統(tǒng)BDAS(BerkeleyDataAnalyticsStack)3.2Spark生態(tài)系統(tǒng)SparkCoreSparkSQLSparkStreamingMLlibGraphX3.2Spark生態(tài)系統(tǒng)SparkStreamingStructuredStreamingBlinkDBGraphXMLBaseSparkSQLMLlibSparkCoreTachyonHDFSS3MesosHadoopYARN3.2Spark生態(tài)系統(tǒng)應(yīng)用場景時間跨度其他框架Spark生態(tài)系統(tǒng)中的組件復(fù)雜的批量數(shù)據(jù)處理小時級MapReduceHiveSparkCore基于歷史數(shù)據(jù)的交互式查詢分鐘級
秒級ImpalaDremelDrillSparkSQL基于實時數(shù)據(jù)流的數(shù)據(jù)處理毫秒
秒級StormS4SparkStreaming
StructuredStreaming基于歷史數(shù)據(jù)的數(shù)據(jù)挖掘-MahoutMLlib圖結(jié)構(gòu)數(shù)據(jù)的處理-PregelHamaGraphXSpark運行架構(gòu)3.3Spark運行架構(gòu)3.3.1基本概念3.3.3Spark運行基本流程3.3.2架構(gòu)設(shè)計3.3.4RDD的設(shè)計與運行原理3.3.1基本概念基本概念Stage是Job的基本調(diào)度單位,一個Job會分為多組Task,每組Task被稱為Stage,或者也被稱為TaskSet,代表了一組關(guān)聯(lián)的、相互之間沒有Shuffle依賴關(guān)系的任務(wù)組成的任務(wù)集Job一個Job包含多個RDD及作用于相應(yīng)RDD上的各種操作Task運行在Executor上的工作單元RDD是ResillientDistributedDataset(彈性分布式數(shù)據(jù)集)的簡稱,是分布式內(nèi)存的一個抽象概念,提供了一種高度受限的共享內(nèi)存模型DAG是DirectedAcyclicGraph(有向無環(huán)圖)的簡稱,反映RDD之間的依賴關(guān)系Executor是運行在工作節(jié)點的一個進程,負責(zé)運行TaskApplication用戶編寫的Spark應(yīng)用程序RDD高度受限的共享內(nèi)存模型只讀RDD—彈性分布式數(shù)據(jù)集3.3.1基本概念RDD內(nèi)存生成有向無環(huán)圖DAG—反映RDD之間的依賴關(guān)系3.3.1基本概念進程工作節(jié)點Executor3.3.1基本概念工作節(jié)點Executor運行一個Executor進程任務(wù)任務(wù)任務(wù)任務(wù)運行3.3.1基本概念進程線程任務(wù)工作節(jié)點Executor3.3.1基本概念詞頻統(tǒng)計代碼文件Spark應(yīng)用程序應(yīng)用(application)3.3.1基本概念線程線程任務(wù)運行在Executor的進程上的工作單元……任務(wù)任務(wù)……任務(wù)—運行在Executor上的工作單元3.3.1基本概念作業(yè)階段Spark應(yīng)用程序階段作業(yè)階段階段作業(yè)(Job)3.3.1基本概念作業(yè)階段階段任務(wù)任務(wù)任務(wù)任務(wù)階段—作業(yè)的基本調(diào)度單位3.3.1基本概念工作節(jié)點ExecutorExecutorDriverProgramSparkSessionClusterManagerWorkerNodeCacheTaskTaskWorkerNodeCacheTaskTaskHDFSHBase集群資源管理器3.3.2架構(gòu)設(shè)計應(yīng)用階段階段階段階段作業(yè)作業(yè)任務(wù)任務(wù)...任務(wù)任務(wù)...任務(wù)任務(wù)...任務(wù)任務(wù)...任務(wù)控制節(jié)點(Driver)3.3.2架構(gòu)設(shè)計應(yīng)用階段階段階段階段作業(yè)作業(yè)任務(wù)任務(wù)...任務(wù)任務(wù)...任務(wù)任務(wù)...任務(wù)任務(wù)...任務(wù)控制節(jié)點(Driver)取決于里面相關(guān)代碼3.3.2架構(gòu)設(shè)計申請啟動發(fā)送ExecutorWorkerNodeCacheTaskTask(Receiver)階段作業(yè)任務(wù)任務(wù)...ClusterManager任務(wù)控制節(jié)點(Driver)3.3.2架構(gòu)設(shè)計返回ExecutorWorkerNodeCacheTaskTask(Receiver)申請啟動ClusterManager任務(wù)控制節(jié)點(Driver)3.3.2架構(gòu)設(shè)計申請HDFS或其他數(shù)據(jù)庫寫入ClusterManagerExecutorWorkerNodeCacheTaskTask(Receiver)啟動任務(wù)控制節(jié)點(Driver)3.3.2架構(gòu)設(shè)計作業(yè)階段任務(wù)任務(wù)...階段任務(wù)任務(wù)...3.3.2架構(gòu)設(shè)計3.3.3Spark運行基本流程Spark運行基本流程圖作業(yè)結(jié)果用戶DriverSparkContext階段階段3.3.3Spark運行基本流程集群應(yīng)用程序DriverSparkContext3.3.3Spark運行基本流程監(jiān)控SparkContext申請作業(yè)階段階段工作節(jié)點工作節(jié)點資源管理器任務(wù)任務(wù)任務(wù)任務(wù)3.3.3Spark運行基本流程啟動Executor進程YARNMesos分配資源資源請求資源管理器SparkContext3.3.3Spark運行基本流程WorkerNodeExecutor進程WorkerNodeWorkerNode……………………Executor進程Executor進程3.3.3Spark運行基本流程SparkContextRDD依賴關(guān)系DAG圖代碼RDD操作DAG圖3.3.3Spark運行基本流程DAG圖DAGScheduler將DAG圖分解成Stage3.3.3Spark運行基本流程任務(wù)任務(wù)任務(wù)任務(wù)的集合Stage3.3.3Spark運行基本流程TaskScheduler負責(zé)分發(fā)任務(wù)申請運行WorkerNodeStage3.3.3Spark運行基本流程TaskScheduler負責(zé)分發(fā)任務(wù)WorkerNodeStage返回任務(wù)3.3.3Spark運行基本流程計算向數(shù)據(jù)靠攏任務(wù)分發(fā)機器B機器A數(shù)據(jù)計算程序3.3.3Spark運行基本流程計算向數(shù)據(jù)靠攏任務(wù)分發(fā)機器B機器A數(shù)據(jù)計算程序3.3.3Spark運行基本流程計算向數(shù)據(jù)靠攏任務(wù)分發(fā)機器B機器A數(shù)據(jù)3.3.3Spark運行基本流程機器A計算程序計算向數(shù)據(jù)靠攏TaskScheduler機器B數(shù)據(jù)3.3.3Spark運行基本流程機器A計算程序計算向數(shù)據(jù)靠攏TaskScheduler機器B數(shù)據(jù)3.3.3Spark運行基本流程結(jié)果ExecutorTaskSchedulerDAGSchedulerSparkContext用戶寫入HDFS3.3.3Spark運行基本流程SparkContext代表了應(yīng)用程序連接集群的通道3.3.3Spark運行基本流程集群應(yīng)用SparkContext3.3.3Spark運行基本流程通道集群應(yīng)用3.3.3Spark運行基本流程3.3.4RDD運行原理提綱2RDD概念3RDD特性1RDD設(shè)計背景4RDD之間的依賴關(guān)系5階段的劃分6RDD的運行過程3.3.4RDD運行原理處理迭代場景邏輯斯蒂回歸模擬退火算法遺傳算法3.3.4RDD運行原理磁
盤讀取查詢計算寫入3.3.4RDD運行原理迭代反復(fù)讀寫工作子集磁盤IO開銷序列化和反序列化開銷3.3.4RDD運行原理提供了抽象的數(shù)據(jù)結(jié)構(gòu)RDDRDDRDDRDD轉(zhuǎn)換3.3.4RDD運行原理DAG圖依賴關(guān)系3.3.4RDD運行原理數(shù)據(jù)生成使用數(shù)據(jù)操作1操作2管道化(流水線化)數(shù)據(jù)生成使用數(shù)據(jù)操作1操作2避免數(shù)據(jù)落地磁盤或者其他存儲器3.3.4RDD運行原理RDD分布式對象分布式對象……3.3.4RDD運行原理RDD本質(zhì)上是一個只讀的分區(qū)記錄集合3.3.4RDD運行原理數(shù)據(jù)集文件RDD只讀的分區(qū)集合3.3.4RDD運行原理3.3.4RDD運行原理分區(qū)1分區(qū)2分區(qū)…①⑩....RDD分布式對象集合3.3.4RDD運行原理分區(qū)1分區(qū)2分區(qū)…①⑩....RDD數(shù)據(jù)分布式并行處理高效并行計算數(shù)據(jù)數(shù)據(jù)3.3.4RDD運行原理分區(qū)1分區(qū)2多個數(shù)據(jù)片段集合分區(qū)…RDD①⑩....3.3.4RDD運行原理RDD高度受限的共享內(nèi)存模型3.3.4RDD運行原理高度受限的共享內(nèi)存模型只讀生成內(nèi)存當(dāng)中的數(shù)據(jù)集合RDD加載不能修改3.3.4RDD運行原理成績成績成績成績成績成績成績成績成績+5分成績成績成績成績成績成績成績成績成績3.3.4RDD運行原理轉(zhuǎn)化生成RDDRDD通過生成新的RDD來完成一個數(shù)據(jù)修改的目的3.3.4RDD運行原理(Action)動作類型操作轉(zhuǎn)換類型操作(Transformation)操作類型RDD3.3.4RDD運行原理轉(zhuǎn)換類型操作(Transformation)只記錄轉(zhuǎn)換的軌跡發(fā)生計算3.3.4RDD運行原理動作類型操作轉(zhuǎn)換類型操作進行從頭到尾的計算3.3.4RDD運行原理mapfilterjoingroupBy0102RDD提供的轉(zhuǎn)換操作03043.3.4RDD運行原理粗粒度支持粗粒度修改一次只能針對RDD全集進行轉(zhuǎn)換3.3.4RDD運行原理不支持細粒度修改粗粒度不適合數(shù)據(jù)庫對單條進行修改3.3.4RDD運行原理能力非常強大不會影響表達能力高度受限的共享內(nèi)存模型3.3.4RDD運行原理√√√√√操作1操作2操作3API操作結(jié)果RDD3.3.4RDD運行原理HDFS生成讀取數(shù)據(jù)RDD3.3.4RDD運行原理RDD本身不允許修改一轉(zhuǎn)換會生成一個新的RDD3.3.4RDD運行原理3.3.4RDD運行原理轉(zhuǎn)換RDD動作結(jié)果觸發(fā)計算惰性調(diào)用機制只記錄軌跡.count()操作用來統(tǒng)計記錄條數(shù)3.3.4RDD運行原理InputOutputABCDEF創(chuàng)建創(chuàng)建轉(zhuǎn)換轉(zhuǎn)換轉(zhuǎn)換轉(zhuǎn)換轉(zhuǎn)換動作尋親恢復(fù)數(shù)據(jù)Lineage血緣關(guān)系3.3.4RDD運行原理DAG有向無環(huán)圖流水線優(yōu)化3.3.4RDD運行原理磁盤不寫入流水線優(yōu)化操作1操作2輸出輸入中間結(jié)果3.3.4RDD運行原理3.3.4RDD運行原理應(yīng)用復(fù)雜則需要寫入非常復(fù)雜的代碼Map函數(shù)Reduce函數(shù)3.3.4RDD運行原理轉(zhuǎn)換過濾排序3.3.4RDD運行原理數(shù)據(jù)復(fù)制記錄日志數(shù)據(jù)數(shù)據(jù)備份事務(wù)機制日志高效的容錯性現(xiàn)有容錯機制操作3.3.4RDD運行原理OutputABCDEF創(chuàng)建創(chuàng)建轉(zhuǎn)換轉(zhuǎn)換轉(zhuǎn)換轉(zhuǎn)換轉(zhuǎn)換動作Input3.3.4RDD運行原理操作1操作2輸出輸入中間結(jié)果持久化RDD.cache()3.3.4RDD運行原理操作1操作2輸出輸入中間結(jié)果持久化避免了不必要的讀寫磁盤開銷RDD.catch()數(shù)據(jù)在內(nèi)存的多個RDD之間進行傳遞的操作3.3.4RDD運行原理中間結(jié)果不讀寫磁盤避免不必要的序列化和反序列化3.3.4RDD運行原理洗牌Shuffle操作
不劃分階段劃分成多個階段窄依賴寬依賴3.3.4RDD運行原理文件Map1(“a”,1)(“b”,1)(“c”,1)Map2(“a”,1)(“b”,1)(“c”,1)Map3(“a”,1)(“b”,1)(“c”,1)Reduce1(“a”,1)(“a”,1)(“a”,1)Reduce2(“b”,1)(“b”,1)(“b”,1)Reduce3(“c”,1)(“c”,1)(“c”,1)(“a”,3)輸出輸出輸出(“b”,3)(“c”,3)3.3.4RDD運行原理3.3.4RDD運行原理父RDD的分區(qū)子RDD的分區(qū)對應(yīng)窄依賴父子3.3.4RDD運行原理3.1概述窄依賴01父RDD02父RDD03父RDD子RDD3.3.4RDD運行原理01父RDD02父RDD子RDD3.3.4RDD運行原理寬依賴子RDD子RDD子RDD父RDD3.3.4RDD運行原理Shuffle操作在網(wǎng)絡(luò)當(dāng)中大規(guī)模地來回傳輸數(shù)據(jù)不同節(jié)點之間互相傳數(shù)據(jù)洗牌操作寬依賴3.3.4RDD運行原理3.3.4RDD運行原理劃分階段的依據(jù)?寬依賴依賴關(guān)系窄依賴3.3.4RDD運行原理DAG圖階段階段階段階段階段3.3.4RDD運行原理寬依賴為什么?窄依賴可以進行流水線優(yōu)化不能進行流水線優(yōu)化優(yōu)化原理fork/join機制3.3.4RDD運行原理fork/join機制并行執(zhí)行任務(wù)的框架3.3.4RDD運行原理結(jié)果forkjoin并行執(zhí)行fork/join機制3.3.4RDD運行原理全校學(xué)生北京廈門3.3.4RDD運行原理北京上海廈門班長帶男生飛2小時forkjoinjoin
forkforkfork班長帶男生飛3小時組織委員帶女生飛2小時組織委員帶女生飛3小時等待1小時全校學(xué)生全校學(xué)生3.3.4RDD運行原理北京上海廈門joinforkfork班長帶男生飛5小時組織委員帶女生飛5小時全校學(xué)生全校學(xué)生不發(fā)生無意義的等待3.3.4RDD運行原理3.3.4RDD運行原理窄依賴寬依賴無法進行流水線優(yōu)化可以進行流水線優(yōu)化只要發(fā)生Shuffle一定會寫磁盤3.3.4RDD運行原理窄依賴北京上海廈門班長帶男生飛2小時forkjoinjoin
forkforkfork
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年無接觸式服務(wù)解決方案項目可行性研究報告
- 2025年智能購物車技術(shù)研發(fā)項目可行性研究報告
- 2025年智慧社區(qū)安全管理系統(tǒng)項目可行性研究報告
- 2025年高效廢物處理設(shè)施建設(shè)項目可行性研究報告
- 美甲學(xué)徒合同協(xié)議
- 安全監(jiān)督崗筆試題及解析
- 行政顧問面試題及答案
- 建筑公司人事專員的崗位職責(zé)與面試題集解
- 房產(chǎn)中介公司客服崗面試問題集
- 2025年新型信息傳播平臺開發(fā)項目可行性研究報告
- 臺安N2變頻器說明書
- 2025國家開放大學(xué)《公共部門人力資源管理》期末機考題庫
- JG/T 545-2018衛(wèi)生間隔斷構(gòu)件
- 物業(yè)管理服務(wù)三方協(xié)議書全
- 瀝青攤鋪培訓(xùn)課件
- 項目群管理中期匯報
- 電梯作業(yè)人員理論考試練習(xí)題庫
- 2025既有建筑改造利用消防設(shè)計審查指南
- 2025年安徽合肥蜀山科技創(chuàng)新投資集團有限公司招聘筆試參考題庫附帶答案詳解
- SOX404條款的實施-控制例外事項與缺陷的評估框架課件
- 《《家庭、私有制和國家的起源》導(dǎo)讀》課件
評論
0/150
提交評論