2017-05-04 32 views
0

我想在會話級別來調整低於Hawq配置的查詢 -虛擬分段存儲器/核心分配

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

Hawq是紡絲的資源管理器運行與

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

當運行我的查詢,我看到只有30個容器被啓動。它不應該是40個容器(每個虛擬段1個內核)?請幫我理解虛擬段內存或內核是如何分配的?

回答

1

hawq_rm_stmt_nvseg是配額限制。默認情況下,這是0.因此,將其設置爲40不會增加vsegs的數量,而是限制它。

hawq_rm_nvseg_perquery_perseg_limit控制可以創建多少個vsegs,並且您使用的默認值是6.所以vsegs的數量應該是6 *節點數。如果你看到30,那麼你可能有5個節點。

如果您使用的是隨機分佈的表格,則可以增加hawq_rm_nvseg_perquery_perseg_limit以獲得更多的vsegs來處理查詢。

如果您使用的是散列分佈表,您可以使用更大的bucketnum值重新創建表,當您查詢它時將爲您提供更多的vsegs。

+0

節點數量(物理HAWQ段)爲10.理想情況下,它應該是40個vsegs(4個物理段),產生40個紗線容器,但我看到30個紗線容器。我在這裏錯過了什麼? –

+0

我注意到你已經將hawq_rm_min_resource_perseg設置爲4,所以4 * 10 = 40。vsegs的數量是動態的,並基於被訪問的表。一張小桌子不需要使用更多的vsegs。紗線整合的更多細節:http://hdb.docs.pivotal.io/220/hawq/resourcemgmt/YARNIntegration.html –