2016-05-18 22 views
0

Hier habe ich 2 Region Server, in denen ich 2 Metriken namens mit seiner UID (JAVA-Byte-Array) erstellt.Problem mit Vor-Splitting "TSDB" HBase-Tabelle in OpenTSDB

Metriken sys.rack.1: [0, 1, 5]

Metriken sys.rack.2: [0, 1, 6]

Ich brauche Split Pre-to die HBASE "TSDB" -Tabelle, um die Last auf die 2 Region-Server zu verteilen. http://opentsdb.net/docs/build/html/user_guide/writing.html#pre-split-hbase-regions

HBase wird Regionen automatisch teilen. Ich möchte das Verhalten selbst tun, indem Sie es über die Regionen aufteilen.

Ich habe es versucht, aber es zielt zunächst nur auf eine Regionen, um die Metriken zu schreiben.In welchem ​​Bereich könnte ich die Regionen teilen? kann mir bitte jemand helfen, dies zu lösen.

Edited

Daten wie sys.rack.1 Host sein wird = 20 sys.rack.2 host = 18

In tsdb ersten 3 Bytes von Metriken sind codieren als Byte-Array (0, 1,5 fr metrisch 1 und 0,1,6 fr metric2) und als Zeilenschlüssel verwendet werden. In HBase haben wir Werte mit Spaltenfamilie und Rowkey codiert.

+0

hi karthik, könnten Sie eine Probe Ihrer Daten geben? – Whitefret

+0

eine Sache, die Sie in Betracht ziehen könnten, ist Ihre Schlüssel zu hacken, so dass Ihre Schlüssel eine größere Reichweite haben. dann musst du hbase nur im Hash-Bereich aufteilen (abhängig von der Last) – Whitefret

+0

eigentlich Schema wird so sein http://opentsdb.net/docs/build/html/user_guide/backends/hbase.html. Können Sie mir bitte sagen, wie man diese Art von Schlüsseln hasht? – karthik

Antwort

0

fand die Lösung während Creating Tabelle in HBase müssen mit dem folgenden Befehl gemäß den Metriken, die wir in TSDB erstellt haben, Presplit. Um zu wissen, welche Metriken Sie scannen, können Sie die TSDB-UID-Tabelle, die in HBase vorhanden ist, basierend darauf aufteilen.

create 'tsdb','t',SPLITS => ['\x00\x00\x01', '\x00\x00\x02','\x00\x00\x03', '\x00\x00\x04'] 

Endlich kann ich die Tabellen vorteilen.