我正在尝试调整会话级别的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个容器(每个虚拟段一个核心)?请帮助我了解虚拟段、内存或内核是如何分配的?
发布于 2017-05-05 23:04:10
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来让更多的vsegs处理您的查询。
如果您正在使用散列分布式表,您可以使用更大的bucketnum值重新创建表,这将在您查询它时为您提供更多vsegs。
https://stackoverflow.com/questions/43790231
复制相似问题