【备忘】hive 调优

–1.开启hive中间传输数据压缩功能
set hive.exec.compress.intermediate=true;
–2)开启mapreduce中map输出压缩功能
set mapreduce.map.output.compress=true;
–3)设置mapreduce中map输出数据的压缩方式
set mapreduce.map.output.compress.codec= org.apache.hadoop.io.compress.SnappyCodec;
–4.开启hive最终输出数据压缩功能
set hive.exec.compress.output=true;
–5. 开启mapreduce最终输出数据压缩
set mapreduce.output.fileoutputformat.compress=true;
–11. 设置自动选择Mapjoin
set hive.auto.convert.join = true;
–12. 大表小表的阈值设置(默认25M以下认为是小表):
set hive.mapjoin.smalltable.filesize=25123456;
–13. 是否在Map端进行聚合,默认为True
set hive.map.aggr = true;
–14. 在Map端进行聚合操作的条目数目
set hive.groupby.mapaggr.checkinterval = 10000000;
–15. 有数据倾斜的时候进行负载均衡(默认是false)
set hive.groupby.skewindata = true;
–16. 开启动态分区功能(默认true,开启)
set hive.exec.dynamic.partition=true;
–17. 设置为非严格模式(动态分区的模式,默认strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。)
set hive.exec.dynamic.partition.mode=nonstrict;
–18. 在所有执行MR的节点上,最大一共可以创建多少个动态分区。
set hive.exec.max.dynamic.partitions=10000000;
–19. 在每个执行MR的节点上,最大可以创建多少个动态分区。该参数需要根据实际的数据来设定。比如:源数据中包含了一年的数据,即day字段有365个值,那么该参数就需要设置成大于365,如果使用默认值100,则会报错。
set hive.exec.max.dynamic.partitions.pernode=10000000;
–19. 在linux系统当中,每个linux用户最多可以开启1024个进程,每一个进程最多可以打开2048个文件,即持有2048个文件句柄,下面这个值越大,就可以打开文件句柄越大
set hive.exec.max.created.files=100000;
–20. 当有空分区生成时,是否抛出异常。一般不需要设置。
set hive.error.on.empty.partition=false;
–21. 在map执行前合并小文件,减少map数:
set mapred.max.split.size=112345600;
set mapred.min.split.size.per.node=112345600;
set mapred.min.split.size.per.rack=112345600;
set hive.input.format= org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
–这个参数表示执行前进行小文件合并,前面三个参数确定合并文件块的大小,大于文件块大小128m的,按照128m来分隔,小于128m,大于100m的,按照100m来分隔,把那些小于100m的(包括小文件和分隔大文件剩下的),进行合并。
–22. 设置map的个数
–set mapreduce.job.reduces =10;
–23. 每个Reduce处理的数据量默认是256MB,100% 99% code2 , reduce 999
hive.exec.reducers.bytes.per.reducer=300000000;
–24. 每个任务最大的reduce数,默认为1009
set hive.exec.reducers.max=3000
–25. 设置每个job的Reduce个数
–set mapreduce.job.reduces = 15;
set hive.exec.parallel=true; --打开任务并行执行
set hive.exec.parallel.thread.number=8; --同一个sql允许最大并行度,默认为8。
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=1000;
————————————————
版权声明:本文为CSDN博主「槐序i」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/spark9527/article/details/118960384

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值