Spark - 資源動(dòng)態(tài)釋放

> 通過spark-submit會(huì)固定占用一占的資源,有什么辦法,在任務(wù)不運(yùn)作的時(shí)候?qū)①Y源釋放,讓其它任務(wù)使用呢,yarn新版本默認(rèn)已經(jīng)支持了,我們使用的是HDP。

## 版本如下

![](https://upload-images.jianshu.io/upload_images/9028759-35c1bf0606261dc5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

## 配置

1. HDP里面已經(jīng)默認(rèn)支持spark動(dòng)態(tài)資源釋配置

2. 代碼配置

```

val sparkConf = new SparkConf()

? ? .set("spark.shuffle.service.enabled", "true")

? ? .set("spark.dynamicAllocation.enabled", "true")

? ? .set("spark.dynamicAllocation.minExecutors", "1") //最少占用1個(gè)Executor

? ? .set("spark.dynamicAllocation.initialExecutors", "1") //默認(rèn)初始化一個(gè)Executor

? ? .set("spark.dynamicAllocation.maxExecutors", "6") //最多占用6個(gè)Executor

? ? .set("spark.dynamicAllocation.executorIdleTimeout", "60") //executor閑置時(shí)間

? ? .set("spark.dynamicAllocation.cachedExecutorIdleTimeout", "60") //cache閑置時(shí)間

? ? .set("spark.executor.cores", "3")//使用的vcore

? ? //? ? .setMaster("local[12]")

? ? .setAppName("Spark DynamicRelease")

? val spark: SparkSession = SparkSession

? ? .builder

? ? .config(sparkConf)

? ? .getOrCreate()

```

## 注意事項(xiàng)

如果spark計(jì)算當(dāng)中使用了rdd.cache,不加下面的配置,動(dòng)態(tài)資源不會(huì)釋放

```

.set("spark.dynamicAllocation.cachedExecutorIdleTimeout", "60")

```

---

![](https://upload-images.jianshu.io/upload_images/9028759-07315bb8dadcd082.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

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

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