[英]how to control the number of mappers per region server for reading a HBase table
我有一個 HBase 表(通過 Apache Phoenix 編寫),需要讀取和寫入純文本文件。 當前的瓶頸是因為我們有 32 個鹽桶用於該 HBase(Phoenix) 表,它只打開 32 個映射器來讀取。 當數據增長超過 1000 億時,它變得非常耗時。 有人可以指出我如何控制每個區域服務器用於讀取 HBase 表的映射器數量嗎? 我也看過在下面的 URL 中解釋的程序,“ https://gist.github.com/bbeaudreault/9788499 ”,但我沒有完整解釋的驅動程序。 有人可以幫忙嗎?
在我看來,表的區域數 = framework 打開的映射器數。
所以減少區域的數量,這反過來又會減少映射器的數量。
1) 在為 ex 0-9 創建時預先拆分 hbase 表。
2) 通過生成 0-9.* 之間的行前綴來加載這些區域中的所有數據
另外, 看看 apache-hbase-region-splitting-and-merging
此外,設置映射器的數量並不能保證它會打開那么多,它是由輸入拆分驅動的
您可以使用setNumMapTasks
或conf.set('mapred.map.tasks','numberofmappersyouwanttoset')
更改映射器的數量(但這是對配置的建議)。
關於您提供的鏈接,我不知道它是如何工作的,您可以與作者聯系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.