YARN學習總結 第八節 YARN節點管理

2021-08-26 02:41:52 字數 2676 閱讀 4985

nodemanager

nodemanager會執行健康檢查,可以是檢查磁碟或者任意使用者指定的檢查指令碼,如果檢查失敗,則標記此節點為unhealthy並且報告給resourcemanager,然後停止分配容器到此節點。

磁碟檢查

磁碟檢查兩個目錄(local-dirs和log-dirs)分別由yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs指定,檢查包括許可權和磁碟空間剩餘量。同時檢查檔案系統不是唯讀狀態。預設檢查間隔時間為2min,如果磁碟檢查失敗,nodemanager停止使用那部分磁碟,仍舊報告節點狀態為healthy。如果許多磁碟檢查失敗,檢查的磁碟數量可以配置,則報告節點狀態為unhealthy,並且新的容器不會被排程到這個節點上。

下面的配置引數可以用於修改磁碟檢查:

yarn.nodemanager.disk-health-checker.enable:是否開啟磁碟健康檢查。

yarn.nodemanager.disk-health-checker.interval-ms:磁碟檢查間隔。

yarn.nodemanager.disk-health-checker.min-healthy-disks:浮點數,0-1之間,預設為0.25,必須通過多少檢查,才認為是healthy

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage:浮點數,0-100之間,預設值為90,磁碟被標記為unhealthy之前的最大使用率。

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb:預設值為0。

擴充套件檢查指令碼

使用者可以指定自己的健康檢查指令碼,它會被健康檢查服務調起。使用者也可以指定乙個超時時間。如果指令碼以非0碼退出,超時,或者結果丟擲異常,則節點被標記為unhealthy。如果因為許可權或者不正確的路徑,指令碼不能執行,它會被標記為失敗。指定健康檢查指令碼是必須的。如果沒有健康檢查指令碼,則只有磁碟檢查,確定節點的狀態。

可以通過下面的引數配置健康檢查。

yarn.nodemanager.health-checker.interval-ms:檢查間隔,單位為毫秒,預設值為10min

yarn.nodemanager.health-checker.script-timeout-ms:健康檢查指令碼的超時時間,預設為20min

yarn.nodemanager.health-checker.script.path:指令碼路徑

yarn.nodemanager.health-checker.script.opts:指令碼選項。

nodemanager restart

在不丟失已經執行的啟用的容器重啟nodemanager。預設,nm儲存必要的state在乙個local state-store。當nm重啟時,它會載入這些檔案,然後進行恢復。

step 1.開啟nm restart 功能:

yarn.nodemanager.recovery.enabled

step 2.配置nm儲存狀態檔案的本地目錄

yarn.nodemanager.recovery.dir:預設值為$hadoop.tmp.dir/yarn-nm-recovery

step 3.配置乙個對於nodemanager合法的rpc位址

yarn.nodemanager.address:

step 4. auxilliary services

在yarn集群中,nodemanager可以被配置為執行auxilliary services,對於乙個完整功能的nm restart,yarn依賴任何輔助服務支援恢復。

乙個簡單的例子是shufflehandler for mapreduce。

auxiliary service classpath isolation

如果需要執行輔助服務,系統管理員需要把jar包直接放置到nodemanager的類路徑。如果存在多版本,則無法控制哪個版本會被載入。如果輔助服務和節點管理器存在依賴衝突,則會使輔助服務和節點管理器同時崩潰。為了解決這個問題,我們可以設定輔助服務使用單獨的類路徑。

在yarn-site.xml中配置下列選項。

yarn.nodemanager.aux-services.%s.classpath:指定本地jar和依賴jar的目錄

yarn.nodemanager.aux-services.%s.remote-classpath:指定遠端jar和依賴jar的目錄

yarn.nodemanager.aux-service.%s.system-classes:

配置案例:

yarn.nodemanager.aux-services

mapreduce_shuffle,customauxservice

yarn.nodemanager.aux-services.customauxservice.classpath

$/customauxservice.jar

yarn.nodemanager.aux-services.customauxservice.class

org.aux.customauxservice

yarn.nodemanager.aux-services.mapreduce_shuffle.class

org.apache.hadoop.mapred.shufflehandler

第八節 函式

函式的特性 減少 重複 使程式變得可擴充套件 使程式變得易維護 乙個函式只做一件事情 變數作用域 python 中,程式的變數並不是在哪個位置都可以訪問的,訪問許可權決定於這個變數是在 賦值的。變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱。python的作用域一共有4種,分別是 以 l...

編譯原理 第八節

分為兩大類 自頂向下分析 和 自底向上分析 其中前者又細分為 遞迴下降分析法 包含回溯的遞迴下降分析法和不含回溯的遞迴下降分析法 和非遞迴的 分析法 ll分析法 後者分為算符優先分析法和lr分析法。思想 從語法的開始符號出發,試探使用不同產生式,尋找匹配於輸入符號串的推導。或者說,從對應文法開始符號...

學習JS第八節 陣列

1.三目運算子var num 判斷條件 返回式一 返回式二 2.陣列定義方法var arr 10 10 陣列長度就是113.push 在陣列最後一位新增 實現 var arr 1,2,3 array.prototype.push function return this.length 4.pop 彈...