我對一個hbase集羣運行java mapreduce。HBase MapReduce - 根據rowkey拆分一個區域
行鍵的形式爲UUID-yyyymmdd-UUID,行組將具有共同的第一個UUID(rowkey前綴)。我將使用共享的前綴組來調用這些行。
在我們的hbase集羣中,我們有一些包含比其他更多數據的組。一個團體的規模可能在千人之下,或者可能超過一百萬人。
據我所知,一個區域將被一個映射器讀取。
這意味着包含較大組的區域被分配給一個映射器,因此這個映射器需要處理大量數據。
我已閱讀並測試了將hbase.hregion.max.filesize參數設置得較低,以便區域被拆分。這確實提高了mapreduce作業的性能,因爲更多的mapper被編組來處理相同的數據。
但是,將此全局最大參數設置得更低也可能導致更多數百或數千個區域,這會引入其自己的開銷並且不建議。
現在我的問題:
代替將全球最大的,是有可能基於該rowkey前綴分割的區域? 這樣,如果一個大團體達到一定的大小,它可能會溢出到另一個地區。但是較小的羣體可以保持在一個區域內,並儘可能降低總體區域數量。
希望這是有道理的! 謝謝。