国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hadoop3教程(二十五):Yarn的多隊(duì)列調(diào)度器使用案例

這篇具有很好參考價(jià)值的文章主要介紹了Hadoop3教程(二十五):Yarn的多隊(duì)列調(diào)度器使用案例。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

(136)生產(chǎn)環(huán)境多隊(duì)列創(chuàng)建&好處

生產(chǎn)環(huán)境下怎么創(chuàng)建隊(duì)列?

  • 調(diào)度器默認(rèn)只會(huì)開(kāi)一個(gè)default隊(duì)列,這個(gè)肯定是不滿足生產(chǎn)要求的;
  • 可以按照框架來(lái)劃分隊(duì)列。比如說(shuō)hive/spark/flink的任務(wù)分別放在不同的隊(duì)列里,不過(guò)這么做的效率不高,企業(yè)用的不是很多。
  • 按照業(yè)務(wù)模塊來(lái)劃分隊(duì)列。比如說(shuō)登錄注冊(cè)的業(yè)務(wù),單獨(dú)一個(gè)隊(duì)列,購(gòu)物車(chē)單獨(dú)一個(gè)隊(duì)列,下單功能單獨(dú)一個(gè)隊(duì)列,等等;

創(chuàng)建多隊(duì)列的好處?

  • 擔(dān)心單一程序耗盡集群所有資源;
  • 實(shí)現(xiàn)任務(wù)的降級(jí)使用。特殊時(shí)期可以保證重要的隊(duì)列資源更充足。比如說(shuō)雙十一的時(shí)候,就給下單的那個(gè)隊(duì)列,多補(bǔ)充資源。

降級(jí)怎么理解呢,就是隊(duì)列之間區(qū)分優(yōu)先級(jí),資源的分配是按照隊(duì)列所屬的業(yè)務(wù)的優(yōu)先級(jí)來(lái)進(jìn)行的。

(137)容量調(diào)度器多隊(duì)列提交案例

僅做了解。

需求1:default隊(duì)列占總內(nèi)存的40%,最大資源容量占總資源60%,hive隊(duì)列占總內(nèi)存的60%,最大資源容量占總資源80%。

需求2:配置隊(duì)列優(yōu)先級(jí)。

如何創(chuàng)建多個(gè)隊(duì)列

接下來(lái)就需要在capacity-scheduler.xml中配置容量調(diào)度器的各項(xiàng)參數(shù)。直接抄教程的示例了:

<!-- 指定多隊(duì)列,增加hive隊(duì)列 -->
<property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>default,hive</value>
    <description>
      The queues at the this level (root is the root queue).
    </description>
</property>

<!-- 降低default隊(duì)列資源額定容量為40%,默認(rèn)100% -->
<property>
    <name>yarn.scheduler.capacity.root.default.capacity</name>
    <value>40</value>
</property>

<!-- 降低default隊(duì)列資源最大容量為60%,默認(rèn)100% -->
<property>
    <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
    <value>60</value>
</property>
(2)為新加隊(duì)列添加必要屬性:
<!-- 指定hive隊(duì)列的資源額定容量 -->
<property>
    <name>yarn.scheduler.capacity.root.hive.capacity</name>
    <value>60</value>
</property>

<!-- 用戶最多可以使用隊(duì)列多少資源,1表示 -->
<property>
    <name>yarn.scheduler.capacity.root.hive.user-limit-factor</name>
    <value>1</value>
</property>

<!-- 指定hive隊(duì)列的資源最大容量 -->
<property>
    <name>yarn.scheduler.capacity.root.hive.maximum-capacity</name>
    <value>80</value>
</property>

<!-- 啟動(dòng)hive隊(duì)列 -->
<property>
    <name>yarn.scheduler.capacity.root.hive.state</name>
    <value>RUNNING</value>
</property>

<!-- 哪些用戶有權(quán)向隊(duì)列提交作業(yè) -->
<property>
    <name>yarn.scheduler.capacity.root.hive.acl_submit_applications</name>
    <value>*</value>
</property>

<!-- 哪些用戶有權(quán)操作隊(duì)列,管理員權(quán)限(查看/殺死) -->
<property>
    <name>yarn.scheduler.capacity.root.hive.acl_administer_queue</name>
    <value>*</value>
</property>

<!-- 哪些用戶有權(quán)配置提交任務(wù)優(yōu)先級(jí) -->
<property>
    <name>yarn.scheduler.capacity.root.hive.acl_application_max_priority</name>
    <value>*</value>
</property>

<!-- 任務(wù)的超時(shí)時(shí)間設(shè)置:yarn application -appId appId -updateLifetime Timeout
參考資料:https://blog.cloudera.com/enforcing-application-lifetime-slas-yarn/ -->

<!-- 如果application指定了超時(shí)時(shí)間,則提交到該隊(duì)列的application能夠指定的最大超時(shí)時(shí)間不能超過(guò)該值。 
-->
<property>
    <name>yarn.scheduler.capacity.root.hive.maximum-application-lifetime</name>
    <value>-1</value>
</property>

<!-- 如果application沒(méi)指定超時(shí)時(shí)間,則用default-application-lifetime作為默認(rèn)值 -->
<property>
    <name>yarn.scheduler.capacity.root.hive.default-application-lifetime</name>
    <value>-1</value>
</property>

如果任務(wù)超過(guò)了設(shè)定的超時(shí)時(shí)間,那么到時(shí)候就會(huì)被直接殺死,-1表示不設(shè)置。

參數(shù)設(shè)置完成后,重啟yarn,或者是執(zhí)行yarn rmadmin -refreshQueues刷新隊(duì)列配置。就可以看到兩條隊(duì)列了。

yarn 公平調(diào)度器隊(duì)列 nesteduserqueue,大數(shù)據(jù)技術(shù),大數(shù)據(jù),hadoop,yarn

如何向指定隊(duì)列提交任務(wù)

那如何向指定隊(duì)列提交任務(wù)呢?

以向hive隊(duì)列提交任務(wù)為例,就是執(zhí)行

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount -D mapreduce.job.queuename=hive /input /output

就是加入了-D參數(shù),指定了隊(duì)列名。

如果不指定隊(duì)列名的話,默認(rèn)是都提交到default隊(duì)列。

除了上述方式之外,也可以在jar包代碼里寫(xiě)死要提交的隊(duì)列名,如:

public class WcDrvier {

    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {

        Configuration conf = new Configuration();

        conf.set("mapreduce.job.queuename","hive");

        //1. 獲取一個(gè)Job實(shí)例
        Job job = Job.getInstance(conf);

        。。。 。。。

        //6. 提交Job
        boolean b = job.waitForCompletion(true);
        System.exit(b ? 0 : 1);
    }
}

這樣,這個(gè)任務(wù)在提交的時(shí)候,就會(huì)直接提交到hive隊(duì)列。

(138)容量調(diào)度器任務(wù)優(yōu)先級(jí)

資源緊張的時(shí)候,高優(yōu)先級(jí)的任務(wù)將先獲取到資源。

默認(rèn)情況下,Yarn將所有任務(wù)的優(yōu)先級(jí)限制為0,如果想使用任務(wù)的優(yōu)先級(jí)功能,則需要做一些設(shè)置。

首先修改yarn-site.xml文件,增加以下參數(shù):

<property>
    <name>yarn.cluster.max-application-priority</name>
    <value>5</value>
</property>

分發(fā)配置,并重啟Yarn:

[atguigu@hadoop102 hadoop]$ xsync yarn-site.xml
[atguigu@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
[atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

然后通過(guò)連續(xù)提交下面任務(wù),來(lái)模擬資源緊張的環(huán)境:

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 5 2000000

yarn 公平調(diào)度器隊(duì)列 nesteduserqueue,大數(shù)據(jù)技術(shù),大數(shù)據(jù),hadoop,yarn

再次提交高優(yōu)先級(jí)任務(wù):

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi  -D mapreduce.job.priority=5 5 2000000

通過(guò)-D設(shè)置了新提交的任務(wù)優(yōu)先級(jí)是5,高于當(dāng)前在運(yùn)行的所有任務(wù),這個(gè)任務(wù)馬上就獲取到了資源:
yarn 公平調(diào)度器隊(duì)列 nesteduserqueue,大數(shù)據(jù)技術(shù),大數(shù)據(jù),hadoop,yarn
上面的例子是在任務(wù)提交時(shí)設(shè)置任務(wù)的優(yōu)先級(jí),也可以通過(guò)以下命令修改正在執(zhí)行的任務(wù)的優(yōu)先級(jí)

yarn application -appID <ApplicationID> -updatePriority 優(yōu)先級(jí)

(139)公平調(diào)度器案例

公平調(diào)度器,中大型公司主要使用的。

需求:在默認(rèn)的default隊(duì)列基礎(chǔ)之上,再創(chuàng)建兩個(gè)隊(duì)列,分別是test和atguigu(以用戶所屬組命名)。期望實(shí)現(xiàn)下面效果:

  • 提交任務(wù)時(shí)若指定隊(duì)列,則提交至指定隊(duì)列運(yùn)行;
  • 提交任務(wù)時(shí)未指定隊(duì)列,test用戶提交的任務(wù)到test隊(duì)列運(yùn)行,atguigu用戶提交的任務(wù)到atguigu隊(duì)列運(yùn)行

公平調(diào)度器的配置涉及到兩個(gè)文件,一個(gè)是yarn-site.xml,另一個(gè)是公平調(diào)度器隊(duì)列分配文件fair-scheduler.xml(文件名可自定義)。

(1)配置文件參考資料:

https://hadoop.apache.org/docs/r3.1.3/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

(2)任務(wù)隊(duì)列放置規(guī)則參考資料:

https://blog.cloudera.com/untangling-apache-hadoop-yarn-part-4-fair-scheduler-queue-basics/

修改yarn-site.xml文件,如下:

<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    <description>配置使用公平調(diào)度器</description>
</property>

<property>
    <name>yarn.scheduler.fair.allocation.file</name>
    <value>/opt/module/hadoop-3.1.3/etc/hadoop/fair-scheduler.xml</value>
    <description>指明公平調(diào)度器隊(duì)列分配配置文件</description>
</property>

<property>
    <name>yarn.scheduler.fair.preemption</name>
    <value>false</value>
    <description>禁止隊(duì)列間資源搶占</description>
</property>

"禁止隊(duì)列間資源搶占"這個(gè)功能就是之前提到過(guò)的,不同隊(duì)列間的資源借調(diào),這里是直接關(guān)掉了。

創(chuàng)建并配置fair-scheduler.xml:

<?xml version="1.0"?>
<allocations>
  <!-- 單個(gè)隊(duì)列中Application Master占用整個(gè)隊(duì)列資源的最大比例,取值0-1 ,企業(yè)一般配置0.1 ,-->
  <queueMaxAMShareDefault>0.5</queueMaxAMShareDefault>
  <!-- 單個(gè)隊(duì)列最大資源的默認(rèn)值 test atguigu default -->
  <queueMaxResourcesDefault>4096mb,4vcores</queueMaxResourcesDefault>

    
  <!-- 增加一個(gè)隊(duì)列test -->
  <queue name="test">
    <!-- 隊(duì)列最小資源 -->
    <minResources>2048mb,2vcores</minResources>
    <!-- 隊(duì)列最大資源 -->
    <maxResources>4096mb,4vcores</maxResources>
    <!-- 隊(duì)列中最多同時(shí)運(yùn)行的應(yīng)用數(shù),默認(rèn)50,根據(jù)線程數(shù)配置 -->
    <maxRunningApps>4</maxRunningApps>
    <!-- 隊(duì)列中Application Master占用資源的最大比例 -->
    <maxAMShare>0.5</maxAMShare>
    <!-- 該隊(duì)列資源權(quán)重,默認(rèn)值為1.0 -->
    <weight>1.0</weight>
    <!-- 隊(duì)列內(nèi)部的資源分配策略 -->
    <schedulingPolicy>fair</schedulingPolicy>
  </queue>
    
    
  <!-- 增加一個(gè)隊(duì)列atguigu -->
  <queue name="atguigu" type="parent">
    <!-- 隊(duì)列最小資源 -->
    <minResources>2048mb,2vcores</minResources>
    <!-- 隊(duì)列最大資源 -->
    <maxResources>4096mb,4vcores</maxResources>
    <!-- 隊(duì)列中最多同時(shí)運(yùn)行的應(yīng)用數(shù),默認(rèn)50,根據(jù)線程數(shù)配置 -->
    <maxRunningApps>4</maxRunningApps>
    <!-- 隊(duì)列中Application Master占用資源的最大比例 -->
    <maxAMShare>0.5</maxAMShare>
    <!-- 該隊(duì)列資源權(quán)重,默認(rèn)值為1.0 -->
    <weight>1.0</weight>
    <!-- 隊(duì)列內(nèi)部的資源分配策略 -->
    <schedulingPolicy>fair</schedulingPolicy>
  </queue>

  <!-- 任務(wù)隊(duì)列分配策略,可配置多層規(guī)則,從第一個(gè)規(guī)則開(kāi)始匹配,直到匹配成功 -->
  <queuePlacementPolicy>
    <!-- 提交任務(wù)時(shí)指定隊(duì)列,如未指定提交隊(duì)列,則繼續(xù)匹配下一個(gè)規(guī)則; false表示:如果指定隊(duì)列不存在,不允許自動(dòng)創(chuàng)建-->
    <rule name="specified" create="false"/>
    <!-- 提交到root.group.username隊(duì)列,若root.group不存在,不允許自動(dòng)創(chuàng)建;若root.group.user不存在,允許自動(dòng)創(chuàng)建 -->
    <rule name="nestedUserQueue" create="true">
        <rule name="primaryGroup" create="false"/>
    </rule>
    <!-- 最后一個(gè)規(guī)則必須為reject或者default。Reject表示拒絕創(chuàng)建提交失敗,default表示把任務(wù)提交到default隊(duì)列 -->
    <rule name="reject" />
  </queuePlacementPolicy>
</allocations>

接著分發(fā)配置并重啟yarn:

[atguigu@hadoop102 hadoop]$ xsync yarn-site.xml
[atguigu@hadoop102 hadoop]$ xsync fair-scheduler.xml

[atguigu@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
[atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

接下來(lái)可以測(cè)試提交任務(wù),就不介紹了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-781947.html

參考文獻(xiàn)

  1. 【尚硅谷大數(shù)據(jù)Hadoop教程,hadoop3.x搭建到集群調(diào)優(yōu),百萬(wàn)播放】

到了這里,關(guān)于Hadoop3教程(二十五):Yarn的多隊(duì)列調(diào)度器使用案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Hadoop3教程(二十六):(生產(chǎn)調(diào)優(yōu)篇)NameNode核心參數(shù)配置與回收站的啟用

    Hadoop3教程(二十六):(生產(chǎn)調(diào)優(yōu)篇)NameNode核心參數(shù)配置與回收站的啟用

    每個(gè)文件塊(的元數(shù)據(jù)等)在內(nèi)存中大概 占用150byte ,一臺(tái)服務(wù)器128G內(nèi)存的話,大概能存儲(chǔ)9.1億個(gè)文件塊。 在Hadoop2.x里,如何配置NameNode內(nèi)存? NameNode默認(rèn)內(nèi)存2000M。如果你的服務(wù)器內(nèi)存是4G,那一般可以把NN內(nèi)存設(shè)置成3G,留1G給服務(wù)器維持基本運(yùn)行(如系統(tǒng)運(yùn)行需要、Data

    2024年02月08日
    瀏覽(23)
  • Hadoop YARN的調(diào)度器

    YARN(Yet Another Resource Negotiator)是Hadoop生態(tài)系統(tǒng)中的資源管理和作業(yè)調(diào)度框架,負(fù)責(zé)集群資源的分配、作業(yè)的調(diào)度和任務(wù)的執(zhí)行,使得在大規(guī)模集群上可以高效地運(yùn)行各種計(jì)算框架,如MapReduce、Apache Spark等。YARN的調(diào)度器負(fù)責(zé)將集群資源分配給不同的應(yīng)用程序,以確保資源的高

    2024年02月12日
    瀏覽(20)
  • 【Hadoop】YARN容量調(diào)度器詳解

    【Hadoop】YARN容量調(diào)度器詳解

    ?? 個(gè)人主頁(yè) — —??開(kāi)著拖拉機(jī)回家_Linux,Java基礎(chǔ)學(xué)習(xí),大數(shù)據(jù)運(yùn)維-CSDN博客 ????? ???????????????? ?????????????? ???????????????????????? 目錄 一、CapacityScheduler簡(jiǎn)介 二、CapacityScheduler特性 三、CapacityScheduler配置 四、YARN WEB UI 參數(shù)詳解 Hadoop Y

    2024年02月05日
    瀏覽(21)
  • Hadoop YARN功能介紹--資源管理、調(diào)度任務(wù)

    YARN是一個(gè)通用 資源管理系統(tǒng)平臺(tái)和調(diào)度平臺(tái) ,可為上層應(yīng)用提供統(tǒng)一的資源管理和 調(diào)度。 他的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來(lái)了好處。 集群的硬件資源,和程序運(yùn)行無(wú)關(guān),比如內(nèi)存、cup 資源如何分配 支持各種計(jì)算程序 ResourceManager(物理層面集群

    2024年02月07日
    瀏覽(24)
  • 深入理解 Hadoop (七)YARN資源管理和調(diào)度詳解

    深入理解 Hadoop (七)YARN資源管理和調(diào)度詳解

    深入理解 Hadoop 系列文章已完結(jié),總共七篇文章,直達(dá)鏈接: 深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析 深入理解 Hadoop (二)HDFS架構(gòu)演進(jìn) 深入理解 Hadoop (三)HDFS文件系統(tǒng)設(shè)計(jì)實(shí)現(xiàn) 深入理解 Hadoop (四)HDFS源碼剖析 深入理解 Hadoop (五)YARN核心工作機(jī)制淺析 深入理解

    2024年01月22日
    瀏覽(46)
  • 【大數(shù)據(jù)】HADOOP-YARN容量調(diào)度器配置詳解

    Capacity調(diào)度器具有以下的幾個(gè)特性: 層次化的隊(duì)列設(shè)計(jì),這種層次化的隊(duì)列設(shè)計(jì)保證了子隊(duì)列可以使用父隊(duì)列設(shè)置的全部資源。這樣通過(guò)層次化的管理,更容易合理分配和限制資源的使用。 容量保證,隊(duì)列上都會(huì)設(shè)置一個(gè)資源的占比,這樣可以保證每個(gè)隊(duì)列都不會(huì)占用整個(gè)集

    2024年02月01日
    瀏覽(23)
  • 【Hadoop】YARN多資源隊(duì)列配置及使用實(shí)踐

    ???????由于MapReduce默認(rèn)采用Capacity Scheduler(詳見(jiàn)【Hadoop】YARN簡(jiǎn)述),因此理論上可以存在多個(gè)隊(duì)列,而默認(rèn)只有一個(gè)隊(duì)列(default),現(xiàn)有需求:額外創(chuàng)建兩個(gè)隊(duì)列分別為online和offline,將這三個(gè)隊(duì)列的資源分別分配為70%、10%、20%,且允許在資源不足時(shí)借用其他隊(duì)列的資源

    2024年02月16日
    瀏覽(20)
  • 23、hadoop集群中yarn運(yùn)行mapreduce的內(nèi)存、CPU分配調(diào)度計(jì)算與優(yōu)化

    23、hadoop集群中yarn運(yùn)行mapreduce的內(nèi)存、CPU分配調(diào)度計(jì)算與優(yōu)化

    1、hadoop3.1.4簡(jiǎn)單介紹及部署、簡(jiǎn)單驗(yàn)證 2、HDFS操作 - shell客戶端 3、HDFS的使用(讀寫(xiě)、上傳、下載、遍歷、查找文件、整個(gè)目錄拷貝、只拷貝文件、列出文件夾下文件、刪除文件及目錄、獲取文件及文件夾屬性等)-java 4、HDFS-java操作類(lèi)HDFSUtil及junit測(cè)試(HDFS的常見(jiàn)操作以及H

    2024年02月07日
    瀏覽(24)
  • 【大數(shù)據(jù)之Hadoop】二十三、Yarn命令行操作及生產(chǎn)環(huán)境下的配置

    【大數(shù)據(jù)之Hadoop】二十三、Yarn命令行操作及生產(chǎn)環(huán)境下的配置

    Yarn狀態(tài)查詢(xún)可以在hadoop103:8088頁(yè)面查看,也可以通過(guò)命令查看。 先運(yùn)行案例再查看運(yùn)行情況。 (1)yarn application 查看任務(wù) (2)yarn logs 查看日志 (3) yarn application attempt 查看嘗試運(yùn)行的任務(wù)(即正在運(yùn)行的任務(wù)狀態(tài)) (4) yarn container查看容器 只有任務(wù)在執(zhí)行過(guò)程中才能看

    2024年02月16日
    瀏覽(24)
  • 【大數(shù)據(jù)基礎(chǔ)】Hadoop3.1.3安裝教程

    【大數(shù)據(jù)基礎(chǔ)】Hadoop3.1.3安裝教程

    來(lái)源: https://dblab.xmu.edu.cn/blog/2441/ 前言:重裝解決一切bug!事實(shí)上,問(wèn)題中的絕大部分衍生問(wèn)題都可以通過(guò)重裝解決。 創(chuàng)建Hadoop用戶 首先按 ctrl+alt+t 打開(kāi)終端窗口,輸入如下命令創(chuàng)建新用戶 : 接著使用如下命令設(shè)置密碼,可簡(jiǎn)單設(shè)置為 hadoop,按提示輸入兩次密碼: 可為

    2024年02月09日
    瀏覽(56)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包