




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大數(shù)據(jù)培訓(xùn)Module04Spark架構(gòu)原理第2頁前言本章主要對Spark組件的應(yīng)用場景,功能和架構(gòu)以及在FusionInsight平臺中的使用等進行簡單介紹第3頁目標學(xué)完本課程后,您將能夠:理解Spark應(yīng)用場景,了解Spark特點了解Spark計算能力及其技術(shù)架構(gòu)了解Spark組件在FusionInsight 平臺中的使用第4頁目錄Spark 應(yīng)用場景應(yīng)用場景Spark應(yīng)用場景Spark特點2.Spark基本功能和技術(shù)架構(gòu)3.Spark組件介紹第5頁Spark適用場景是什么Spark系統(tǒng)是分布式批處理系統(tǒng)分布式批處理系統(tǒng)和分析挖掘引擎分析挖掘引擎Spark 是AMP LAB貢獻到Apach
2、e社區(qū)的開源項目,是AMP大數(shù)據(jù)棧的 基礎(chǔ)組件做什么數(shù)據(jù)處理(Data Processing):可以用來快速處理數(shù)據(jù),兼具容錯性和可擴展性迭代計算(Iterative Computation):支持迭代計算,有效應(yīng)對多步的數(shù)據(jù)處理邏輯數(shù)據(jù)挖掘(Data Mining):在海量數(shù)據(jù)基礎(chǔ)上進行復(fù)雜的挖掘分析,可 支持各種數(shù)據(jù)挖掘和機器學(xué)習(xí)算法第6頁Spark適用場景大多數(shù)現(xiàn)有集群計算框架如Hadoop等基于從穩(wěn)定存儲(文件系統(tǒng))到穩(wěn)定存儲的非循環(huán)數(shù)據(jù)流-應(yīng)對數(shù)據(jù)集重用型應(yīng)用時低效,與 傳統(tǒng)的MR任務(wù)的頻繁讀寫磁盤數(shù)據(jù)相比,基于內(nèi)存計算的Spark則 更適合應(yīng)用與迭代計算,交互式分析等場景iter.
3、1iter.2.HDFSreadHDFSwriteHDFSreadHDFSwriteInputInput.Data Sharing in MapReduceresult1result2result3.InputInput.query1Data Sharing in SparkOne-time processingDistributed memoryquery2HDFSreadquery3iter.1iter.2query1query2query3第7頁Spark特點輕:Spark核心代碼有3萬行。Scala語言的簡潔和豐富表達力巧妙利用了Hadoop和Mesos的基礎(chǔ)設(shè)施快:Spark對小數(shù)據(jù)
4、集可達到亞秒級的延遲對大數(shù)據(jù)集的迭代機器學(xué)習(xí)即席查詢、圖計算等應(yīng)用,Spark 版本比基于MapReduce、Hive和Pregel的實現(xiàn)快內(nèi)存計算、數(shù)據(jù)本地性和傳輸優(yōu)化、調(diào)度優(yōu)化第8頁Spark特點靈:Spark提供了不同層面的靈活性Scala語言trait動態(tài)混入策略(如可更換的集群調(diào)度器、序列化庫)允許擴展新的數(shù)據(jù)算子、新的數(shù)據(jù)源、新的language bindingsSpark支持內(nèi)存計算、多迭代批量處理、即席查詢、流處理和圖 計算等多種范式巧:巧妙借力現(xiàn)有大數(shù)據(jù)組件Spark借Hadoop之勢,與Hadoop無縫結(jié)合圖計算借用Pregel和PowerGraph的API以及PowerG
5、raph的點 分割思想第9頁本節(jié)總結(jié)本章主要對Spark的產(chǎn)生背景和應(yīng)用場景給予簡單介紹,同時 介紹了spark的特點。第10頁目錄Spark應(yīng)用場景2.Spark技術(shù)架構(gòu)和基本功能技術(shù)架構(gòu)和基本功能Spark系統(tǒng)架構(gòu)Spark基本概念任務(wù)運行過程任務(wù)調(diào)度3.Spark基本功能和技術(shù)架構(gòu)第11頁Spark技術(shù)架構(gòu)Spark架構(gòu)采用了分布式計算中的Master-Slave模型。Master是對應(yīng)集群 中的含有Master進程的節(jié)點(ClusterManager),Slave是集群中含有 Worker進程的節(jié)點。Master作為整個集群的控制器,負責(zé)整個集群的正 常運行;Worker相當于是計算節(jié)
6、點,接收主節(jié)點命令與進行狀態(tài)匯報; Executor負責(zé)任務(wù)的執(zhí)行,運行在Worker節(jié)點(在FI集群中,Master節(jié)點 即為Resourcemanager節(jié)點,Slave節(jié)點即為NodeManager節(jié)點);Spark的任務(wù)流程:Client作為客戶端提交應(yīng)用,Master找到一個Worker 啟動Driver(或者本地啟動Driver),Driver向Master申請資源,之后將應(yīng)用 轉(zhuǎn)化為RDD Graph,再由DAGScheduler將RDD Graph轉(zhuǎn)化為Stage后提交 給TaskScheduler,由TaskScheduler提交給Executor執(zhí)行。第12頁Spark A
7、pplication基本概念A(yù)pplication: Spark用戶程序,提交一次應(yīng)用為一個App,一個App會啟動一個SparkContext,也就是app的driver,驅(qū)動整個App的運行Job: 一個App可能包含多個Job,每個action算子對應(yīng)一個Job;action算子有collect,count等。Stage: 每個Job可能包含多層Stage,劃分標記為shuffle過程;Stage按 照依賴關(guān)系依次執(zhí)行。Task: 具體執(zhí)行任務(wù)的基本單位,被發(fā)到executor上執(zhí)行。第13頁Spark基本概念Cluster Manager: 集群資源管理服務(wù),通常包含主節(jié)點(主備)和多
8、個 運行節(jié)點;支持運行模式有Standalone模式、on Mesos模式、on Yarn模 式(FI環(huán)境中使用Yarn作為spark任務(wù)調(diào)度的資源管理器)。Driver:運行App的大腦,負責(zé)job的初始化,將job轉(zhuǎn)換成task并提交執(zhí)行DAGScheduler:是一個面向Stage層面的調(diào)度器,把Job分解成Stage , 按照Stage提交TaskSet給TaskScheduler。TaskScheduler:提交Task給Executor運行,并管理執(zhí)行結(jié)果。BlockManager:管理App運行周期的中間數(shù)據(jù),比如存在內(nèi)存、本地。Executor: 是App運行在work 節(jié)點上
9、的一個進程,該進程負責(zé)運行task,生命周期和App相同。第14頁Spark核心概念 RDD(ResilientDistributed Datasets)定義:只讀的,可分區(qū)的分布式數(shù)據(jù)集;數(shù)據(jù)集可全部或部分緩存 在內(nèi)存中,在一個App多次計算間重用,RDD是Spark的核心。血統(tǒng)容錯:根據(jù)血統(tǒng)(父子間依賴關(guān)系)重計算恢復(fù)丟失數(shù)據(jù)RDD操作: Transformation算子和Action算子。原生數(shù)據(jù)空間存儲(e.g. HDFS)Scala集合 數(shù)據(jù)類型Scala標量 類型輸入算子變換算子緩存算子行動算子Spark RDD 空間第15頁RDD父子依賴關(guān)系父子依賴關(guān)系:窄(Narrow)依賴和
10、寬(Wide)依賴。窄依賴指父RDD的每 一個分區(qū)最多被一個子RDD的分區(qū)所用。寬依賴指子RDD的分區(qū)依賴于父RDD的所 有分區(qū)。Spark核心概念 寬依賴和窄依賴Narrow Dependencies:map,filterunionjoin with inputs co-partitionedWide Dependencies:groupByKeyjoin with inputs not co-partitionedunionStage 2Stage 3 A:B:G:Stage 1groupByC:D:F:mapE:join第16頁Spark核心概念 Transformation和Actio
11、nTransformation有如下幾種:map(f: T = U): RDDT = RDD Ufifilter(f: T = Bool): RDDT = RDDTflflatMap(f: T = SeqU): RDDT = RDDUgroupByKey(): RDD(K, V) = RDD(K, SeqV)reduceByKey(f: (V,V) = V): RDD(K, V) = RDD(K, V)union(): (RDDT,RDDT) = RDDTjoin(): (RDD(K, V),RDD(K, W) = RDD(K, (V, W) mapValues(f: V = W): RDD(
12、K, V) = RDD(K, W)partitionBy(p: PartitionerK): RDD(K, V) = RDD(K, V)Action有如下幾種:count(): RDDT = Long collect(): RDDT = SeqTreduce( f: (T,T) = T): RDDT = T lookup(k: K): RDD(K, V) = SeqVTransformation是懶操作,用于定義新的 RDD;而Action啟動計 算操作,并向用戶程序返回值或向外部存儲寫數(shù)據(jù)。第17頁運行過程構(gòu)建Spark Application的運行環(huán)境(啟動SparkContext) Sp
13、arkContext向資源管理器 (Standalone、Mesos、Yarn)申請 運行Executor資源,并啟動 StandaloneExecutorBackend Executor向SparkContext注冊SparkContext啟動應(yīng)用程序DAG調(diào)度、Stage劃分,TaskSet生成 Task Scheduler調(diào)度Taskset,將 task發(fā)放給Executor運行。 Task在Executor上運行,運行完畢 釋放所有資源。Task Schedule提交和監(jiān)控Task資源管理器 分配并監(jiān)控資源使用狀況資源 匯報資源使用狀況啟動StandaloneExeutorBacken
14、dSparkContextTask1:注冊并申請資源2:分配資源3:注冊并申請Task4:注銷RDD Objects構(gòu)建DAG圖DAG圖DAG Scheduler將DAG圖分解成StageTaskset第18頁Cluster模式:Spark Driver啟動在集群中, ResourceManager在集 群中分配一個container來啟動Spark Driver驅(qū)動整個應(yīng)用。Spark On Yarn模式App運行過程Node Manager ContainnerExecutorCACHEspark-submitNodeResource Manager1:提交 Application2:RM
15、為Application 分配資源 啟動Container3:SparkContext向RM申請 運行Executor資源 Node Manager4:SparkContext啟動 StandaloneExecutorBackend并等 待Task(SparkContext分配Task給 Executor)5:Executor報告Task狀態(tài) 直至完成6:注銷Application, 歸還資源ContainerSparkContextRDD GraphContainerExecutorCACHEClientApplication jarTASKTASKScheduler.TASKTASK第19
16、頁Spark應(yīng)用調(diào)度Block managerRDD ObjectsDAGSchedulerTaskSchedulerWorkerClusterrdd1.join(rdd2).groupBy(.).filter(.)build operator DAGsplit graph into stages of tasksstage as readylaunch tasks viacluster managerstraggling tasksexecute tasksblocksDAGTaskSetTask第20頁本章總結(jié)本章主要介紹了Spark的基本概念,技術(shù)架構(gòu),著重介紹了 Spark任務(wù)的進程運
17、行,On Yarn模式,以及Spark 的應(yīng)用調(diào) 度。第21頁目錄1.Spark應(yīng)用場景2.Spark 基本功能和技術(shù)架構(gòu)Spark組件介紹組件介紹Spark在FI界面呈現(xiàn)Spark常用進程3.Spark維護關(guān)鍵點第22頁1.服務(wù)狀態(tài)信息、角色信息以及開 放的配置項2.管理操作:啟停spark、下載 spark客戶端、同步配置3.服務(wù)總體概況4.角色的顯示和健康狀況,點擊相 應(yīng)角色可查看角色下的實例FusionInsight平臺為Spark服務(wù)提供了管理監(jiān)控的可視化界面,通過Web UI界面,可完成以下動作:Spark的WebUI呈現(xiàn)第23頁Spark與其他組件交互在FI集群中,Spark主要
18、與以下組件進行交互:1)HDFS:Spark在HDFS文件系統(tǒng)中讀寫數(shù)據(jù)(必選)2)YARN:Spark任務(wù)的運行以來Yarn來進行資源的調(diào)度管理(必選) 3)DBService:Spark-sql的表存儲在Dbservice的數(shù)據(jù)庫中(必選) 4)Zookeeper,JDBCServer的HA的實現(xiàn)依賴于Zookeeper的協(xié)調(diào)(必選)5)Kafka:Spark可以接收Kafka發(fā)送的數(shù)據(jù)流(可選) 6)Hbase:Spark可以操作Hbase的表(可選)第24頁Spark常用進程JDBCServer實際上是一個長駐的spark應(yīng)用,通過shell_start-thriftserver.sh腳本啟動。用戶可以通過執(zhí)行beeline腳本,連接JDBCServer,執(zhí)行sql語句JobHistory是一個單節(jié)點進程,通過shell_start-history-server.sh腳本啟動該進程用于提供HistoryServer頁面,展示歷史應(yīng)用的執(zhí)行信息第25頁服務(wù)維護關(guān)鍵點Spark在FusionInsight平臺中主要有三個角色,其中 SparkResource主要為Spark任務(wù)執(zhí)行提供必要的資源,JobHistory 和JDBCServer這兩個角色提供服務(wù)。當spark角
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水穩(wěn)站股份合同協(xié)議書
- 簡短愛情協(xié)議書
- 地鐵kpi績效協(xié)議書
- 聚餐經(jīng)費協(xié)議書
- 繼續(xù)婚姻協(xié)議書
- 殯儀館公建民營協(xié)議書
- 肉毒注射協(xié)議書
- 道和生發(fā)協(xié)議書
- 聘用店長協(xié)議書
- 貸款配資協(xié)議書
- 虛擬現(xiàn)實與非遺傳承
- 第二單元生物和棲息地(復(fù)習(xí)課件)-六年級科學(xué)下冊期中復(fù)習(xí)
- 中國資源循環(huán)集團有限公司招聘筆試真題2024
- 兒科門診工作制度
- 比亞迪入職考試題及答案
- 第三單元7.美麗鄉(xiāng)村 課件 -2024-2025學(xué)年浙人美版(2024)初中美術(shù)七年級下冊
- 中國詩詞測試題及答案
- T-DZJN 377-2024 數(shù)據(jù)中心基礎(chǔ)設(shè)施健康程度評價規(guī)范
- 《一起長大的玩具》閱讀測試題(含答案)(江蘇鳳凰)
- 吉林長春歷年中考語文現(xiàn)代文閱讀真題26篇(截至2024年)
- 互聯(lián)網(wǎng)驅(qū)動的保險創(chuàng)新
評論
0/150
提交評論