运行HQL时,报错:Container killed by YARN for exceeding memory limits

1 出现问题现象

搭建Hive On Spark 模式,运行HQL时:出现如下错误:

ExecutorLostFailure (executor 4 exited caused by one of the running tasks) Reason: Container killed by YARN for exceeding memory limits. 4.5 GB of 4.5 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead or disabling yarn.nodemanager.vmem-check-enabled because of YARN-4714
在这里插入图片描述

Hadoop 中yarn-site.xml部分资源定义相关参数官网链接

yarn.nodemanager.resource.memory-mb   每个节点上yarn可使用的内存,默认为8G,如果节点内存资源不足8G,要减少这个值,yarn不会智能的去检测内存资源,一般这个设置yarn的可用内存资源

yarn.nodemanager.resource.cpu-vcores  每个节点服务器上yarn可以使用的CPU个数,默认是8,推荐将值配置与物理核心个数相同(一般可以配置成(1-2)*物理Cpu核数),如果节点CPU核心不足8个,要调小这个值,yarn不会智能的去检测物理核心数

yarn.scheduler.maximum-allocation-mb   单个任务最大申请物理内存量,默认8GB
yarn.scheduler.minimum-allocation-mb   单个任务最小申请物理内存量,默认1GB
yarn.scheduler.increment-allocation-mb  单个任务内存不够用时一次性加多少内存 单位MB。CDH默认512M

yarn.scheduler.minimum-allocation-vcores  单个任务最大可申请的最小CPU个数,默认1个
yarn.scheduler.maximum-allocation-vcores   单个任务最大可申请的最大CPU个数,默认4个,如果申请资源时,超过这个配置,会抛出InvalidResourceRequestException

yarn.nodemanager.pmem-check-enabled  是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true
yarn.nodemanager.vmem-check-enabled  是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true

yarn.nodemanager.vmem-pmem-ratio:每使用 1MB 物理内存,最多可用的虚拟内存数,默认值2.1
针对上面的值&#x
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值