如何進(jìn)行spark術(shù)語(yǔ)的解釋及Client分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
赫山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,赫山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為赫山上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的赫山做網(wǎng)站的公司定做!
就像在一家公司里面總有明確的分工,每一哥部分負(fù)責(zé)自己的那一部分的任務(wù),大家一起來(lái)維持公司的正常運(yùn)轉(zhuǎn),同樣的,spark就像是一個(gè)公司,他的里面也有許許多多的角色組成
Spark術(shù)語(yǔ)解釋?zhuān)?/p>
Master:資源管理的主節(jié)點(diǎn),通過(guò)管理各個(gè)worker來(lái)管理集群中的資源
Worker,master的從節(jié)點(diǎn),與master一起管理集群的資源
Application:用戶所寫(xiě)的應(yīng)用程序,就像spark中的HelloWorld的wordcount一樣,他就是一個(gè)application
Driver:任務(wù)調(diào)度的進(jìn)程,application先交給的就是Driver,因?yàn)橐粋€(gè)應(yīng)用程序中有多個(gè)task組成,而task是被送到某個(gè)Executor上進(jìn)行執(zhí)行的工作單元,所以Driver在得到application之后,會(huì)將application的task進(jìn)行規(guī)劃,然后分發(fā)到executor上進(jìn)行執(zhí)行
Executor:worker進(jìn)程所管理的節(jié)點(diǎn)上為某application啟動(dòng)的一個(gè)進(jìn)程,該進(jìn)程負(fù)責(zé)運(yùn)行任務(wù),說(shuō)白了就是公司里面的工廠,負(fù)責(zé)處理Driver發(fā)送過(guò)來(lái)的原材料task,
Job:包含了很多組并行的task,與action算子一一對(duì)應(yīng),,就像是大貨車(chē)在運(yùn)送材料的時(shí)候?qū)⒇浳镞M(jìn)行打包一起運(yùn)送一樣,將多個(gè)task原材料一起打包分發(fā)到Executor中進(jìn)行執(zhí)行
關(guān)系之間的執(zhí)行關(guān)系:
任務(wù)層面
Application------由多個(gè)job組成(與action的個(gè)數(shù)相關(guān))------stage------task,是一個(gè)個(gè)的線程
資源層面
Master--------worker---------executor-------threadpool(task最后的運(yùn)行地點(diǎn))
在spark集群中,每個(gè)worker管理節(jié)點(diǎn)上的資源,而master通過(guò)掌握worker來(lái)管理整個(gè)集群的資源
將application封裝成一個(gè)個(gè)的jar包然后上傳到client,在client提交應(yīng)用程序到spark集群中,
在client上就會(huì)啟動(dòng)一個(gè)Driver進(jìn)程,而Driver會(huì)根據(jù)代碼將application拆分成一個(gè)個(gè)的job,然后將job拆分成一個(gè)個(gè)的task,接著向master申請(qǐng)資源,在資源充足的節(jié)點(diǎn)上啟動(dòng)一個(gè)executor和一個(gè)相應(yīng)的線程池
Client。在上面的基本流程的時(shí)候說(shuō)到客戶端的一個(gè)概念,,那為什么非要使用客戶端而不是直接將任務(wù)提交到集群呢,
1、盡量減少集群中各臺(tái)服務(wù)器之間的性能差異,防止出現(xiàn)木桶效
如果直接提交到集群,會(huì)在其中一個(gè)worker上啟動(dòng)一個(gè)一個(gè)Driver進(jìn)行任務(wù)的拉取和分發(fā),當(dāng)worker數(shù)量過(guò)多的時(shí)候會(huì)造成嚴(yán)重的磁盤(pán)IO,而且因?yàn)殚L(zhǎng)時(shí)間使用同一個(gè)節(jié)點(diǎn)進(jìn)行分發(fā),頻繁的通信會(huì)造成這個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)的性能差異,這樣就會(huì)出現(xiàn)木桶效應(yīng)
2、便于維護(hù)集群,以防止出現(xiàn)危害集群的行為
當(dāng)創(chuàng)建客戶端之后,不同的用戶可以使用不同的權(quán)限進(jìn)行程序的提交,在客戶端上可以設(shè)置權(quán)限的不同,而且,雖然客戶端節(jié)點(diǎn)在使用的過(guò)程中也會(huì)出現(xiàn)木桶效應(yīng),但是因?yàn)樵诩褐?,不?huì)對(duì)集群產(chǎn)生什么影響
在設(shè)置了客戶端避免了一些不必要的影響之后,為了更好地使用集群的性能,就產(chǎn)生了兩種不同的application提交方式
Client
1、worker會(huì)向master進(jìn)行匯報(bào)資源情況,
2、master就掌握了集群的資源情況,知道spark中有多少core和memory以及每一個(gè)worker管理多少core和memory
3、使用spark-submit在客戶端上提交一個(gè)application,在client上會(huì)啟動(dòng)一個(gè)Driver進(jìn)程
4、driver進(jìn)程啟動(dòng)之后會(huì)去master申請(qǐng)資源,
5、Master會(huì)發(fā)送請(qǐng)求在資源充足的worker節(jié)點(diǎn)上啟動(dòng)executor
6、Executor啟動(dòng)之后會(huì)向Driver反向注冊(cè),也就知道了一共有多少個(gè)executor進(jìn)行計(jì)算
7、Driver發(fā)送task并回收計(jì)算結(jié)果,監(jiān)控executor的計(jì)算進(jìn)程,包括出現(xiàn)錯(cuò)誤進(jìn)行重試以及task的運(yùn)行日志
Cluster
Client提交方式存在一定的風(fēng)險(xiǎn),當(dāng)task數(shù)量過(guò)多之后,計(jì)算結(jié)果都會(huì)被回收到Driver端,可能會(huì)造成Driver的異常退出,無(wú)法進(jìn)行任務(wù)的調(diào)度,也就是無(wú)法提交程序到集群中
運(yùn)行程序和client基本相同,不同的地方是Driver會(huì)在其中一個(gè)資源比較充足的worker節(jié)點(diǎn)上進(jìn)行啟動(dòng),同樣的,Driver啟動(dòng)起來(lái)之后會(huì)去申請(qǐng)資源,在worker節(jié)點(diǎn)上啟動(dòng)Executor上,然后反向注冊(cè)給Driver,但是,cluster提交方式的不同的地方是他不會(huì)將計(jì)算結(jié)果拉回到客戶端進(jìn)行查看,也就是說(shuō)在client上不能實(shí)施的監(jiān)控集群的運(yùn)行情況,只能去web層面進(jìn)行查看
那這兩種提交方式的不同,下面的表格進(jìn)行了相應(yīng)的講解
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
分享文章:如何進(jìn)行spark術(shù)語(yǔ)的解釋及Client分析
URL地址:http://jinyejixie.com/article40/ijjhho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、軟件開(kāi)發(fā)、小程序開(kāi)發(fā)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)