自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

容量調(diào)度絕對(duì)值配置隊(duì)列使用與避坑

開(kāi)發(fā)
本文就來(lái)聊聊如何給隊(duì)列配置絕對(duì)值資源,以及一些使用過(guò)程中的注意事項(xiàng)。

在 yarn 中,對(duì)于容量調(diào)度而言,需要配置不同的隊(duì)列,并為隊(duì)列分配不同的資源。然而資源的配置是按照集群總資源的百分比來(lái)的,那么,如果集群資源進(jìn)行擴(kuò)容,隊(duì)列的資源也就相應(yīng)的增加了。在某些場(chǎng)景下, 我們可能希望某些隊(duì)列的資源是固定的,不隨集群資源的擴(kuò)縮容而變更,這就需要給隊(duì)列資源配置一個(gè)絕對(duì)值,在 hadoop3.1.0 版本中,開(kāi)始引入了這個(gè)功能。本文就來(lái)聊聊如何給隊(duì)列配置絕對(duì)值資源,以及一些使用過(guò)程中的注意事項(xiàng)。

配置使用

配置絕對(duì)值資源的隊(duì)列其實(shí)很簡(jiǎn)單,在原來(lái)配置百分比的地方,修改為資源的絕對(duì)值即可。例如:

<property>
<name>yarn.scheduler.capacity.root.bigdata.capacity</name>
<value>[vcores=60,memory=614400,yarn.io/gpu=0]</value>
</property>

這樣,配置的隊(duì)列就是固定的資源了。

使用注意事項(xiàng)

雖然配置比較簡(jiǎn)單,使用方式和原來(lái)相比也沒(méi)有什么變化,但還是有不少要注意的地方。

1. 根隊(duì)列下,隊(duì)列可創(chuàng)建的模式

在根隊(duì)列("/")下,可以同時(shí)創(chuàng)建類型為百分比、絕對(duì)值的子隊(duì)列。

2. 根隊(duì)列下,隊(duì)列的容量問(wèn)題

在根隊(duì)列下,如果同時(shí)創(chuàng)建了百分比、絕對(duì)值方式的隊(duì)列,那么對(duì)于百分比隊(duì)列而言,累加的百分比可以大于 100%,但單個(gè)隊(duì)列的百分比值不能超過(guò) 100%

同樣對(duì)于絕對(duì)值方式的隊(duì)列,所有隊(duì)列的資源總和同樣可以大于集群的總資源,但是,如果根隊(duì)列下只有百分比的隊(duì)列,那么隊(duì)列累加的百分比之和還是和之前一樣,必須等于 100,對(duì)于絕對(duì)值的隊(duì)列,也是一樣的,非根隊(duì)列下的子隊(duì)列,其資源的總和可以大于等于父隊(duì)列的資源,但不能超過(guò)父隊(duì)列的資源。

3. 子隊(duì)列的模式

前面說(shuō)了根隊(duì)列下的隊(duì)列可以同時(shí)創(chuàng)建百分比、絕對(duì)值方式的隊(duì)列,而在非根隊(duì)列下的隊(duì)列,其類型就必須與父隊(duì)列保持一致,即如果父隊(duì)列是百分比的,那么子隊(duì)列也只能是百分比;如果父隊(duì)列是按絕對(duì)值方式配置的,子隊(duì)列也只能以絕對(duì)值的方式進(jìn)行配置,否則會(huì)報(bào)類型不匹配的錯(cuò)誤,導(dǎo)致隊(duì)列刷新失敗或 rm 啟動(dòng)失敗,例如采用如下配置更新隊(duì)列:

<property>
<name>yarn.scheduler.capacity.root.cloudstorage.capacity</name>
<value>50</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.cloudstorage.queues</name>
<value>ceph</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.cloudstorage.ceph.capacity</name>
<value>[vcores=60,memory=614400,yarn.io/gpu=0]</value>
</property>

報(bào)錯(cuò)信息為:

4. 絕對(duì)值隊(duì)列下創(chuàng)建資源為 0 的子隊(duì)列類型問(wèn)題

動(dòng)態(tài)新增的某個(gè)隊(duì)列不需要了, 這個(gè)時(shí)候會(huì)將隊(duì)列的資源配置為 0,并將隊(duì)列的狀態(tài)配置為 STOPPED,以停用該隊(duì)列。

然而由于在絕對(duì)值模式的隊(duì)列下,創(chuàng)建的子隊(duì)列也只能是以絕對(duì)值的方式配置,如果此時(shí)將子隊(duì)列的值設(shè)置為 0 后,刷新隊(duì)列會(huì)報(bào)隊(duì)列的類型與父隊(duì)列不匹配的錯(cuò)誤。

即配置方式為 [vcores=0,memory=0,yarn.io/gpu=0] 的隊(duì)列,其類型認(rèn)為是百分比的模式,父隊(duì)列如果是絕對(duì)值模式的, 那么確實(shí)就出現(xiàn)了不匹配的報(bào)錯(cuò)。

該問(wèn)題實(shí)際上是一個(gè) bug,正確的方式是:配置為 0 資源的隊(duì)列其類型與父隊(duì)列相同。社區(qū)有對(duì)應(yīng)的記錄,在未來(lái)的 3.4.0 中修復(fù)。具體可參考 YARN-10364

5. 通過(guò) yarnClient 獲取隊(duì)里有效資源不正確

通過(guò) yarnclient 的 getEffectiveMinCapacity 獲取的值與 UI 界面展示的值不相符,同樣這個(gè)也是源碼中的 BUG。賦值的時(shí)候搞錯(cuò)了。

注意,當(dāng)前這個(gè)問(wèn)題僅在 trunk 分支上修復(fù)。

以上這些就是使用過(guò)程中常見(jiàn)的需要注意的點(diǎn),除此之外,還有幾個(gè)小的點(diǎn),使用的場(chǎng)景也有限,這里簡(jiǎn)單羅列下,如有需要可詳細(xì)參考社區(qū)的 jira 單。

(1) 絕對(duì)值配置的隊(duì)列,maxApplications 的值被覆蓋

https://issues.apache.org/jira/browse/YARN-10396

(2) 第三級(jí)隊(duì)列資源計(jì)算錯(cuò)誤問(wèn)題

https://issues.apache.org/jira/browse/YARN-8917

總結(jié)

文章就總結(jié)到這里了,看完之后是否還記得應(yīng)該如何給隊(duì)列配置絕對(duì)值資源,以及使用中有哪些需要注意的地方。此外,是否也還留有一些疑惑的地方,比如 root 隊(duì)列下,多個(gè)絕對(duì)值配置的隊(duì)列的總資源超過(guò)了集群資源,那么該隊(duì)列使用時(shí)實(shí)際能占用多少資源,具體是如何計(jì)算的等等,這就作為下篇文章的內(nèi)容,我們下次再聊。

責(zé)任編輯:趙寧寧 來(lái)源: hncscwc
相關(guān)推薦

2025-01-23 00:00:00

負(fù)數(shù)抽象泄漏機(jī)制

2023-11-01 15:32:58

2016-03-15 10:14:37

2024-04-24 13:45:00

2024-04-03 12:30:00

C++開(kāi)發(fā)

2021-02-26 00:46:11

CIO數(shù)據(jù)決策數(shù)字化轉(zhuǎn)型

2024-09-05 08:39:21

2024-08-26 08:29:55

2024-03-28 12:51:00

Spring異步多線程

2021-07-19 10:15:53

Java絕對(duì)值代碼

2021-02-22 17:00:31

Service Mes微服務(wù)開(kāi)發(fā)

2021-05-08 12:30:03

Pythonexe代碼

2023-05-24 10:06:42

多云實(shí)踐避坑

2021-05-07 21:53:44

Python 程序pyinstaller

2022-03-04 18:11:16

信服云

2018-01-20 20:46:33

2025-03-13 06:50:50

2018-07-03 10:49:22

性能故障排查

2020-06-12 11:03:22

Python開(kāi)發(fā)工具

2025-02-24 14:16:31

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)