Hive常用参数总结

1、Map相关
–一个MapTask内存可使用的资源上限(单位:MB),默认为1024,如果MapTask实际使用的资源量超过该值,则会被强制杀死
set mapreduce.map.memory.mb = 1024;
–设置map jvm内存(小于map内存)
set mapreduce.map.java.opts = -Xmx3276;
– 每个MapTask可使用的最多cpu core数目,默认值: 1
set mapreduce.map.cpu.vcores = 1;
–执行Map前进行小文件合并
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
–默认128M 每个Map最大输入大小
set mapred.max.split.size = 256000000;
–一个节点上split的至少的大小
set mapred.min.split.size.per.node = 100000000;
–一个交换机下split的至少的大小
set mapred.min.split.size.per.rack = 100000000;
– map输出后合并
set hive.merge.mapfiles = true;
– 256M 设置文件合并的大小
hive.merge.size.per.task = 256000000;

2、reduce相关
–一个ReduceTask可使用的资源上限(单位:MB),默认为1024。如果ReduceTask实际使用的资源量超过该值,则会被强制杀死。
set mapreduce.reduce.memory.mb = 1024;
–设置reduce jvm内存(小于reduce内存)
set mapreduce.reduce.java.opts = -Xmx3072;
– 每个ReduceTask可使用的最多cpu core数目,默认值: 1
set mapreduce.reduce.cpu.vcores = 1;
– 1G 每个reduce处理的数据量
hive.exec.reducers.bytes.per.reducer = 256000000;
–指定reduce的个数
set mapred.reduce.tasks = 1;
–设置reduce的最大个数
set hive.exec.reducers.max = 999;
– FALSE reduce端输出合并
set hive.merge.mapredfiles = false;
– 256M 设置文件合并的大小
hive.merge.size.per.task = 256000000;

3、并行参数
– FALSE 开启并行
set hive.exec.parallel = true;
– 8 并行的个数
set hive.exec.parallel.thread.number = 16;

4、mapjoin相关
–开启Mapjoin,一般默认开启
set hive.auto.convert.join = true;
– 设置Mapjoin识别的文件大小(5M),防止压缩比过高导致内存溢出(100M),执行Commjoin
set hive.mapjoin.smalltable.filesize = 5000000;
–开启多个Mapjoin合并执行,并设置合并执行小表的文件大小和不超过10M
set hive.auto.convert.join.noconditionaltask=true;
set hive.auto.convert.join.noconditionaltask.size=10000000;

5、group by 负载均衡
–是否在 Map 端进行聚合,默认为 True,
set hive.map.aggr = true;
–在 Map 端进行聚合操作的条目数目
set hive.groupby.mapaggr.checkinterval = 100000;
–有数据倾斜的时候进行负载均衡(默认是 false)
set hive.groupby.skewindata = true;

6、动态分区参数
–开启动态分区
set hive.exec.dynamic.partition =true;
– 动态分区模式:strict 模式 至少指定一个分区值,其他分区为动态分区;nonstrict:所有分区都动态设定;默认值为 strict
set hive.exec.dynamic.partition.mode = nonstrict;
– 一条带有动态分区的sql语句所能创建的动态分区总量,如果超出限制会报错 ,默认值1000
set hive.exec.max.dynamic.partitions=50000000;
–能被每个mapper或者reducer创建的最大动态分区的数目,超出会报错,默认值100
set hive.exec.max.dynamic.partitions.pernode=50000000;
–全局能被创建文件数目的最大值,专门有一个hadoop计数器来跟踪该值,超出会报错,默认值 100000
set hive.exec.max.created.files = 50000000;

7、shuffle相关参数
–Buffer中的数据达到多少比例开始写入磁盘。默认值0.66
set mapreduce.reduce.shuffle.merge.percent = 0.66;
–Buffer大小占Reduce可用内存的比例。默认值0.7
set mapreduce.reduce.shuffle.input.buffer.percent = 0.7;
– 指定多少比例的内存用来存放Buffer中的数据,默认值是0.0
set mapreduce.reduce.input.buffer.percent = 0.0;
–每个Reduce去Map中取数据的并行数。默认值是5
set mapreduce.reduce.shuffle.parallelcopies = 5;
– 100M Shuffle的环形缓冲区大小,默认100m
set mapreduce.task.io.sort.mb = 512;
– 80% 环形缓冲区溢出的阈值,默认80%
set mapreduce.map.sort.spill.percent = 0.80;

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值