hue+oozie并发集群阻塞的调优经历

2023-11-10

hue+oozie并发集群阻塞的调优经历

问题描述

使用hue+oozie进行数据仓库开发,部署了大量workflow和并发任务,定时晚上集中时间执行时出现任务卡死状态,全部是oozie launcher的job任务

方案一 调大集群资源,开启资源抢占

一开始以为集群资源不够,使用了公平调度原因,多个并发任务导致资源竞争任务卡死,然后修改参数yarn.scheduler.fair.preemption开启资源抢占,减小ApplicationMaster占用资源数,配置修改如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试结果还是卡死,只是卡死的任务数变多了,问题还是没有得到解决,一天过去了,继续探索

方案二 控制用户任务并发数

chd配置方法,如下图所示,进行用户资源做大任务限制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里我设置了六个,然后并发测试,神奇的发现这里当并发到六个资源以后,一样卡死了,资源还有一半的空闲,不是资源问题,又郁闷了一天过去了

方案三 控制用户任务并发数

根据上面的资源配置发现不是资源问题,那就是hue+oozie的问题了,研究oozie的机制才明白问题的真正原因。
使用oozie调度时启动数据任务前会启动对应的oozie launcher来监控调度任务 任务多导致oozie launcher的并发高导致oozie launcher会启动多个,占用大量资源 oozie launcher的声明周期是数据任务开始之前到结束,资源不会释放 当资源别oozie launcher抢占到不能分配给数据任务时oozie会等待有空闲资源来分配给数据任务,导致整个集群陷入阻塞 oozie launcher单个占用资源较大会使用2个container,2core,4G内存(默认)
每个任务都会有一个oozie launcher来守护就像是开路保镖一样,当真实的任务结束以后oozie launcher才会结束,一开始所有资源占用完是因为全部是oozie launcher任务,然后oozie launcher任务都在等待自己的“主人”运行通过,没想到来的任务太多,所有的资源都被oozie launcher占用完了,都在等在自己的“主人”通过,所有的路都被一群眼瞎的保安堵死了,这些保安也不知道,就出现一直等待的状态,后来控制资源使用只限制六个app,当这个六个app都被oozie launcher占用时,就出现了一样的效果。
解决方案
给oozie launcher开辟单独的资源池,并且限制oozie并发的数量,让他们和的“主人”不走同一个通道,就不会出现路被同时堵死的情况,控制并发防止资源被占用完。
配置方式如下:
1.创建新的资源池,这里我们限制这个资源池最多跑四个job,防止太多的oozie launcher占用计算资源
在这里插入图片描述
在这里插入图片描述
2.在hue的任务中配置使用这个资源池

oozie.launcher.mapred.job.queue.name    root.oozie

在这里插入图片描述
在这里插入图片描述
然后执行workflow就会发现oozie launcher在root.oozie队列中了,不会与数据任务抢占资源。
在cdh中单独配置了oozie的mr

oozie.launcher.mapreduce.map.memory.mb 512
oozie.launcher.yarn.app.mapreduce.am.resource.mb  512

在这里插入图片描述
然后改了yarn集群的最小容器内存
将其改为512M就可以了。
也可以直接配置在每个workflow节点里在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hue+oozie并发集群阻塞的调优经历 的相关文章

随机推荐

  • integer和long源代码解析

    一 简介 1 Integer和Long的联系与区别 2 源代码中的享元模式 3 常用的方法 二 Integer和Long的联系与区别 相同点 Ingeter和Long都是包装类 初值为null 通过equals比较变量是否相同 在一定的范围
  • Spring Data Elasticsearch篇(1):常用注解

    1 注解 Document 1 1 Document源码 Persistent Inherited Retention RetentionPolicy RUNTIME Target ElementType TYPE public inter
  • 微信小程序简单入门经历分享 [完全新人向+网站分享+心得分享]

    本文适用于 完全不懂小程序的在校学生扫盲 这篇文章是在大二时差不多在跟着老师做了个小程序以后 对小程序有所认识以后 想起来一开始踩过的坑和迷茫 希望大家有一些避开坑的方式 本文由CSDN博主啊七王子原创手打 转载请注明出处 侵权必究 啊七王
  • java中类什么时候被加载

    创建对象实例时 new public class codeblock public static void main String args 创建对象实例时 new 类被加载 AA aa new AA 运行结果 AA的静态代码块被执行 cl
  • mac中查看.ssh文件

    因为一些原因需要重新生成github的ssh Key 但是找不到之前的安装路径的了 好在我是选择默认路径的 因此要找到ssh文件夹下的id rsa pub文件 只需要 打开终端输入 plain view plain copy open ss
  • 【分布式锁】三种分布式锁的实现【原创】

    分布式锁 0x00 概述 0x02 实现方式 0x03 分布式锁 基于数据库 1 实现思想 A 悲观锁 排他锁 B 乐观锁 2 优缺点 0x04 分布式锁 基于Zookeeper 1 实现思想 2 优缺点 0x05 分布式锁 基于Redis
  • Ant之build.xml详解

    Ant之build xml详解 Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它 但只要使用通过Linux系统得读者 应该知道make这个命令 当编译Linux内核及一些软件的源程序时 经常要用这个命令 Make命令其实就是一个
  • 关于&&运算符的机制以及=和>的运算优先级

    今天碰到问题的代码是这样的 最开始以为会输出3 以为 和 gt 的优先级一样 后来查询发现比较运算符的优先级大于赋值运算符 于是觉得输出应该是0 结果输出2 经查询发现是 在判断前一个条件为0后就不会再去判断第二个条件了 以前没见过这个说法
  • 第九届GIS技能应用大赛试题技术文档 -上午

    1 项目概述 1 1 项目要求 如图1 1 1所示为雷尼尔山国家公园 根据题目要求 现有一份雷尼尔山国家公园地形图的一部分扫描图 需要利用该扫描图制作三维模型用来分析和展示 图1 1 1 雷尼尔山国家公园 1 具体任务要求如下 任务一 使扫
  • 递归锁(Recursive Lock)也称为可重入互斥锁(reentrant mutex)

    递归锁 Recursive Lock 也称为可重入互斥锁 reentrant mutex 是互斥锁的一种 同一线程对其多次加锁不会产生死锁 递归锁会使用引用计数机制 以便可以从同一线程多次加锁 解锁 当加锁 解锁次数相等时 锁才可以被其他线
  • response对象设置返回状态_测试开发专题:spring-boot自定义异常返回

    上文测试开发专题 spring boot统一异常捕获我们讨论了java异常以及如何使用Spring Boot捕获异常 但是没有去说捕获异常后该如何进一步处理 这篇文章我们将对这个遗留的问题进行讨论 统一错误响应定义 我们希望在程序发生异常的
  • Linux操作系统之进程间通信—信号量

    文章目录 一 信号量的定义 二 信号量的使用 三 ipcs的使用 一 信号量的定义 信号量是一个特殊的变量 一般取正数值 它的值代表允许访问的资源数目 获取资源时 需要对信号的值进行原子减一 该操作被称为p操作 当信号量值为0时 代表没有资
  • Java复习-20-接口(3)- 代理设计模式

    代理设计模式 Proxy 功能 可以帮助用户将所有的开发注意力只集中在核心业务功能的处理上 代理模式 Proxy Pattern 是一种结构性模式 代理模式为一个对象提供了一个替身 以控制对这个对象的访问 即通过代理对象访问目标目标对象 可
  • Mysql 查询当前时间24小时内的数据

    记录一下mysql查询24小时内的sql语句 where time gt NOW interval 24 hour
  • C++中的内存对齐介绍

    网上有很多介绍字节对齐或数据对齐或内存对齐的文章 虽然名字不一样 但是介绍的内容大致都是相同的 这里以内存对齐相称 注 以下内容主要来自网络 内存对齐 通常也称为数据对齐 是计算机对数据类型合法地址做出了一些限制 要求某种类型对象的地址必须
  • ESP32+Arduino环境搭建教程 合宙ESP32C3

    1 在arduino官网下载安装包并安装 下载地址 https www arduino cc en software 2 安装Arduino对ESP32支持 1 添加ESP32开发板管理器地址 点击文件 gt 首选项 gt 其他开发板管理器
  • Introspector内存溢出的原理解析

    JavaBeans Introspector是一个类 位置在Java bean Introspector 这个类的用途是发现java类是否符合javaBean规范 也就是这个类是不是javabean 具体用法可以参照jdk文档 上面的意思就
  • 常用音频接口:TDM,PDM,I2S,PCM

    折腾 整理 SoC CPU MEDIATEK MT8516详解 期间 看到T8516介绍中包含 麦克风语音输入控制和连接的音频产品中包含 I2Sx2 4 个频道 TDM 最多 8 个频道 和 PDM 输入 2 个频道 等广泛的接口 不太熟悉
  • 中国猎头公司排名 (前十)

    4月3日 平时能够收到不少猎头公司排名评选的邀请 但自己一直怀疑这类排名评选的可行性和公信力 人为因素在这样的评选中占了太大的成分 因为喜欢搜索这个职业 所以我一直是一个谷歌Google的粉丝 Google的成功和深入人心和它坚持自己的 搜
  • hue+oozie并发集群阻塞的调优经历

    hue oozie并发集群阻塞的调优经历 问题描述 使用hue oozie进行数据仓库开发 部署了大量workflow和并发任务 定时晚上集中时间执行时出现任务卡死状态 全部是oozie launcher的job任务 方案一 调大集群资源