亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark怎么進行動態資源分配

發布時間:2021-09-09 11:38:46 來源:億速云 閱讀:150 作者:chen 欄目:大數據

本篇內容介紹了“Spark怎么進行動態資源分配”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、操作場景

對于Spark應用來說,資源是影響Spark應用執行效率的一個重要因素。當一個長期運行的服務,若分配給它多個Executor,可是卻沒有任何任務分配給它,而此時有其他的應用卻資源緊張,這就造成了很大的資源浪費和資源不合理的調度。

動態資源調度就是為了解決這種場景,根據當前應用任務的負載情況,實時的增減Executor個數,從而實現動態分配資源,使整個Spark系統更加健康。

二、動態資源策略

Spark怎么進行動態資源分配

1、資源分配策略

開啟動態分配策略后,application會在task因沒有足夠資源被掛起的時候去動態申請資源,這種情況意味著該application現有的executor無法滿足所有task并行運行。spark一輪一輪的申請資源,當有task掛起或等待spark.dynamicAllocation.schedulerBacklogTimeout(默認1s)`時間的時候,會開始動態資源分配;之后會每隔spark.dynamicAllocation.sustainedSchedulerBacklogTimeout(默認1s)時間申請一次,直到申請到足夠的資源。每次申請的資源量是指數增長的,即1,2,4,8等。
之所以采用指數增長,出于兩方面考慮:其一,開始申請的少是考慮到可能application會馬上得到滿足;其次要成倍增加,是為了防止application需要很多資源,而該方式可以在很少次數的申請之后得到滿足。

2、資源回收策略

當application的executor空閑時間超過spark.dynamicAllocation.executorIdleTimeout(默認60s)后,就會被回收。

三、操作步驟

1、yarn的配置

首先需要對YARN進行配置,使其支持Spark的Shuffle Service。

修改每臺集群上的yarn-site.xml:

 - 修改<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle,spark_shuffle</value></property>
 - 增加<property><name>yarn.nodemanager.aux-services.spark_shuffle.class</name><value>org.apache.spark.network.yarn.YarnShuffleService</value></property><property><name>spark.shuffle.service.port</name><value>7337</value></property>

將$SPARKHOME/lib/spark-X.X.X-yarn-shuffle.jar拷貝到每臺NodeManager的${HADOOPHOME}/share/hadoop/yarn/lib/下, 重啟所有修改配置的節點。

2、Spark的配置

配置$SPARK_HOME/conf/spark-defaults.conf,增加以下參數:

spark.shuffle.service.enabled true   //啟用External shuffle Service服務spark.shuffle.service.port 7337 //Shuffle Service默認服務端口,必須和yarn-site中的一致spark.dynamicAllocation.enabled true  //開啟動態資源分配spark.dynamicAllocation.minExecutors 1  //每個Application最小分配的executor數spark.dynamicAllocation.maxExecutors 30  //每個Application最大并發分配的executor數spark.dynamicAllocation.schedulerBacklogTimeout 1s spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 5s

四、啟動

使用spark-sql On Yarn執行SQL,動態分配資源。以yarn-client模式啟動ThriftServer:

cd $SPARK_HOME/sbin/./start-thriftserver.sh \--master yarn-client \--conf spark.driver.memory=10G \--conf spark.shuffle.service.enabled=true \--conf spark.dynamicAllocation.enabled=true \--conf spark.dynamicAllocation.minExecutors=1 \--conf spark.dynamicAllocation.maxExecutors=300 \--conf spark.dynamicAllocation.sustainedSchedulerBacklogTimeout=5s

啟動后,ThriftServer會在Yarn上作為一個長服務來運行。

“Spark怎么進行動態資源分配”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中方县| 柞水县| 壤塘县| 鸡泽县| 故城县| 梁河县| 平邑县| 宽城| 怀集县| 阿拉善左旗| 石河子市| 宁津县| 云林县| 太湖县| 大悟县| 德令哈市| 赤城县| 建阳市| 平度市| 溆浦县| 宾川县| 玉溪市| 平塘县| 平南县| 曲靖市| 阳山县| 汤阴县| 青冈县| 阿瓦提县| 吐鲁番市| 凤翔县| 偃师市| 辽宁省| 石屏县| 吉林市| 伊宁县| 夏津县| 镇雄县| 武川县| 星子县| 潞西市|