请选择 进入手机版 | 继续访问电脑版

hive 参数设置大全

[复制链接]
时间苍白了等待 发表于 2020-12-31 20:22:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
合理优化设置参数,让集群飞起来~
 参数缺省值描述
可单独使用set hive.execution.engine=tez; 设置hive的盘算引擎
可单独使用set mapreduce.map.memory.mb=4096; 设置每个map的内存
可单独使用set mapreduce.reduce.memory.mb=4096; 设置每个reduce的内存
可单独使用set mapreduce.map.java.opts=-Xmx13106M; 这个 Java 步调可以使用的最大堆内存数,一定要小于mapreduce.map.memory.mb
可单独使用mapreduce.reduce.java.opts 可以使用的最大堆内存数,一定要小于mapreduce.reduce.memory.mb
可单独使用set hive.cli.print.header=true; 辅助设置-打印表头
可单独使用set hive.cli.print.current.db=true; 辅助设置-显示当前数据库
可单独使用set hive.exec.parallel=true; 开启任务并行执行
可单独使用set hive.exec.parallel.thread.number=8; 同一个sql允许并行任务的最大线程数
联合使用set hive.exec.dynamic.partition=true;FALSE设置成true, 表示开启动态分区功能
set hive.exec.dynamic.partition.mode=nonstrict;strict设置成nonstrict, 表示允许所有分区都是动态的
set hive.exec.max.dynamic.partitions.pernode=1000;100每个mapper或reducer可以创建的最大动态分区个数.如果某个mapper或reducer实验创建大于这个值的分区的话则会知出一个致命错误
set hive.exec.max.dynamic.partitions=1000;1000一个动态分区创建语句可以创建的虽大动态分区个数,如果凌驾这个佳则会抛出—个致命错误
hive.exec.max.created.files100000全局可以创建的最大文件个数.有一个Hadoop计数器会跟踪记载创速了多少个文件
可单独使用set mapred.reduce.tasks=100; 设置reduce数量, mapper数量:reduce数量 = 10:1
可单独使用set hive.exec.reducers.bytes.per.reducer=500000000; (500M) 设置每个reduce处理惩罚数据量,默认1G
联合使用set mapred.max.split.size=256000000; 每个Map最大输入巨细,间接设置map个数,默认256M就比较好。
set mapred.min.split.size=100000000; 每个Map最小输入巨细
set mapred.min.split.size.per.node=100000000; 一个节点上split的至少的巨细
set mapred.min.split.size.per.rack=100000000; 一个交换机下split的至少的巨细
set hive.input.format=
org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
 执行Map前举行小文件归并,前面参数确定归并文件块的巨细
可单独使用set hive.merge.mapfiles=true; 在Map-only的任务竣事时归并小文件
可单独使用set hive.merge.mapredfiles = true; 在Map-Reduce的任务竣事时归并小文件
可单独使用set mapreduce.job.reduce.slowstart.completedmaps=0.90.8reduce任务从map完成80%后开始执行
集群默认0.8,大部门比较小的job都是适合的,对于map比较重的大job,这个值可以适当调大,好比0.9
可单独使用set hive.exec.reducers.bytes.per.reducer=500000000;1000000000每个reduce处理惩罚的数据量,间接设置reduce的个数
可单独使用set hive.exec.reducers.max=999; 设置最大reduce的个数
可单独使用set mapred.reduce.tasks=10;  直接设置reduce的个数,reduce个数并不是越多越好!Order by时只有一个reduce

优化参数设置
set hive.execution.engine=tez;
set mapreduce.map.memory.mb=8192;
set mapreduce.reduce.memory.mb=8192;
set hive.exec.reducers.max=999;
set hive.exec.reducers.bytes.per.reducer=500000000;

开动态分区时设置
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=1000;
set hive.exec.max.dynamic.partitions=1000;
 
针对差别任务,需联合日志调解参数~
 

来源:https://blog.csdn.net/weixin_39032019/article/details/111912916
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )