Spark Core 性能調(diào)優(yōu)之資源動(dòng)態(tài)調(diào)度(Yarn模式下)

操作場(chǎng)景

? ? ? ? 對(duì)于Spark應(yīng)用來(lái)說(shuō),資源是影響Spark應(yīng)用執(zhí)行效率的一個(gè)重要因素。當(dāng)一個(gè)長(zhǎng)期運(yùn)行的服務(wù)(比如JDBCServer),若分配給它多個(gè)Executor,可是卻沒(méi)有任何任務(wù)分配給它,而此時(shí)有其他的應(yīng)用卻資源緊張,這就造成了很大的資源浪費(fèi)和資源不合理的調(diào)度。

? ? ? ? 動(dòng)態(tài)資源調(diào)度就是為了解決這種場(chǎng)景,根據(jù)當(dāng)前應(yīng)用任務(wù)的負(fù)載情況,實(shí)時(shí)的增減Executor個(gè)數(shù),從而實(shí)現(xiàn)動(dòng)態(tài)分配資源,使整個(gè)Spark系統(tǒng)更加健康。

操作步驟

1、需要先配置External shuffle service。詳情見(jiàn)www.itdecent.cn/writer#/notebooks/15701476/notes/16127461

2、在“spark-defaults.conf”中必須添加配置項(xiàng)“spark.dynamicAllocation.enabled”,并將該參數(shù)的值設(shè)置為“true”,表示開(kāi)啟動(dòng)態(tài)資源調(diào)度功能。默認(rèn)情況下此功能關(guān)閉。

動(dòng)態(tài)資源調(diào)度配置參數(shù):

注意事項(xiàng)

● 使用動(dòng)態(tài)資源調(diào)度功能,必須配置External Shuffle Service。如果沒(méi)有使用External Shuffle

Service,Executor被殺時(shí)會(huì)丟失shuffle文件。

● 如果通過(guò)spark.executor.instances或者--num-executors指定了Executor的個(gè)數(shù),即使配置了動(dòng)態(tài)資源調(diào)度功能,動(dòng)態(tài)資源調(diào)度功能也不會(huì)生效。

●?當(dāng)前動(dòng)態(tài)資源分配功能開(kāi)啟后,不能完全避免task被分配到即將要移除的executor,但是一般情況下只會(huì)導(dǎo)致該task失敗,只有同一個(gè)task失敗4次(可通過(guò)spark.task.maxFailures配置)才會(huì)導(dǎo)致job失敗,所以正常情況下基本不會(huì)因?yàn)閠ask被分配到即將要移除的executor導(dǎo)致job失敗,并且可以通過(guò)調(diào)大spark.task.maxFailures來(lái)減小問(wèn)題發(fā)生的概率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容