配置单元0.14启用了acid的表由于太多增量文件而出现性能问题

im9ewurl  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(201)

我在hive0.14中创建了具有acid属性的表。
我的示例创建表脚本:

CREATE TABLE sample_test (id STRING, link STRING, came_from STRING)
PARTITIONED BY (datestamp STRING) CLUSTERED BY (id) INTO 56 BUCKETS STORED AS ORC;

每当我执行update/insert/delete时,它都会在hdfs中的每个分区目录下创建一个delta文件,如下所示。当前在仓库目录中,我们有10个以上的增量文件,但是根据hive-site.xml设置,每创建10个增量文件,应该进行较小的压缩,每个分区目录下的增量文件不应该超过10个。但目前我可以在每个分区目录下看到10多个增量文件(实际上是15个)。

/usr/hive/warehouse/db_path/sample_test/datestamp=2015-06-13/delta_000001_000001/bucket_0000_0000
/usr/hive/warehouse/db_path/sample_test/datestamp=2015-06-13/delta_000001_000001/bucket_0001_0001

/usr/hive/warehouse/db_path/sample_test/datestamp=2015-06-13/delta_000001_000001/bucket_0055_0055

/usr/hive/warehouse/db_path/sample_test/datestamp=2015-06-13/delta_000015_000015/bucket_0000_0000

因此,当我对这个表sample\u测试执行select count(*)时,它会运行超过250秒来给出结果。我在这个表中只有150条记录(样本测试)。
我尝试使用下面的命令进行手动压缩,但仍然没有改进,增量文件计数保持不变。

ALTER TABLE tablename [PARTITION (partition_key='partition_value' [,...])] COMPACT 'compaction_type'

但当我从现有的表创建表时,如下所示。只有基本文件被复制到ne表位置(没有增量文件),而我在新表sample\u test2上的select count(*)非常快(不到一秒钟就给出了150的计数)。

Create table sample_test2 select * from sample_test;

my hive-site.xml值如下所示:

hive.compactor.worker.timeout   86400 
hive.compactor.check.interval   300 
hive.compactor.delta.num.threshold  10L
hive.compactor.delta.pct.threshold  0.1f 
hive.compactor.abortedtxn.threshold 1

请帮助我解决这个问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题