2016-05-02 4 views

Antwort

0

Das macht Hbase, wenn die Region zu groß wird. Aber es ist ein langsamer Prozess und es wird Ihre Schreibperformance beeinflussen.

Die beste Vorgehensweise besteht darin, die Region basierend auf Ihrem Datenmodell bei der Erstellung der Datenbank zu teilen. Hier ist ein kleines Code-Schnipsel:

HTableDescriptor desc = new HTableDescriptor(tableName); // Tablename tablename 
HColumnDescriptor coldef = new HColumnDescriptor(Bytes.toBytes("CON")); 
desc.addFamily(coldef); // add the cf to the table 

// function to get all regions looking at the data 
// it is an array which stocks the prefix of each regions 
byte[][] regions = getRegions(); 
admin.createTable(desc, regions); 
+0

Kann nicht vorgeTeilBereiche, wenn das System seit mehr als 3 Jahren läuft. Wir haben das automatische Teilen und Überwachen ausgeschaltet. Aber es ist gut zu wissen, dass ich meine großen Regionen manuell teilen kann, während ich an sie schreibe. Danke – Evan

+0

vielleicht können Sie in Erwägung ziehen, die Daten in einen neuen Cluster zu übertragen, jetzt da Sie Ihre Datenbank gut kennen. Eine gute Region Balancing kann Ihre Leistung beim Schreiben verbessern und liest – Whitefret

+0

und für Live-Splitting sehen Force Splitting, aber ich glaube nicht, dass es empfohlen wird – Whitefret