Hive任务参数优化建议

-- 优化建议

set spark.executor.memory=24g; -- 内存分配

set spark.driver.memory=32g; -- 堆内存扩大

set spark.vcore.boost.ratio=1;

set spark.driver.cores=4; -- 单个core执行的任务数,默认是1

set spark.sql.fragPartition.maxShuffleBytes=1073741824;

set spark.yarn.batch.smart.heuristic=125495624;

set spark.sql.files.maxPartitionBytes=8589934592; -- 默认128M,调小可提高map任务数(最后要合并小文件)

set spark.sql.parquet.adaptiveFileSplit=true;

set spark.sql.fragPartition.parquet.fast.mode.enabled=true;

set spark.sql.fragPartition.compactEnabled=true;

set spark.maxRemoteBlockSizeFetchToMem=268435456; -- 默认512M,为了避免占用太多内存的巨大请求、在较小的块上使用太多的内存

set spark.sql.fragPartition.skip.failure=true;

set spark.driver.memoryOverhead=4096; --允许使用对外内存

set spark.sql.adaptive.maxNumPostShufflePartitions=125; -- 优化运行速度,并减小存储减少CPU浪费

set spark.sql.fragPartition.threshold=268435456;

set spark.sql.orc.adaptiveFileSplit=true;

set spark.executor.memoryOverhead=4096; -- 最大值,允许executor使用堆外内存

set spark.sql.fragPartition.expectedBytes=268435456;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
针对电商数仓的Hive优化,可以从以下几个方面入手: 1. 数据分区:对于大规模数据的查询,使用分区表可以大幅度提高查询效率。可以按照日期、地域等维度进行分区。 2. 压缩存储:在Hive中,使用压缩存储可以减小数据的存储空间,同时也能提高查询效率。可以使用Gzip、Bzip2、Snappy等压缩方式。 3. 数据倾斜处理:在实际场景中,可能会出现某些字段的值非常集中,导致查询时某些节点负载过重,出现数据倾斜。可以采用一些技术手段,如随机数、哈希函数等进行数据均衡。 4. 动态分区:动态分区可以在查询的同时动态创建分区,避免手动创建分区的麻烦。 5. 合理设置参数Hive的性能与参数设置密切相关,如MapReduce任务并行度、内存大小、IO缓存等。合理设置这些参数可以提高查询效率。 具体的优化参数包括: - hive.exec.dynamic.partition.mode:设置动态分区模式,可以设置为nonstrict或strict。 - hive.exec.dynamic.partition:是否允许动态分区,默认为true。 - hive.exec.max.dynamic.partitions:设置动态分区最大值。 - hive.exec.max.dynamic.partitions.pernode:每个节点的最大动态分区数。 - hive.auto.convert.join:是否开启自动转换Join,可以提高Join的效率。 - hive.optimize.bucketmapjoin.sortedmerge:是否开启Bucket Map Join Sorted Merge。 - hive.exec.parallel:设置MapReduce任务并行度。 - hive.vectorized.execution.enabled:是否开启矢量化查询。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值