版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、大數(shù)據(jù)培訓(xùn)Module04Spark架構(gòu)原理第2頁前言本章主要對Spark組件的應(yīng)用場景,功能和架構(gòu)以及在FusionInsight平臺中的使用等進(jìn)行簡單介紹第3頁目標(biāo)學(xué)完本課程后,您將能夠:理解Spark應(yīng)用場景,了解Spark特點(diǎn)了解Spark計(jì)算能力及其技術(shù)架構(gòu)了解Spark組件在FusionInsight 平臺中的使用第4頁目錄Spark 應(yīng)用場景應(yīng)用場景Spark應(yīng)用場景Spark特點(diǎn)2.Spark基本功能和技術(shù)架構(gòu)3.Spark組件介紹第5頁Spark適用場景是什么Spark系統(tǒng)是分布式批處理系統(tǒng)分布式批處理系統(tǒng)和分析挖掘引擎分析挖掘引擎Spark 是AMP LAB貢獻(xiàn)到Apach
2、e社區(qū)的開源項(xiàng)目,是AMP大數(shù)據(jù)棧的 基礎(chǔ)組件做什么數(shù)據(jù)處理(Data Processing):可以用來快速處理數(shù)據(jù),兼具容錯(cuò)性和可擴(kuò)展性迭代計(jì)算(Iterative Computation):支持迭代計(jì)算,有效應(yīng)對多步的數(shù)據(jù)處理邏輯數(shù)據(jù)挖掘(Data Mining):在海量數(shù)據(jù)基礎(chǔ)上進(jìn)行復(fù)雜的挖掘分析,可 支持各種數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)算法第6頁Spark適用場景大多數(shù)現(xiàn)有集群計(jì)算框架如Hadoop等基于從穩(wěn)定存儲(文件系統(tǒng))到穩(wěn)定存儲的非循環(huán)數(shù)據(jù)流-應(yīng)對數(shù)據(jù)集重用型應(yīng)用時(shí)低效,與 傳統(tǒng)的MR任務(wù)的頻繁讀寫磁盤數(shù)據(jù)相比,基于內(nèi)存計(jì)算的Spark則 更適合應(yīng)用與迭代計(jì)算,交互式分析等場景iter.
3、1iter.2.HDFSreadHDFSwriteHDFSreadHDFSwriteInputInput.Data Sharing in MapReduceresult1result2result3.InputInput.query1Data Sharing in SparkOne-time processingDistributed memoryquery2HDFSreadquery3iter.1iter.2query1query2query3第7頁Spark特點(diǎn)輕:Spark核心代碼有3萬行。Scala語言的簡潔和豐富表達(dá)力巧妙利用了Hadoop和Mesos的基礎(chǔ)設(shè)施快:Spark對小數(shù)據(jù)
4、集可達(dá)到亞秒級的延遲對大數(shù)據(jù)集的迭代機(jī)器學(xué)習(xí)即席查詢、圖計(jì)算等應(yīng)用,Spark 版本比基于MapReduce、Hive和Pregel的實(shí)現(xiàn)快內(nèi)存計(jì)算、數(shù)據(jù)本地性和傳輸優(yōu)化、調(diào)度優(yōu)化第8頁Spark特點(diǎn)靈:Spark提供了不同層面的靈活性Scala語言trait動態(tài)混入策略(如可更換的集群調(diào)度器、序列化庫)允許擴(kuò)展新的數(shù)據(jù)算子、新的數(shù)據(jù)源、新的language bindingsSpark支持內(nèi)存計(jì)算、多迭代批量處理、即席查詢、流處理和圖 計(jì)算等多種范式巧:巧妙借力現(xiàn)有大數(shù)據(jù)組件Spark借Hadoop之勢,與Hadoop無縫結(jié)合圖計(jì)算借用Pregel和PowerGraph的API以及PowerG
5、raph的點(diǎn) 分割思想第9頁本節(jié)總結(jié)本章主要對Spark的產(chǎn)生背景和應(yīng)用場景給予簡單介紹,同時(shí) 介紹了spark的特點(diǎn)。第10頁目錄Spark應(yīng)用場景2.Spark技術(shù)架構(gòu)和基本功能技術(shù)架構(gòu)和基本功能Spark系統(tǒng)架構(gòu)Spark基本概念任務(wù)運(yùn)行過程任務(wù)調(diào)度3.Spark基本功能和技術(shù)架構(gòu)第11頁Spark技術(shù)架構(gòu)Spark架構(gòu)采用了分布式計(jì)算中的Master-Slave模型。Master是對應(yīng)集群 中的含有Master進(jìn)程的節(jié)點(diǎn)(ClusterManager),Slave是集群中含有 Worker進(jìn)程的節(jié)點(diǎn)。Master作為整個(gè)集群的控制器,負(fù)責(zé)整個(gè)集群的正 常運(yùn)行;Worker相當(dāng)于是計(jì)算節(jié)
6、點(diǎn),接收主節(jié)點(diǎn)命令與進(jìn)行狀態(tài)匯報(bào); Executor負(fù)責(zé)任務(wù)的執(zhí)行,運(yùn)行在Worker節(jié)點(diǎn)(在FI集群中,Master節(jié)點(diǎn) 即為Resourcemanager節(jié)點(diǎn),Slave節(jié)點(diǎn)即為NodeManager節(jié)點(diǎn));Spark的任務(wù)流程:Client作為客戶端提交應(yīng)用,Master找到一個(gè)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)用為一個(gè)App,一個(gè)App會啟動一個(gè)SparkContext,也就是app的driver,驅(qū)動整個(gè)App的運(yùn)行Job: 一個(gè)App可能包含多個(gè)Job,每個(gè)action算子對應(yīng)一個(gè)Job;action算子有collect,count等。Stage: 每個(gè)Job可能包含多層Stage,劃分標(biāo)記為shuffle過程;Stage按 照依賴關(guān)系依次執(zhí)行。Task: 具體執(zhí)行任務(wù)的基本單位,被發(fā)到executor上執(zhí)行。第13頁Spark基本概念Cluster Manager: 集群資源管理服務(wù),通常包含主節(jié)點(diǎn)(主備)和多
8、個(gè) 運(yùn)行節(jié)點(diǎn);支持運(yùn)行模式有Standalone模式、on Mesos模式、on Yarn模 式(FI環(huán)境中使用Yarn作為spark任務(wù)調(diào)度的資源管理器)。Driver:運(yùn)行App的大腦,負(fù)責(zé)job的初始化,將job轉(zhuǎn)換成task并提交執(zhí)行DAGScheduler:是一個(gè)面向Stage層面的調(diào)度器,把Job分解成Stage , 按照Stage提交TaskSet給TaskScheduler。TaskScheduler:提交Task給Executor運(yùn)行,并管理執(zhí)行結(jié)果。BlockManager:管理App運(yùn)行周期的中間數(shù)據(jù),比如存在內(nèi)存、本地。Executor: 是App運(yùn)行在work 節(jié)點(diǎn)上
9、的一個(gè)進(jìn)程,該進(jìn)程負(fù)責(zé)運(yùn)行task,生命周期和App相同。第14頁Spark核心概念 RDD(ResilientDistributed Datasets)定義:只讀的,可分區(qū)的分布式數(shù)據(jù)集;數(shù)據(jù)集可全部或部分緩存 在內(nèi)存中,在一個(gè)App多次計(jì)算間重用,RDD是Spark的核心。血統(tǒng)容錯(cuò):根據(jù)血統(tǒng)(父子間依賴關(guān)系)重計(jì)算恢復(fù)丟失數(shù)據(jù)RDD操作: Transformation算子和Action算子。原生數(shù)據(jù)空間存儲(e.g. HDFS)Scala集合 數(shù)據(jù)類型Scala標(biāo)量 類型輸入算子變換算子緩存算子行動算子Spark RDD 空間第15頁RDD父子依賴關(guān)系父子依賴關(guān)系:窄(Narrow)依賴和
10、寬(Wide)依賴。窄依賴指父RDD的每 一個(gè)分區(qū)最多被一個(gè)子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啟動計(jì) 算操作,并向用戶程序返回值或向外部存儲寫數(shù)據(jù)。第17頁運(yùn)行過程構(gòu)建Spark Application的運(yùn)行環(huán)境(啟動SparkContext) Sp
13、arkContext向資源管理器 (Standalone、Mesos、Yarn)申請 運(yùn)行Executor資源,并啟動 StandaloneExecutorBackend Executor向SparkContext注冊SparkContext啟動應(yīng)用程序DAG調(diào)度、Stage劃分,TaskSet生成 Task Scheduler調(diào)度Taskset,將 task發(fā)放給Executor運(yùn)行。 Task在Executor上運(yùn)行,運(yùn)行完畢 釋放所有資源。Task Schedule提交和監(jiān)控Task資源管理器 分配并監(jiān)控資源使用狀況資源 匯報(bào)資源使用狀況啟動StandaloneExeutorBacken
14、dSparkContextTask1:注冊并申請資源2:分配資源3:注冊并申請Task4:注銷RDD Objects構(gòu)建DAG圖DAG圖DAG Scheduler將DAG圖分解成StageTaskset第18頁Cluster模式:Spark Driver啟動在集群中, ResourceManager在集 群中分配一個(gè)container來啟動Spark Driver驅(qū)動整個(gè)應(yīng)用。Spark On Yarn模式App運(yùn)行過程N(yùn)ode Manager ContainnerExecutorCACHEspark-submitNodeResource Manager1:提交 Application2:RM
15、為Application 分配資源 啟動Container3:SparkContext向RM申請 運(yùn)行Executor資源 Node Manager4:SparkContext啟動 StandaloneExecutorBackend并等 待Task(SparkContext分配Task給 Executor)5:Executor報(bào)告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ù)的進(jìn)程運(yùn)
17、行,On Yarn模式,以及Spark 的應(yīng)用調(diào) 度。第21頁目錄1.Spark應(yīng)用場景2.Spark 基本功能和技術(shù)架構(gòu)Spark組件介紹組件介紹Spark在FI界面呈現(xiàn)Spark常用進(jìn)程3.Spark維護(hù)關(guān)鍵點(diǎn)第22頁1.服務(wù)狀態(tài)信息、角色信息以及開 放的配置項(xiàng)2.管理操作:啟停spark、下載 spark客戶端、同步配置3.服務(wù)總體概況4.角色的顯示和健康狀況,點(diǎn)擊相 應(yīng)角色可查看角色下的實(shí)例FusionInsight平臺為Spark服務(wù)提供了管理監(jiān)控的可視化界面,通過Web UI界面,可完成以下動作:Spark的WebUI呈現(xiàn)第23頁Spark與其他組件交互在FI集群中,Spark主要
18、與以下組件進(jìn)行交互:1)HDFS:Spark在HDFS文件系統(tǒng)中讀寫數(shù)據(jù)(必選)2)YARN:Spark任務(wù)的運(yùn)行以來Yarn來進(jìn)行資源的調(diào)度管理(必選) 3)DBService:Spark-sql的表存儲在Dbservice的數(shù)據(jù)庫中(必選) 4)Zookeeper,JDBCServer的HA的實(shí)現(xiàn)依賴于Zookeeper的協(xié)調(diào)(必選)5)Kafka:Spark可以接收Kafka發(fā)送的數(shù)據(jù)流(可選) 6)Hbase:Spark可以操作Hbase的表(可選)第24頁Spark常用進(jìn)程JDBCServer實(shí)際上是一個(gè)長駐的spark應(yīng)用,通過shell_start-thriftserver.sh腳本啟動。用戶可以通過執(zhí)行beeline腳本,連接JDBCServer,執(zhí)行sql語句JobHistory是一個(gè)單節(jié)點(diǎn)進(jìn)程,通過shell_start-history-server.sh腳本啟動該進(jìn)程用于提供HistoryServer頁面,展示歷史應(yīng)用的執(zhí)行信息第25頁服務(wù)維護(hù)關(guān)鍵點(diǎn)Spark在FusionInsight平臺中主要有三個(gè)角色,其中 SparkResource主要為Spark任務(wù)執(zhí)行提供必要的資源,JobHistory 和JDBCServer這兩個(gè)角色提供服務(wù)。當(dāng)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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版市政綠化施工合同三方協(xié)議(生態(tài)宜居版)2篇
- 2025版晚會攝像保密協(xié)議(全新版)3篇
- 科技與教育結(jié)合利用科技手段輔助孩子閱讀經(jīng)典
- 家庭教育指導(dǎo)服務(wù)在特殊兒童教育中的實(shí)踐
- 科技賦能家庭運(yùn)動助力孩子健康成長
- 浙江省強(qiáng)基聯(lián)盟2022-2023學(xué)年高三上學(xué)期12月聯(lián)考(一模)政治試題 含解析
- 個(gè)人借款合同延期合同范本(2024年版)版B版
- 高效能朗讀練習(xí)對小學(xué)生英語口語能力的促進(jìn)作用
- 2025版小動物領(lǐng)養(yǎng)及養(yǎng)護(hù)責(zé)任協(xié)議3篇
- 玉溪云南玉溪市公安局紅塔分局招聘警務(wù)輔助人員41人筆試歷年參考題庫附帶答案詳解
- 農(nóng)產(chǎn)品農(nóng)藥殘留檢測及風(fēng)險(xiǎn)評估
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 20100927-宣化上人《愣嚴(yán)咒句偈疏解》(簡體全)
- 4-熔化焊與熱切割作業(yè)基礎(chǔ)知識(一)
- 單元教學(xué)評一體化設(shè)計(jì)的探索與實(shí)踐以統(tǒng)編語文教材四年級下冊第一單元為例
- 個(gè)人安全與社會責(zé)任的基本知識概述
- 醫(yī)院標(biāo)識牌方案設(shè)計(jì)2
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)二 有效傳播模式的設(shè)計(jì)
- 簡易勞務(wù)合同電子版
- 明代文學(xué)緒論
- 體育賽事的策劃、組織與實(shí)施 體育賽事利益相關(guān)者
評論
0/150
提交評論