HIVE 3.1-每个分区仅触发一次自动大型压缩

时间:2018-11-08 15:56:29

标签: hive stream-compaction

我有一个启用了酸的,分区的,桶式配置单元表,我正在使用流客户端将其写入其中。我看到在将记录写入分区时创建了几个增量文件。我想启用自动压缩并尝试了以下基本参数和特定参数:

    hive.support.concurrency=true 
    hive.enforce.bucketing=true 
    hive.exec.dynamic.partition.mode=nonstrict 
    hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager 
    hive.compactor.initiator.on=true 
    hive.compactor.worker.threads=1

使用

hive.compactor.initiator.on=true 
hive.compactor.cleaner.run.interval=5000ms 
hive.compactor.delta.num.threshold=10 
hive.compactor.delta.pct.threshold=0.1f
hive.compactor.abortedtxn.threshold=1000 
hive.compactor.initiator.failed.compacts.threshold=2 
hive.compactor.abortedtxn.threshold=1000

我做了上述工作,希望能够实现 压缩。但是,我看到只有在 一次 时才会自动触发主要压缩。即,重大压缩运行一次并创建一个基本文件。一旦为该分区内的多个增量文件创建了基本文件,就不会进一步安排“重大”压缩,尽管此后将有更多的增量文件流式传输到该分区中。如何为表启用自动主要压缩?有人遇到过类似的问题吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我发现的唯一解决方案是对每个分区运行手动压缩。

ALTER TABLE myTable PARTITION (myPartitionColumn='myPartitionValue') COMPACT 'major';

我仍在尝试找出原因。