1. 程式人生 > >[大資料] CDH平臺Yarn動態資源池的配置與Oozie排程使用

[大資料] CDH平臺Yarn動態資源池的配置與Oozie排程使用

使用者會根據自己的作業需求來區分叢集資源的分配情況 我的需求是Oozie週期排程多Spark作業,需要動態使用Yarn資源 CDH版本:5.6.0

  1. 關閉允許未宣告的池 yarn.scheduler.fair.allow-undeclared-pools

    搜尋yarn.scheduler.fair.allow-undeclared-pools,預設為true,需要配置成false,設定為 true 時,將使用預設設定建立在應用程式中指定但未明確配置的池。設定為 false 時,將在名為 default 的池中執行應用程式指定的未明確配置的池。此設定適用於應用程式明確指定某個池時以及應用程式執行所在的池的名稱為與該應用程式關聯的使用者名稱的情況。

    在這裡插入圖片描述

  2. 關閉使用預設佇列時的 Fair Scheduler 使用者 yarn.scheduler.fair.user-as-default-queue

    搜尋yarn.scheduler.fair.user-as-default-queue,並設定為False,當設定為 true 時,如果未指定池名稱,Fair Scheduler 將會使用使用者名稱作為預設的池名稱。當設定為 false 時,所有應用程式都在一個名為 default 的共享池中執行。

    在這裡插入圖片描述

  3. 進入動態資源池頁面

    YARN -> 快速連結 -> 動態資源池 在這裡插入圖片描述 現在已有default和hdfs資源池 在這裡插入圖片描述

  4. 新增oozie資源池

    配置 -> 新增資源池 在這裡插入圖片描述

    彈出配置框,填上oozie,選擇DRF策略,並在Yarn中配置權重,根據需求配置,因為oozie只涉及Launcher MR,所以,一般權值填上1,最大應用程式數量設為10。 在這裡插入圖片描述

    在這裡插入圖片描述

    確認

  5. 如果有實際需求,請設定計劃模式,來根據時間、日期等設定不同的策略,因為本人沒有需求,這裡不再說明 在這裡插入圖片描述

  6. 在Oozie中配置資源池,也就是queue的名稱

    在對應的workflow.xml檔案中加入如下配

        <property>
            <name>oozie.launcher.mapred.job.queue.name</name
            <value>root.oozie</value>
        </property>
        <property>
            <name>mapred.job.queue.name</name>
            <value>default</value>
        </property>
    

    啟動oozie作業,可以看到資源池的使用已經按照新的配置執行

在這裡插入圖片描述

over