1.原因
在cdh执行hive聚合数据的脚本时,发现cpu及资源池时利用率比较低,执行脚本的效率不高,脚本执行一次要16小时,严重不满足应用需求。
2.分析
经过查看日志及分析cdh环境状态图表,发现集群资源没有充分利用,脚本执行时,cpu及IO都没有达到使用峰值,后来发现可能是配置的问题。
3.yarn参数配置说明
yarn.scheduler.minimum-allocation-mb 分配给AM单个容器可申请的最小内存
yarn.scheduler.maximum-allocation-mb 分配给AM单个容器可申请的最大内存
yarn.nodemanager.resource.memory-mb 节点最大可用内存
yarn.nodemanager.vmem-pmem-ratio 虚拟内存率,默认2.1
mapreduce.map.memory.mb 分配给map Container的内存大小
mapreduce.reduce.memory.mb 分配给reduce Container的内存大小
mapreduce.map.java.opts 运行map任务的jvm参数,如-Xmx,-Xms等选项
mapreduce.reduce.java.opts 运行reduce任务的jvm参数,如-Xmx,-Xms等选项
yarn.scheduler.minimum-allocation-mb:最小可申请内存量,默认是1024
yarn.scheduler.maximum-allocation-mb:最大可申请内存量,默认是8096
yarn.scheduler.minimum-allocation-vcores:最小可申请CPU数,默认是1
yarn.scheduler.maximum-allocation-vcores:最大可申请CPU数,默认是4
4.参数修改
根据自己服务器参数,我选择配置如下:
mapreduce.map.memory.mb = 2
mapreduce.reduce.memory.mb = 2
yarn.scheduler.minimum-allocation-vcores = 4