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