1

我在 hive 中创建了一个表来测试压缩,

CREATE TABLE part_test(id int, name string, city string) PARTITIONED BY (dept string)  clustered by (city) into 5 buckets stored as orc TBLPROPERTIES('transactional'='true');

截图 1

在屏幕截图中,我们可以看到创建了许多 delta 目录(大约 12 个文件)。

压缩是自动启动的,但它没有运行或正在压缩 delta 目录。以下是我们在 hive 中设置的属性。

set hive.compactor.initiator.on=true;
set hive.compactor.worker.threads=1;
set hive.compactor.delta.pct.threshold=0.1f;
set hive.compactor.delta.num.threshold=10;
set hive.exec.dynamic.partition=true;  
set hive.exec.dynamic.partition.mode=nonstrict; 
set hive.enforce.bucketing=true;

在屏幕截图 2 中,我们可以看到压缩状态已启动但已超过一天未执行。我们如何使压缩工作?我们需要设置任何其他属性吗?

截图2

4

1 回答 1

1

你能检查你的蜂巢站点配置,“压缩器使用的线程数”的属性

如果为 0,则将其更改为大于 0(可能为 2)。然后使用'show compactions;'检查压缩状态。

于 2019-12-03T14:37:37.140 回答