亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會深度解析
1126
2022-05-29
3.1.2 Spark工作節(jié)點(diǎn)與執(zhí)行器
Spark執(zhí)行器是運(yùn)行Spark的DAG中的任務(wù)的進(jìn)程。執(zhí)行器會占用Spark集群的從節(jié)點(diǎn)(工作節(jié)點(diǎn))上的CPU和內(nèi)存資源。每個執(zhí)行器都是特定的Spark應(yīng)用專用的,當(dāng)應(yīng)用完成時退出。一個Spark程序通常有多個執(zhí)行器并行工作。
執(zhí)行器運(yùn)行在工作節(jié)點(diǎn)上,而每個工作節(jié)點(diǎn)在同一時間內(nèi)能啟動的執(zhí)行器數(shù)量是有限/額定的。因此,對于一個規(guī)模固定的集群來說,同一時間能啟動的執(zhí)行器數(shù)量也是有限的。如果一個應(yīng)用請求了超過集群剩余物理容量的執(zhí)行器數(shù)量,就需要等待已啟動的執(zhí)行器完成并釋放資源。
本章已經(jīng)介紹過,Spark執(zhí)行器運(yùn)行在JVM上。每個執(zhí)行器所使用的JVM都有一個堆(heap),是用來存儲和管理對象的專用的內(nèi)存空間。
各個執(zhí)行器的JVM堆的內(nèi)存大小可以通過spark.executor.memory屬性設(shè)置,也可以通過pyspark、spark-shell或spark-submit的--executor-memory參數(shù)設(shè)置。
執(zhí)行器把任務(wù)的輸出數(shù)據(jù)存儲在內(nèi)存或硬盤里。需要注意的是,工作節(jié)點(diǎn)和執(zhí)行器只負(fù)責(zé)執(zhí)行分配給它們的任務(wù),而應(yīng)用是由所有任務(wù)的集合和它們之間的依賴關(guān)系組成的,這部分由驅(qū)動器進(jìn)程負(fù)責(zé)理解。
通過訪問4040端口上的Spark應(yīng)用用戶界面,用戶可以查看應(yīng)用的所有執(zhí)行器,如圖3.4所示。
圖3.4 Spark應(yīng)用用戶界面的執(zhí)行器標(biāo)簽頁
對于Spark獨(dú)立集群的部署方式來說,工作節(jié)點(diǎn)會在端口8081上提供用戶界面,如圖3.5所示。
圖3.5 Spark工作節(jié)點(diǎn)用戶界面
Spark python spark Python
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。