美文网首页
Hive碎碎念(9):HIVE前缀

Hive碎碎念(9):HIVE前缀

作者: xxlee | 来源:发表于2020-08-05 13:47 被阅读0次

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


    --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份以内。

    相关文章

      网友评论

          本文标题:Hive碎碎念(9):HIVE前缀

          本文链接:https://www.haomeiwen.com/subject/cdnnrktx.html