hbase-Abfragefehler: Region konnte nicht gefunden werden

Eines Tages aufgrund unzureichender Clusterressourcen. Ein großer Bereich des HBase-Regionsservers blieb aufgrund einer Lastexplosion hängen, und einige Abfragen meldeten am nächsten Tag Fehler.

 

 

 Einige Abfragen für eine Tabelle im Cluster können die Region nicht finden.

Ich habe versucht, den Cluster neu zu starten und den Cluster fortlaufend neu zu starten. Man ging davon aus, dass der fortlaufende Neustartprozess die Regionen auf dem Regionsserver nach außen und innen verschieben würde. Ich habe versucht zu sehen, ob es repariert werden kann, aber die entscheidende Reparatur schlug fehl. Denn durch Aus- und Einzug verändert sich die Region selbst nicht. Einfach ein- und ausziehen

Probieren Sie hbase hbck -details 'hbsxx_bsdb:taj_xxx_ktgg' aus, um den Status anzuzeigen

Entdecken

HBck-Fehler-Inkonsistenzen festgestellt  

Ich habe mir den HBCK-Bericht zur Web-Benutzeroberfläche angesehen. 

Es gibt 2 Löcher und 12 Überlappungen

 

Wahrscheinlich stimmt etwas mit den Metadaten nicht.

Versuche es zu reparieren

Zuerst müssen Sie das mitgelieferte hbck-Tool installieren, das nur angezeigt, aber nicht bedient werden kann. hbase2 hat die hbck-Komponente aufgegeben. HBCK2 wurde aus HBase entfernt und zu einem separaten Projekt. Wenn Sie dieses Tool verwenden möchten , Sie müssen Ihre eigene HBase-Version verwenden. Kompilieren Sie den Quellcode.

Die GitHub-Adresse lautet: https://github.com/apache/hbase-operator-tools.git

eec005931210b4ad8eb54bbcf031db51.png

 

Ersetzen Sie die hbase-Version im POM durch Ihre tatsächliche hbase2.x-Version und führen Sie den Verpackungsbefehl im Projektstammverzeichnis aus:

Nachdem mvn clean install -DskipTests
gepackt wurde, gibt es mehrere JAR-Pakete. Nehmen Sie das benötigte hbck2 heraus, hbase-operator-tools/hbase-hbck2/target/hbase-hbck2-1.0.0-SNAPSHOT.jar.

Für cdh müssen Sie es von der offiziellen Website https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/admin_hbase_hbck.html herunterladen

implementieren

hbase hbck -j /path/hbck2.jar addFsRegionsMissingInMeta  hbxxxsdb:taj_n04xxxktgg

 Entschlossenheit ist nutzlos 

 und dann ausführen

 hbase hbck -j /hbase-hbck2-<version>.jar extraRegionsInMeta --fix hbxxxsdb:taj_n04xxxktgg

 

An mich zurückgegeben. Keine nicht übereinstimmenden Regionen. Diese Tabelle ist gut und auch ungültig

Versuchen Sie es mit einem anderen Befehl 

hbase hbck -j hbase-hbck2-<version>.jar filesystem --fix hbxxxsdb:taj_n04xxxktgg

Als ich sah, dass es nicht eine Sekunde lang endete, dachte ich, es könnte nützlich sein, aber am Ende hing es mehr als eine Stunde lang ohne Antwort. scheitern

hbase hbck -j hbase-hbck2-<version>.jar  extraRegionsInMeta --fix hbxxxsdb:taj_n04xxxktgg

Ich erhalte immer noch die Meldung „Keine nicht übereinstimmenden Regionen, diese Tabelle ist ungültig“.

Gehen Sie zurück und überprüfen Sie die Benutzeroberfläche von hbase

Ich habe den vorherigen HBCK-Bericht überprüft und festgestellt, dass die Region, in der das Problem gemeldet wurde, leer war. Daher habe ich beschlossen, diese Region mit anderen Regionen zusammenzuführen. Es gibt eine Lücke weniger im Web, aber hbck in der Befehlszeile hat sich nicht geändert und es wird mir immer noch angezeigt, dass es eine Konfliktregion gibt.

Hot-Merge-Region über online_merge

hbase shell  
merge_region '39erijidsfd8s098fen32j3i8d9','48jfidnxoskd023843257822j3i'

Region的hash值就是Region名称的最后那段在两个.之间的字符串部分

Da jedoch keine Lücke mehr vorhanden war, beschloss ich, es erneut mit get zu testen, und gab entschieden eine leere Rückgabe zurück, dass der Zeilenschlüssel nicht normal gefunden werden konnte. Keine Fehler mehr. Dann lassen Sie es von den Entwicklern testen. Entwicklungsfeedback kann wie gewohnt abgefragt werden

 

 

 

Supongo que te gusta

Origin blog.csdn.net/h952520296/article/details/130529849
Recomendado
Clasificación