【Hadoop】YARN多资源队列配置及使用实践

这篇具有很好参考价值的文章主要介绍了【Hadoop】YARN多资源队列配置及使用实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       由于MapReduce默认采用Capacity Scheduler(详见【Hadoop】YARN简述),因此理论上可以存在多个队列,而默认只有一个队列(default),现有需求:额外创建两个队列分别为online和offline,将这三个队列的资源分别分配为70%、10%、20%,且允许在资源不足时借用其他队列的资源,但最多不能超过70%(online队列里面运行实时任务,offline队列里面运行离线任务,MapReduce属于离线任务),最后将WordCount任务提交到offline队列执行。

1. 多资源队列配置

       资源队列的配置需要修改capacity-scheduler.xml文件,该文件位于hadoop-3.2.0/etc/hadoop/目录。

  1. 设置队列名称
    由于yarn.scheduler.capacity.root.queues标签已经存在了,只需在<value>中添加另外两个队列的名称即可。
<property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>default,online,offline</value>
    <description>
      The queues at the this level (root is the root queue).
    </description>
</property>
  1. 设置各队列资源分配
    capacity-scheduler.xml文件中添加如下代码:
<property>
    <name>yarn.scheduler.capacity.root.default.capacity</name>
    <value>70</value>
    <description>default队列70%</description>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.online.capacity</name>
    <value>10</value>
    <description>online队列10%</description>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.offline.capacity</name>
    <value>20</value>
    <description>offline队列20%</description>
  </property>

  1. 设置各队列资源使用上限
    这里需要注意一点,使用PC虚拟机学习时如果资源卡得太紧(设置最大使用上限等于资源分配比例),有可能导致向资源分配少的队列中提交Job时,无法启动Map任务。向capacity-scheduler.xml文件中添加如下代码:
<property>
    <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
    <value>70</value>
    <description>
      The maximum capacity of the default queue. 
    </description>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.online.maximum-capacity</name>
    <value>70</value>
    <description>online队列可使用的资源上限.</description>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.offline.maximum-capacity</name>
    <value>70</value>
    <description>offline队列可使用的资源上限.</description>
  </property>

2. 指定队列提交任务

  1. WordCount代码修改

       原项目代码见【Hadoop】MapReduce分布式计算实践(统计文本单词数量),在main函数中添加如下代码:

String[] otherArgs = new GenericOptionsParser(configuration, args).getRemainingArgs();

       上面添加的这段代码会处理一些系统参数,并留下用户真正想传入的其他参数otherArgs,因为传参数的途径发生变化,所以修改输入输出路径相关代码,把所有的args[0]改为otherArgs[0]GenericOptionsParser中处理-D参数的源码如下:

if (line.hasOption('D')) {
     String[] property = line.getOptionValues('D');
     for(String prop : property) {
         String[] keyval = prop.split("=", 2);
         if (keyval.length == 2) {
             conf.set(keyval[0], keyval[1], "from command line");
         }
     }
}

       源码中以空格为分隔符提取了-D参数后的字符串数组,对数组中每个字符串使用=作为分隔符切分,若且分出两部分,则配置Configration,否则作为用户传入的其他参数,在程序中正常引用即可。
2. 提交任务

       在-D参数后设置任务要提交到的调度器队列,其余参数的解释见【Hadoop】MapReduce分布式计算实践(统计文本单词数量),提交任务的命令如下:文章来源地址https://www.toymoban.com/news/detail-569879.html

hadoop jar db_hadoop-1.0-SNAPSHOT-jar-with-dependencies.jar com.imooc.Hadoop.YARN.WordCountJobYARN -D mapreduce.job.queuename=offline /words.txt /out3

到了这里,关于【Hadoop】YARN多资源队列配置及使用实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop YARN Cgroups 资源隔离讲解

    Hadoop YARN (Yet Another Resource Negotiator) 使用 Cgroups (Control Groups)来进行资源管理和隔离。 Cgroups 是 Linux 内核提供的一种机制,用于限制、账户和隔离进程组(process groups)的资源(例如 CPU、内存、磁盘 I/O 等)。 以下是 Hadoop YARN Cgroups 的主要讲解: 资源隔离和管理: Cgroups 允

    2024年02月01日
    浏览(36)
  • Hadoop YARN功能介绍--资源管理、调度任务

    YARN是一个通用 资源管理系统平台和调度平台 ,可为上层应用提供统一的资源管理和 调度。 他的引入为集群在利用率、资源统一管理和数据共享等方面带来了好处。 集群的硬件资源,和程序运行无关,比如内存、cup 资源如何分配 支持各种计算程序 ResourceManager(物理层面集群

    2024年02月07日
    浏览(39)
  • 深入理解 Hadoop (七)YARN资源管理和调度详解

    深入理解 Hadoop 系列文章已完结,总共七篇文章,直达链接: 深入理解 Hadoop (一)网络通信架构与源码浅析 深入理解 Hadoop (二)HDFS架构演进 深入理解 Hadoop (三)HDFS文件系统设计实现 深入理解 Hadoop (四)HDFS源码剖析 深入理解 Hadoop (五)YARN核心工作机制浅析 深入理解

    2024年01月22日
    浏览(44)
  • 大数据计算引擎 EasyMR 如何简单高效管理 Yarn 资源队列

    设想一下,作为一个开发人员,你现在所在的公司有一套线上的 Hadoop 集群。A部门经常做一些定时的 BI 报表,B部门则经常使用软件做一些临时需求。那么他们肯定会遇到同时提交任务的场景,这个时候到底应该如何分配资源满足这两个任务呢?是先执行A的任务,再执行B的任

    2024年02月10日
    浏览(41)
  • Hadoop-Yarn-NodeManager如何计算Linux系统上的资源信息

    Hadoop-Yarn-NodeManager都做了什么中讲节点资源监控服务(NodeResourceMonitorImpl)时只是提了下SysInfoLinux,下面我们展开讲下 SysInfoLinux是用于计算Linux系统上的资源信息的插件 从源码中可以看到,linux上的资源信息是从各个文件中获取的: /proc/meminfo    解析和计算内存信息 /proc/c

    2024年02月19日
    浏览(34)
  • Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)

    前言:如果想知道一堆牌中有多少张红桃,直接的方式是一张张的检查,并数出有多少张红桃。 而MapReduce的方法是,给所有的节点分配这堆牌,让每个节点计算自己手中有几张是红桃,然后将这个数汇总,得到结果。 官方介绍:MapReduce是一种分布式计算模型,由Google提出,

    2024年02月08日
    浏览(54)
  • 【大数据】HADOOP-YARN容量调度器配置详解

    Capacity调度器具有以下的几个特性: 层次化的队列设计,这种层次化的队列设计保证了子队列可以使用父队列设置的全部资源。这样通过层次化的管理,更容易合理分配和限制资源的使用。 容量保证,队列上都会设置一个资源的占比,这样可以保证每个队列都不会占用整个集

    2024年02月01日
    浏览(44)
  • hadoop安装之保姆级教程(二)之YARN的配置

      为克服 Hadoop 1.0 中 HDFS 和 MapReduce 存在的各种问题⽽提出的,针对 Hadoop 1.0 中的 MapReduce 在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN.   Apache YARN ( Yet another Resource Negotiator 的缩写)是 Hadoop 集群的资源管理系统,负责为计算程序提供服务器计算资源,

    2024年02月14日
    浏览(40)
  • Hadoop入门学习笔记——四、MapReduce的框架配置和YARN的部署

    视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8 Hadoop入门学习笔记(汇总) 本次YARN的部署结构如下图所示: 当前,共有三台服务器(虚拟机)构成集群,集群规划如下所示: 主机 部署的服务 node1 ResourceManager、N

    2024年02月04日
    浏览(44)
  • Hadoop3教程(二十四):Yarn的常用命令与参数配置实例

    本章我是仅做了解,所以很多地方并没有深入去探究,用处估计不大,可酌情参考。 列出所有Application : yarn application -list 根据Application状态过滤出指定Application ,如过滤出已完成的Application: yarn application -list -appStates FINISHED Application的状态有:ALL、NEW、NEW_SAVING、SUBMITTED、

    2024年02月08日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包