2015-04-13 10 views
5

Ho creato una tabella in HBase con una pre divisione di 8 regioni, con HexStringSplit come algoritmo di divisione. Ora voglio aumentare il numero di regioni, senza distruggere la tabella esistente e i dati in essa contenuti. Il comando con cui ho creato la scissione pre eraCome aumentare il numero di regioni in una tabella HBase

create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}

Come è non posso eseguire questo comando nuovamente per aumentare il numero di regioni. È presente un comando per aggiornare il numero di regioni in una tabella esistente?

risposta

5

Si prega di notare che il comando che fornisci crea 15 regioni, non 8: create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}

È possibile dividere le regioni con il comando di divisione:

hbase(main):001:0> split 

Here is some help for this command: 
Split entire table or pass a region to split individual region. With the 
second parameter, you can specify an explicit split key for the region. 
Examples: 
    split 'tableName' 
    split 'regionName' # format: 'tableName,startKey,id' 
    split 'tableName', 'splitKey' 
    split 'regionName', 'splitKey' 

si dovrebbe usare split 'regionName', 'splitKey' o split 'tableName', 'splitKey', basta non dimenticare per fornire il corretto SplitKey (quello centrale) a ciascuna regione per garantire una distribuzione uniforme. Potete vedere le attuali regioni a http://your-hbase-master:60010/table.jsp?name=your-table

cioè: se si dispone di una regione con StartKey 20000000 e EndKey 40000000 tua splitKey sarebbe 30000000, oppure, se si dispone di una regione con StartKey 20000000 e EndKey 30000000 tua SplitKey sarebbe 28 milioni (ricorda, è HEX)

Provalo prima con le tabelle di test finché non ti senti abbastanza sicuro del processo.

+0

Grazie davvero aiutato. – Raman

Problemi correlati