ambai中tez任务占用yarn内存过多

问题描述

**平台: **ambari+hdp
**计算引擎: **hive+tez
**数据量: **7张表,单表千万级数据
**遇到问题: **提交一个计算任务将集群中memory沾满(不存在笛卡尔积,就最后指标字段只有7个左右)

解决方案

解决方案一

最开始解决问题思路是从三点出发:yarn、hive、tez的内存配置

  1. yarn的“yarn.scheduler.minimum-allocation-mb”和“yarn.scheduler.maximum-allocation-mb”这两参数,在HDP上对应下图
    在这里插入图片描述

  2. hive的“hive.tez.container.size”、“hive_server2_heapsize”这里两个参数,在HDP上对应下图
    在这里插入图片描述

  3. tez的“tez.am.resource.memory.mb”、“tez.task.resource.memory.mb”这两个参数,在HDP上对应下图
    在这里插入图片描述
    以上述的三个组件的内存配置为出发点经过一系列的调整,经查阅很多资料(这里就不对过程进行详细介绍了),经过各种尝试,在执行查询sql的时候还是会沾满yarn的内存计算资源。

解决方案二

这个时候就不从内存配置为出发点了,这个时候我在考虑是不是yanr的调度器的配置问题,经查看详细配置发现用户可申请的资源默认为1,也就是100%,如下图
在这里插入图片描述
就是上图红框中的参数,原来默认值为1,这个参数要根据提交到yarn的具体任务进行配置,比如就是有大体量的计算任务那就是要将这个参数配置到1或者0.8,0.9等,如果是有大体量任务的情况下可以将用户进行队列分配,专门针对小任务配置个用户队列,中型任务配置一个用户队列,对大任务配置一个用户队列,这里我配置单个计算任务最高可申请30%的内存,因为目前所有的指标计算没有太大体量的,集群的30%内存资源是完全能够满足的。经过此配置后再次执行sql,问题得到解决。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当出现"tez任务报错since cpu usage is not yet available"的错误消息时,这通常是因为Tez框架的CPU使用率尚不可用所引起的。 Tez是一个用于大规模数据处理的Apache软件基金会孵化项目,它建立在Hadoop之上。它通过创建任务和执行器的方式来进行分布式计算,并提供高效的数据处理能力。 在某些情况下,当执行Tez任务时,可能会出现CPU使用率未能即时获取的问题。这可能是由于系统资源限制、网络延迟或其他因素导致的。 要解决此问题,可以采取以下步骤: 1. 检查系统资源:确保服务器上的CPU资源充足,并且没有受到其他处理任务的干扰。如果出现资源限制,可能需要增加计算资源以支持Tez任务的顺利运行。 2. 检查网络连接:尽量减少网络延迟,并确保网络连接稳定。通过检查网络连接和系统配置,可以排除网络因素对任务执行的影响。 3. 更新版本:如果使用的是旧版本的Tez框架,可能会出现性能问题。通过升级到最新版本,可以解决一些已知的问题和错误,提高CPU使用率的可用性。 4. 检查代码逻辑:检查任务代码是否存在错误或逻辑问题,可能会导致CPU使用率无法获取。确保代码在不同环境都能正确执行。 5. 寻求专家帮助:如果以上步骤不能解决问题,可以寻求专家的帮助,例如咨询Tez社区或相关技术支持。 总之,当tez任务报错显示"CPU使用率不可用"时,我们需要综合考虑系统资源、网络连接和代码逻辑等多个方面的因素来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值