Hive参数性能调优

之前遇到的问题是,整个集群的资源非常多,但是执行hive sql就是很慢,然后到yarn资源管理页面一看,发现整个任务只启动了一个container执行,集群资源完全没有利用起来。于是通过调整了以下相关参数,提高了任务执行的并发。调整参数后,任务从原来执行几个小时甚至直接卡死无法执行的下降到10分钟左右就执行完毕。

yarn.nodemanager.resource.memory-mb    65536   --设置nodemanager分配给yarn的可用内存
yarn.nodemanager.resource.cpu-vcores   40      --设置nodemanager分配给yarn的可用虚拟CPU
yarn.nodemanager.vmem-pmem-ratio       2.1     --虚拟内存比例
yarn.scheduler.maximum-allocation-mb   65536   --设置每个container可用最大内存
yarn.scheduler.minimum-allocation-mb   2048    --设置每个container可用最小内存
yarn.scheduler.maximum-allocation-vcores  2    --设置每个container可用最大虚拟CPU
yarn.scheduler.minimum-allocation-vcores=1     --设置每个container可用最小虚拟CPU

mapreduce.map.memory.mb=2048     --设置每个map可用内存
mapreduce.reduce.memory.mb=4096  --设置每个reducer可用内存
mapreduce.map.cpu.vcores=4       --设置每个map使用虚拟CPU
mapreduce.reduce.cpu.vcores=2    --设置每个reducer使用虚拟CPU

set hive.exec.reducers.bytes.per.reducer=1073741824
set mapred.job.reuse.jvm.num.tasks=40;
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=40;
set mapred.max.split.size=1073741824;
set mapred.min.split.size.per.node=1073741824;
set mapred.min.split.size.per.rack=1073741824;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;


错误信息:
MAP capability required is more than the supported max container capability in the cluster. Killing the Job. mapResourceRequest: <memory:12288, vCores:8> maxContainerCapability:<memory:65536, vCores:2>
Job received Kill while in RUNNING state.
REDUCE capability required is more than the supported max container capability in the cluster. Killing the Job. reduceResourceRequest: <memory:24576, vCores:4> maxContainerCapability:<memory:65536, vCores:2>

版权声明:本文为yangyijun1990原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。