数仓脚本参数设置

在实际项目中,数仓的脚本基本上都是有分区字段的。在很多日志项目中,按照时间字段(天)分区比较常见。所以在脚本开发的过程中就会涉及到一些参数的设置,动态分区参数和合并小文件参数设置也是用的最多的。

动态分区参数设置

set hive.exec.dynamic.partition = true # 是否打开动态分区,默认false
set hive.exec.dynamic.partition.mode = nonstrict # 动态分区的模式,默认strict,即必须有静态分区。在数仓业务中,数据都是增量新增的,所以一般分区全都是动态分区字段
  set  hive.exec.max.dynamic.partitions.pernode = 10000  #单个maper或reducer可以允许创建的最大动态分区个数,默认是100,超出则会报错
set hive.exec.max.dynamic.partitions =10000 # 所允许的最大的动态分区的个数,可以手动增加分区。默认1000
set hive.exec.max.created.files = 50000  # 所有hive运行的map与reduce任务可以产生的文件的和,默认10000
set hive.merge.mapfiles  = true # 合并小文件设置,在Map-only的任务结束时合并小文件,默认值true
set hive.merge.mapredfiles  = true # 在Map-Reduce的任务结束时合并小文件,默认值false
set hive.merge.size.per.task = 256*1000*1000# reduce合并文件的大小,默认 256 M。通过这个job map阶段输出文件的totalsize,除以这个参数值,就可以得出job的reduce数量。所以该参数可以控制reduce的大小和数量
set hive.merge.smallfiles.avgsize = 128*1000*1000 # 当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge,默认16*1000*1000即16M
set hive.groupby.skewindata  = true #  group by 操作是否支持倾斜的数据,默认false
set hive.map.aggr = true # 决定是否可以在 Map 端进行聚合操作  默认为true

set mapreduce.input.fileinputformat.split.minsize.per.node = 256000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值