0

我正在尝试在会话级别调整以下 Hawq 配置以进行查询-

SET hawq_rm_stmt_nvseg = 40;
SET hawq_rm_stmt_vseg_memory = '4gb';

Hawq 在 Yarn 资源管理器上运行

Minumum Hawq queue Used capacity 5%
hawq_rm_nvseg_perquery_perseg_limit = 6 
hawq_rm_min_resource_perseg = 4

运行我的查询时,我看到只有 30 个容器正在启动。不应该是 40 个容器(每个虚拟段 1 个核心)吗?请帮助我了解如何分配虚拟段内存或内核?

4

1 回答 1

1

hawq_rm_stmt_nvseg 是配额限制。默认情况下,此值为 0。因此将其设置为 40 不会增加 vseg 的数量,而是限制它。

hawq_rm_nvseg_perquery_perseg_limit 控制可以创建多少个 vseg,您使用的是默认值 6。所以 vseg 的数量应该是 6 * 节点数。如果您看到 30,那么您可能有 5 个节点。

如果您使用的是随机分布的表,您可以增加 hawq_rm_nvseg_perquery_perseg_limit 以获得更多的 vseg 来处理您的查询。

如果您使用的是散列分布式表,您可以使用更大的 bucketnum 值重新创建该表,这将在您查询时为您提供更多的 vseg。

于 2017-05-05T15:04:09.723 回答