hive常用参数优化

  • 1.Hive中间结果压缩和压缩输出
        SET hive.exec.compress.output = true;   // 默认false
        SET hive.exec.compress.intermediate = true;  // 默认false
        SET mapred.output.compression.codec = org.apache.hadoop.io.compress.SnappyCodec; //默认org.apache.hadoop.io.compress.DefaultCodec
        SET mapred.output.compression.type = BLOCK;  // 默认BLOCK
    2.输出合并小文件
        SET hive.merge.mapfiles = true;  // 默认true,在map-only任务结束时合并小文件
        SET hive.merge.mapredfiles = true;  // 默认false,在map-reduce任务结束时合并小文件
        SET hive.merge.size.per.task = 268435456;  // 默认256M
        SET hive.merge.smallfiles.avgsize = 16777216;   // 当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge
    3.设置map和reduce数量
        SET mapred.max.split.size = 256000000;
        SET mapred.min.split.size = 64000000;
        SET mapred.min.split.size.per.node = 64000000;
        SET mapred.min.split.size.per.rack = 64000000;
        set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;  // 小文件优化
        SET hive.exec.reducers.bytes.per.reducer = 256000000;  // 默认64M,每个reducer处理的数据量大小
    4. task 内存设置
        mapreduce.map.java.opts=-Xmx2048m(默认参数,表示jvm堆内存)
        mapreduce.map.memory.mb=2304
        mapreduce.reduce.java.opts=-Xmx2048m(默认参数,表示jvm堆内存)
        mapreduce.reduce.memory.mb=2304(container的内存)
    5.设置数据倾斜和并行化
        SET hive.exec.parallel = true; – 并行执行
        SET hive.exec.parallel.thread.number = 16;
        SET mapred.job.reuse.jvm.num.tasks = 10;
        SET hive.exec.dynamic.partition = true;
        SET hive.optimize.cp = true;  // 列裁剪
        SET hive.optimize.pruner = true;  // 分区裁剪
        SET hive.groupby.skewindata = true;   // groupby数据倾斜优化
        SET hive.exec.mode.local.auto = true;  // 本地执行
        SET hive.exec.mode.local.auto.input.files.max = 10; //map数默认是4,当map数小于10就会启动任务本地执行
        SET hive.exec.mode.local.auto.inputbytes.max = 128000000  // 默认是128M

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值