Hive碎碎念(9):HIVE前缀

2020-08-05  本文已影响0人  xxlee

转载请在文章起始处注明出处,谢谢。


--1、配置MR任务结束后进行文件合并(合并小文件)

set hive.merge.mapfiles = true;
--在Map-only的任务结束时合并小文件
set hive.merge.mapredfiles = true;
--在Map-Reduce的任务结束时合并小文件
set hive.merge.size.per.task = 512000000;
----合并文件的大小
set hive.merge.smallfiles.avgsize = 512000000;
--当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge
set hive.default.fileformat = Orc;
--ORC数据压缩参数
set mapred.max.split.size=512000000;
--#每个Map最大输入大小(目前集市层限制可能无效)
set mapred.min.split.size.per.node=512000000;
--#一个节点上split的至少的大小
set mapred.min.split.size.per.rack=512000000;
--#一个交换机下split的至少的大小
--2、若读取小文件较多,则设置在map端进行小文件合并参数
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
--#执行Map前进行小文件合并
set hive.hadoop.supports.splittable.combineinputformat = true;
--是否支持可切分的CombieInputFormat ,true是支持
set mapreduce.input.fileinputformat.split.maxsize = 512000000;
--maxsize(切片最大值):参数如果调得比blocksize小,则会让切片变小,而且就等于配置的这个参数的值。
set mapreduce.input.fileinputformat.split.minsize.per =512000000;
--minsize (切片最小值):参数调的比blockSize大,则可以让切片变得比blocksize还大。
set hive.exec.dynamic.partition = true;
---启用动态分区
set hive.exec.dynamic.partition.mode = nostrict;
---动态分区类型
set hive.exec.max.dynamic.partitions.pernode = 1000;
--默认值:100--;在每个执行MR的节点上,最大可以创建多少个动态分区。该参数需要根据实际的数据来设定。比如:源数据中包含了一年的数据,即day字段有365个值,那么该参数就需要设置成大于365,如果使用默认值100,则会报错
set hive.exec.parallel = true;
--参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.
set hive.exec.parallel.thread.number = 16;
--就是控制对于同一个sql来说同时可以运行的job的最大值,该参数默认为8.此时最大可以同时运行8个job.这里开启16个
set hive.new.job.grouping.set.cardinality = 5000;
--这条设置的意义在于告知解释器,group by之前,每条数据复制量在5000份以内。

上一篇下一篇

猜你喜欢

热点阅读