鎖屏面試題百日百刷-Spark篇(十二)
鎖屏面試題百日百刷,每個(gè)工作日?qǐng)?jiān)持更新面試題。鎖屏面試題app、小程序現(xiàn)已上線,官網(wǎng)地址:https://www.demosoftware.cn。已收錄了每日更新的面試題的所有內(nèi)容,還包含特色的解鎖屏幕復(fù)習(xí)面試題、每日編程題目郵件推送等功能。讓你在面試中先人一步!接下來的是今日的面試題:
1.Yarn中的container是由誰負(fù)責(zé)銷毀的,在Hadoop Mapreduce中container可以復(fù)用么?
答:ApplicationMaster負(fù)責(zé)銷毀,在Hadoop Mapreduce不可以復(fù)用,在spark on yarn程序container可以復(fù)用
2.spark on yarn Cluster 模式下,ApplicationMaster和driver是在同一個(gè)進(jìn)程么?
是,driver 位于ApplicationMaster進(jìn)程中。該進(jìn)程負(fù)責(zé)申請(qǐng)資源,還負(fù)責(zé)監(jiān)控程序、資源的動(dòng)態(tài)情況。
3.如何使用命令查看application運(yùn)行的日志信息
yarn logs -applicationId <app ID>
4.Spark on Yarn 模式有哪些優(yōu)點(diǎn)?
1)與其他計(jì)算框架共享集群資源(eg.Spark框架與MapReduce框架同時(shí)運(yùn)行,如果不用Yarn進(jìn)行資源分配,MapReduce分到的內(nèi)存資源會(huì)很少,效率低下);資源按需分配,進(jìn)而提高集群資源利用等。
2)相較于Spark自帶的Standalone模式,Yarn的資源分配更加細(xì)致
3)Application部署簡(jiǎn)化,例如Spark,Storm等多種框架的應(yīng)用由客戶端提交后,由Yarn負(fù)責(zé)資源的管理和調(diào)度,利用Container作為資源隔離的單位,以它為單位去使用內(nèi)存,cpu等。
4)Yarn通過隊(duì)列的方式,管理同時(shí)運(yùn)行在Yarn集群中的多個(gè)服務(wù),可根據(jù)不同類型的應(yīng)用程序負(fù)載情況,調(diào)整對(duì)應(yīng)的資源使用量,實(shí)現(xiàn)資源彈性管理
5.談?wù)勀銓?duì)container的理解?
1)Container作為資源分配和調(diào)度的基本單位,其中封裝了的資源如內(nèi)存,CPU,磁盤,網(wǎng)絡(luò)帶寬等。 目前yarn僅僅封裝內(nèi)存和CPU
2)Container由ApplicationMaster向ResourceManager申請(qǐng)的,由ResouceManager中的資源調(diào)度器異步分配給ApplicationMaster
3)Container的運(yùn)行是由ApplicationMaster向資源所在的NodeManager發(fā)起的,Container運(yùn)行時(shí)需提供內(nèi)部執(zhí)行的任務(wù)命令
6.運(yùn)行在yarn中Application有幾種類型的container?
1)運(yùn)行ApplicationMaster的Container:這是由ResourceManager(向內(nèi)部的資源調(diào)度器)申請(qǐng)和啟動(dòng)的,用戶提交應(yīng)用程序時(shí),可指定唯一的ApplicationMaster所需的資源;
2)運(yùn)行各類任務(wù)的Container:這是由ApplicationMaster向ResourceManager申請(qǐng)的,并由ApplicationMaster與NodeManager通信以啟動(dòng)。
7.Spark on Yarn架構(gòu)是怎么樣的?(畫圖)
Yarn提到的App Master可以理解為Spark中Standalone模式中的driver。Container中運(yùn)行著Executor,在Executor中以多線程并行的方式運(yùn)行Task。運(yùn)行過程和第二題相似。
1、客戶端提交一個(gè)Application,在客戶端啟動(dòng)一個(gè)Driver進(jìn)程。
2、Driver進(jìn)程會(huì)向RS(ResourceManager)發(fā)送請(qǐng)求,啟動(dòng)AM(ApplicationMaster)的資源。
3、RS收到請(qǐng)求,隨機(jī)選擇一臺(tái)NM(NodeManager)啟動(dòng)AM。這里的NM相當(dāng)于Standalone中的Worker節(jié)點(diǎn)。
4、AM啟動(dòng)后,會(huì)向RS請(qǐng)求一批container資源,用于啟動(dòng)Executor. RS會(huì)找到一批NM返回給AM,用于啟動(dòng)Executor。
5、AM會(huì)向NM發(fā)送命令啟動(dòng)Executor。
6、Executor啟動(dòng)后,會(huì)反向注冊(cè)給Driver,Driver發(fā)送task到Executor,執(zhí)行情況和結(jié)果返回給Driver端。