2017-03-28 73 views
1

比方說,我有100 HBase節點和幾個表A, B, C,它們的鍵前綴爲000:099前綴。表格基於前綴進行拆分,因此每個表格都有100個區域。HBase區域 - 區域服務器編程分配

我想與前綴分配的所有行:

  • 000node-00
  • 001node-01
  • 等。

的想法是將與前綴相同的數據在同一臺機器上,因爲我的典型的場景是處理表A中,轉換數據,並把它表B中,然後處理表B中多次進行一些轉換和聚合。

我沒有看到docs指令和需要有關如何進行的一些建議。

回答

1

您可以創建區域的需求數的新表。然後執行手動區域平衡,然後使用移動命令填充表格,然後將區域放入所需的服務器。查看幫助

hbase(main):004:0> help move 

Here is some help for this command: 
Move a region. Optionally specify target regionserver else we choose one 
at random. NOTE: You pass the encoded region name, not the region name so 
this command is a little different to the others. The encoded region name 
is the hash suffix on region names: e.g. if the region name were 
TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396. then 
the encoded region name portion is 527db22f95c8a9e0116f0cc13c680396 
A server name is its host, port plus startcode. For example: 
host187.example.com,60020,1289493121758 
Examples: 

    hbase> move 'ENCODED_REGIONNAME' 
    hbase> move 'ENCODED_REGIONNAME', 'SERVER_NAME' 

或者您可以嘗試使用HBaseAdmin來執行此操作,請參閱方法move