HBase-Shell-Befehle mit Beispielen

⚡ Intelligente Zusammenfassung

Mit den HBase-Shell-Befehlen können Sie Tabellen und Daten direkt über eine interaktive Eingabeaufforderung verwalten. Die Befehle sind in allgemeine Befehle, Tabellenverwaltungsbefehle wie create und drop, Datenmanipulationsbefehle wie put und get sowie Cluster-Replikationsbefehle unterteilt.

  • Allgemeine Befehle: status, version, table_help und whoami geben Clusterstatus und Benutzerinformationen aus.
  • 🗂️ Tischverwaltung: Tabellen erstellen, auflisten, beschreiben, deaktivieren, aktivieren, löschen und ändern sowie Tabellen umformen.
  • Datenmanipulation: put, get, delete, deleteall, truncate, count und scan lesen und schreiben Zellwerte.
  • 🔁 Cluster Replikation: add_peer, remove_peer, start_replication und stop_replication verwalten die Datenreplikation.
  • TTL-Attribut: Time To Live-Zeilen der Spaltenfamilie laufen nach einer festgelegten Anzahl von Sekunden automatisch ab.
  • 🤖 KI-Unterstützung: KI-Assistenten generieren und erklären HBase-Shell-Befehle anhand von Eingabeaufforderungen in einfacher Sprache.

HBase-Shell-Befehle mit Beispielen für Tabellen, Daten und Clusterreplikation

Wie man mit HBase über Shell-Befehle interagiert und Java API

Nach erfolgreicher Installation von HBase auf Hadoop steht uns eine interaktive Shell zur Verfügung, mit der wir verschiedene Befehle ausführen und diverse Operationen durchführen können. Mithilfe dieser Befehle können wir mehrere Operationen an Datentabellen vornehmen, was zu einer höheren Datenspeichereffizienz und einer flexibleren Interaktion für den Client führt.

Wir können auf zwei Arten mit HBase interagieren:

  • HBase interaktiver Shell-Modus und
  • Durch Java API.

In HBase wird der interaktive Shell-Modus für die Interaktion mit HBase verwendet, um Tabellenoperationen durchzuführen, Tabellen zu verwalten und Daten zu modellieren. Java Mithilfe des API-Modells können wir alle Arten von Tabellen- und Datenoperationen in HBase durchführen. Die Interaktion mit HBase ist über beide Methoden möglich. Der einzige Unterschied zwischen den beiden Methoden besteht darin, dass… Java API-Nutzung Java Der Code dient zur Verbindung mit HBase, während im Shell-Modus Shell-Befehle verwendet werden, um eine Verbindung zu HBase herzustellen.

Kurze Zusammenfassung von HBase, bevor wir fortfahren:

  • HBase verwendet Hadoop Dateien werden als Speichersystem zur Speicherung großer Datenmengen verwendet. HBase besteht aus Master-Servern und Region-Servern.
  • Die in HBase gespeicherten Daten liegen in Form von Regionen vor. Diese Regionen werden wiederum aufgeteilt und auf mehreren Regionsservern gespeichert.
  • Mithilfe dieser Shell-Befehle kann der Programmierer Tabellenschemata und Datenoperationen über die vollständige Shell-Interaktion definieren.
  • Welchen Befehl wir auch verwenden, er wird sich im HBase-Datenmodell widerspiegeln.
  • Wir verwenden HBase-Shell-Befehle in Betriebssystem-Skriptinterpretern wie der Bash-Shell.
  • Die Bash-Shell ist der Standard-Befehlsinterpreter für die meisten Systeme. Linux und Unix-Betriebssystemdistributionen.
  • Erweiterte Versionen von HBase bieten Shell-Befehle mit objektorientierten Referenzen im JRuby-Stil für Tabellen.
  • Tabellenreferenzvariablen können verwendet werden, um Datenoperationen im HBase-Shell-Modus durchzuführen.

Beispielsweise:

  • In diesem Tutorial haben wir eine Tabelle erstellt, in der „education“ den Tabellennamen darstellt und dem Spaltennamen „guru99“ entspricht.
  • Bei einigen Befehlen steht „guru99“ selbst für einen Tabellennamen.

Allgemeine Befehle

In HBase werden allgemeine Befehle in folgende Befehlskategorien unterteilt:

  • Status
  • Version
  • Table_help (Scannen, Löschen, Abrufen, Setzen, Deaktivieren usw.)
  • Wer bin ich

Um den HBase-Shell-Befehl aufzurufen, müssen wir zunächst den unten genannten Code ausführen.

hbase Shell

Sobald wir die HBase-Shell geöffnet haben, können wir alle unten aufgeführten Shell-Befehle ausführen. Mithilfe dieser Befehle können wir alle Arten von Tabellenoperationen im HBase-Shell-Modus durchführen. Die interaktive Shell-Eingabeaufforderung sieht wie folgt aus:

Die interaktive HBase-Shell-Eingabeaufforderung wurde mit dem Befehl hbase shell geöffnet.

Schauen wir uns alle diese Befehle und ihre Verwendung einzeln anhand eines Beispiels an.

Status

Syntax:status

Dieser Befehl liefert Details zum Systemstatus, wie die Anzahl der Server im Cluster, die Anzahl der aktiven Server und die durchschnittliche Auslastung. Je nachdem, wie detailliert die Statusinformationen sein sollen, können Sie weitere Parameter angeben. Die Parameter können „summary“, „simple“ oder „detailed“ sein; standardmäßig wird „summary“ verwendet.

Im Folgenden zeigen wir, wie Sie verschiedene Parameter an den Statusbefehl übergeben können. Der folgende Screenshot veranschaulicht dies.

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

Die Statusausgabe wird unten angezeigt:

Ausgabe des HBase-Shell-Befehls „status“ mit Anzeige von aktiven Servern, inaktiven Servern und durchschnittlicher Auslastung

Wenn wir diesen Statusbefehl ausführen, erhalten wir Informationen über die Anzahl der verfügbaren und ausgefallenen Server sowie die durchschnittliche Serverlast. Der Screenshot zeigt beispielsweise 1 aktiven Server, 1 ausgefallenen Server und eine durchschnittliche Last von 7.0000.

Version

Syntax: version

Die Versionsausgabe wird unten angezeigt:

Der Befehl `hBase shell version` zeigt die installierte HBase-Version an.

  • Dieser Befehl zeigt die aktuell verwendete HBase-Version im Befehlsmodus an.
  • Wenn Sie den Befehl version ausführen, erhalten Sie die oben gezeigte Ausgabe.

Tabellenhilfe

Syntax:table_help

Die Ausgabe von table_help wird unten angezeigt:

Die Ausgabe von `table_help` in der HBase-Shell listet die Verwendung der Befehle `create` und `get_table` auf.

Diese Befehlsanleitung lautet:

  • Was tabellenbezogene Befehle sind und wie man sie verwendet.
  • Es werden verschiedene Verwendungsmöglichkeiten der HBase-Shell-Befehle und deren Syntaxen bereitgestellt.
  • Der obige Screenshot zeigt die Syntax der Befehle „create“ und „get_table“ sowie deren Verwendung. Sobald die Tabelle in HBase erstellt wurde, können wir sie mithilfe dieser Befehle bearbeiten.
  • Es liefert Befehle zur Tabellenmanipulation wie put, get und alle anderen Befehlsinformationen.

whoami

Syntax: Whoami

Die Ausgabe von whoami wird unten angezeigt:

Der HBase-Shell-Befehl `whoami` gibt den aktuellen HD-Benutzer und die Gruppen zurück.

Der Befehl „whoami“ dient dazu, die aktuellen HBase-Benutzerinformationen des HBase-Clusters abzurufen. Er liefert unter anderem folgende Informationen:

  • In HBase vorhandene Gruppen.
  • Die Benutzerinformationen; in diesem Fall steht beispielsweise „hduser“ für den Benutzernamen, wie im Screenshot dargestellt.

TTL (Time To Live) – Attribut

In HBase können Spaltenfamilien mithilfe von TTL (Time-to-Live) auf Zeitwerte in Sekunden gesetzt werden. HBase löscht Zeilen automatisch, sobald die Ablaufzeit erreicht ist. Dieses Attribut gilt für alle Versionen einer Zeile, auch für die aktuelle.

Die in HBase für die Zeile kodierte TTL-Zeit wird in UTC angegeben. Dieses Attribut wird bei Tabellenverwaltungsbefehlen verwendet. Wichtige Unterschiede zwischen der TTL-Behandlung und den TTL-Werten für Spaltenfamilien sind nachfolgend aufgeführt:

  • Zellen-TTLs werden in Millisekunden statt in Sekunden ausgedrückt.
  • Die effektive Lebensdauer einer Zelle kann durch eine TTL-Einstellung auf Spaltenfamilienebene nicht verlängert werden.

Tabellenverwaltungsbefehle

Mithilfe dieser Befehle können Programmierer Tabellen und Tabellenschemata mit Zeilen- und Spaltenfamilien erstellen. Im Folgenden sind die Befehle zur Tabellenverwaltung aufgeführt:

  • Erschaffung
  • Liste
  • Beschreiben
  • Deaktivieren
  • Alle deaktivieren
  • Ermöglichen
  • Alle aktivieren
  • Drop
  • Drop_all
  • Filter anzeigen
  • Alter
  • Alter_status

Betrachten wir anhand eines Beispiels verschiedene Befehlsverwendungen in HBase.

Erschaffung

Syntax: create <tablename>, <columnfamilyname>

Beispiel:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

Das Ergebnis des Erstellungsbefehls wird unten angezeigt:

HBase-Shell-Befehl zum Erstellen der Tabelle „education“ mit der Spaltenfamilie „guru99“.

Das obige Beispiel erklärt, wie man in HBase eine Tabelle mit dem angegebenen Namen gemäß den Spezifikationen für jede Spaltenfamilie erstellt. Zusätzlich können auch Tabellenattribute übergeben werden. Um zu überprüfen, ob die Tabelle „education“ erstellt wurde, verwenden wir den unten stehenden Befehl „list“. Siehe auch Erstellen von HBase-Tabellen mit Java und Shell.

Liste

Syntax:list

Die Ausgabeliste wird unten angezeigt:

Der Befehl `hbase shell list` zeigt acht vorhandene Tabellen in HBase an.

  • Der Befehl „list“ zeigt alle Tabellen an, die in HBase vorhanden oder erstellt wurden.
  • Die im obigen Screenshot dargestellte Ausgabe zeigt aktuell die in HBase vorhandenen Tabellen an.
  • Hier, in diesem Screenshot, ist zu sehen, dass in HBase insgesamt 8 Tabellen vorhanden sind.
  • Wir können Ausgabewerte aus Tabellen filtern, indem wir optionale reguläre Ausdrucksparameter übergeben.

Beschreiben

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

Die Ausgabe von describe wird unten angezeigt:

Ausgabe des HBase-Shell-Befehls `describe` mit Details zu den Spaltenfamilien der Tabelle `education`

Dieser Befehl beschreibt die benannte Tabelle.

  • Es liefert weitere Informationen über die in der genannten Tabelle enthaltenen Spaltenfamilien.
  • In unserem Fall liefert es die Beschreibung der Tabelle „Bildung“.
  • Es liefert Informationen über den Tabellennamen mit Spaltenfamilien, zugehörigen Filtern, Versionen und weiteren Details.

deaktivieren

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

Die deaktivierte Ausgabe wird unten angezeigt:

Der Befehl `HBase shell disable` deaktiviert die Tabelle `education`.

  • Dieser Befehl deaktiviert die angegebene Tabelle.
  • Wenn eine Tabelle gelöscht oder entfernt werden soll, muss sie vorher deaktiviert werden.

Hier, im obigen Screenshot, deaktivieren wir die Tabelle „Bildung“.

Alle deaktivieren

 Syntax: disable_all<"matching regex"
  • Dieser Befehl deaktiviert alle Tabellen, die der angegebenen Regex entsprechen.
  • Die Implementierung ist die gleiche wie beim Befehl „drop“ (mit Ausnahme des Hinzufügens eines regulären Ausdrucks für die Übereinstimmung).
  • Sobald die Tabelle deaktiviert ist, kann der Benutzer die Tabelle aus HBase löschen.
  • Vor dem Löschen oder Ablegenping Eine Tabelle, die zuerst deaktiviert werden sollte.

Ermöglichen

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

Die Ausgabe der Aktivierungsfunktion wird unten angezeigt:

Der HBase-Shell-Befehl „enable“ reaktiviert die deaktivierte Bildungstabelle.

  • Mit diesem Befehl wird die angegebene Tabelle aktiviert.
  • Um die deaktivierte Tabelle wieder in ihren vorherigen Zustand zu versetzen, verwenden wir diesen Befehl.
  • Wenn eine Tabelle zunächst deaktiviert und nicht gelöscht oder entfernt wurde und wir die deaktivierte Tabelle wiederverwenden möchten, müssen wir sie mit diesem Befehl aktivieren.
  • Hier, im obigen Screenshot, aktivieren wir die Tabelle „Bildung“.

Filter anzeigen

Syntax: show_filters

Die Ausgabe von show_filters wird unten angezeigt:

Die Ausgabe des Befehls `show_filters` der HBase-Shell listet die verfügbaren HBase-Filter auf.

Dieser Befehl zeigt alle in HBase vorhandenen Filter an, wie z. B. ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter usw.

fallen lassen

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

Die Tropfenausgabe wird unten angezeigt:

HBase-Shell-Befehl zum Löschen der deaktivierten Bildungstabelle

Für den Drop-Befehl sind folgende Punkte zu beachten:

  • Um die in HBase vorhandene Tabelle zu löschen, müssen wir sie zuerst deaktivieren.
  • Um die in HBase vorhandene Tabelle zu löschen, müssen wir sie zuerst deaktivieren.
  • Um eine Tabelle zu löschen oder zu entfernen, muss die Tabelle zuerst mit dem Befehl disable deaktiviert werden.
  • Hier, im obigen Screenshot, lassen wir etwas fallen.ping die Tabelle „Bildung“.
  • Vor der Ausführung dieses Befehls muss die Tabelle „education“ deaktiviert werden.

drop_all

Syntax: drop_all<"regex">
  • Dieser Befehl löscht alle Tabellen, die dem angegebenen regulären Ausdruck entsprechen.
  • Vor der Ausführung dieses Befehls müssen die Tabellen mit disable_all deaktiviert werden.
  • Tabellen mit regulären Ausdrücken werden aus HBase entfernt.

aktiviert

Syntax: is_enabled 'education'

Dieser Befehl überprüft, ob die angegebene Tabelle aktiviert ist oder nicht. Normalerweise herrscht etwas Verwirrung zwischen den Befehlen „enable“ und „is_enabled“, die wir hier aufklären:

  • Angenommen, eine Tabelle ist deaktiviert; um diese Tabelle zu verwenden, müssen wir sie mit dem Befehl enable aktivieren.
  • Der Befehl is_enabled prüft, ob die Tabelle aktiviert ist oder nicht.

ändern

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Dieser Befehl ändert das Spaltenfamilienschema. Um zu verstehen, was es genau macht, haben wir es hier anhand eines Beispiels erklärt.

Beispiele: In diesen Beispielen führen wir ALTER-Befehlsoperationen auf Tabellen und deren Spalten durch. Wir führen Operationen wie die folgenden durch:

  • Ändern von Spaltenfamiliennamen (einzeln und mehrspaltig).
  • Löschen von Spaltenfamiliennamen aus einer Tabelle.
  • Mehrere weitere Operationen, die Bereichsattribute mit einer Tabelle verwenden.

Um die Spaltenfamilie „guru99_1“ in der Tabelle „education“ zu ändern oder hinzuzufügen, sodass maximal 5 Zellversionen erhalten bleiben. Hierbei ist „education“ der Tabellenname, der zuvor mit dem Spaltennamen „guru99“ erstellt wurde. Mithilfe eines ALTER-Befehls versuchen wir, das Schema der Spaltenfamilie von „guru99“ auf „guru99_1“ zu ändern, wie unten dargestellt:

HBase-Shell-Befehl: Ändern der Spaltenfamilie der Tabelle „education“ in „guru99_1“

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

Sie können den Befehl ALTER auch auf mehrere Spaltenfamilien anwenden. Beispielsweise definieren wir zwei neue Spalten für unsere bestehende Tabelle „education“, wie unten dargestellt:

HBase-Shell-Befehl zum Hinzufügen zweier neuer Spaltenfamilien guru99_2 und guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Mit diesem Befehl können wir mehrere Spaltenschemata gleichzeitig ändern.
  • Wie im obigen Screenshot zu sehen, sind guru99_2 und guru99_3 die beiden neuen Spaltennamen, die wir für die Tabelle education definiert haben.
  • Im vorherigen Screenshot können wir sehen, wie dieser Befehl verwendet wird.

In diesem Schritt erfahren Sie, wie Sie eine Spaltenfamilie aus der Tabelle löschen. Um die Spaltenfamilie „f1“ in der Tabelle „education“ zu löschen, verwenden Sie einen der folgenden Befehle. Das Ergebnis sehen Sie im folgenden Screenshot:

HBase-Shell-Befehl zum Löschen einer Spaltenfamilie aus der Tabelle „education“.

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

Mit diesem Befehl versuchen wir, den Spaltenbereich „guru99_1“ zu löschen, den wir im ersten Schritt erstellt haben. Wie in den folgenden Screenshots dargestellt, werden zwei Schritte gezeigt: das Ändern und das Entfernen eines Tabellenbereichsattributs.

HBase-Shell-Befehl ALTER, der das Tabellenbereichsattribut MAX_FILESIZE setzt.

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Schritt 1) ​​Sie können Tabellenbereichsattribute wie MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH usw. ändern. Diese können am Ende eingefügt werden; um beispielsweise die maximale Größe einer Region auf 128 MB oder einen anderen Speicherwert zu ändern, verwenden wir diesen Befehl.

Verwendung:

  • Wir können MAX_FILESIZE mit der Tabelle als Bereichsattribut verwenden, wie oben beschrieben.
  • Die in MAX_FILESIZE dargestellte Zahl gibt den Speicherplatz in Bytes an.

HINWEIS: Der Tabellenbereich MAX_FILESIZE wird durch bestimmte Attribute in HBase bestimmt. MAX_FILESIZE gehört ebenfalls zu den Tabellenbereichsattributen.

Schritt 2) Sie können ein Tabellenattribut auch mithilfe der Methode table_att_unset entfernen. Siehe den folgenden Befehl:

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Der obige Screenshot zeigt den geänderten Tabellennamen mit Bereichsattributen.
  • Die Methode table_att_unset wird verwendet, um in der Tabelle vorhandene Attribute zu entfernen.
  • Im zweiten Fall wird das Attribut MAX_FILESIZE deaktiviert.
  • Nach Ausführung des Befehls wird einfach das Attribut MAX_FILESIZE aus der Tabelle „education“ entfernt.

alter_status

 Syntax: alter_status 'education'

Die Ausgabe von alter_status wird unten angezeigt:

Der HBase-Shell-Befehl `alter_status` zeigt an, dass eine von einer Region aktualisiert wurde.

  • Mit diesem Befehl können Sie den Status des Änderungsbefehls abrufen.
  • Es gibt die Anzahl der Tabellenbereiche an, die das aktualisierte Schema erhalten haben. Sie übergeben den Tabellennamen.
  • Im obigen Screenshot ist zu sehen, dass 1 von 1 Regionen aktualisiert wurde. Das bedeutet, dass eine Region aktualisiert wurde. Anschließend wird bei erfolgreicher Aktualisierung die Meldung „Fertig“ angezeigt.

Befehle zur Datenmanipulation

Diese Befehle dienen der Datenmanipulation in Tabellen, z. B. dem Einfügen und Abrufen von Daten sowie dem Löschen von Schemaelementen. Zu diesen Befehlen gehören:

  • Zu Zählen
  • setzen
  • Erhalten Sie
  • Löschen
  • Lösche alles
  • Kürzen
  • Scannen

Lassen Sie uns die Verwendung dieser Befehle anhand eines Beispiels betrachten. Siehe auch Lesen und Schreiben von HBase-Daten.

Zu Zählen

Syntax: count <'tablename'>, CACHE =>1000
  • Der Befehl ermittelt die Anzahl der Zeilen in einer Tabelle. Der zurückgegebene Wert ist die Anzahl der Zeilen.
  • Die aktuelle Anzahl wird standardmäßig pro 1000 Zeilen angezeigt.
  • Das Zählintervall kann optional angegeben werden.
  • Die Standard-Cachegröße beträgt 10 Zeilen.
  • Der Befehl „count“ arbeitet schnell, wenn er mit dem richtigen Cache konfiguriert ist.

Ejemplo:

hbase> count 'guru99', CACHE=>1000

Die Zählergebnisse werden unten angezeigt:

Der HBase-Shell-Befehl count gibt die Zeilenanzahl der Tabelle guru99 zurück.

Dieses Beispiel ruft jeweils 1000 Zeilen aus der Tabelle „guru99“ ab. Bei einer größeren Tabellengröße kann der Cache-Wert reduziert werden. Standardmäßig wird jedoch jeweils nur eine Zeile abgerufen.

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Angenommen, die Tabelle „guru99“ enthält eine Tabellenreferenz, beispielsweise g. Wir können den Befehl „count“ auch auf die Tabellenreferenz anwenden, wie unten gezeigt:

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

setzen

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Dieser Befehl wird für folgende Zwecke verwendet:

  • Es wird einen Zellwert in eine definierte oder angegebene Tabelle, Zeile oder Spalte einfügen.
  • Optional wird ein Zeitstempel hinzugefügt.

Beispiel: Hier tragen wir Werte in die Tabelle „guru99“ in Zeile r1 und Spalte c1 ein.

hbase> put 'guru99', 'r1', 'c1', 'value', 10

Wir haben in der Tabelle „guru99“ drei Werte, 10, 15 und 30, eingetragen, wie im folgenden Screenshot dargestellt.

Der HBase-Shell-Befehl „put“ fügt die Werte 10, 15 und 30 in die Tabelle „guru99“ ein.

Angenommen, die Tabelle „guru99“ enthält eine Tabellenreferenz, beispielsweise g. Wir können den Befehl auch auf die Tabellenreferenz anwenden, etwa so:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

Die Ausgabe sieht nach dem Einfügen von Werten in „guru99“ wie im obigen Screenshot aus. Um zu überprüfen, ob der Eingabewert korrekt in die Tabelle eingefügt wurde, verwenden wir den Befehl „scan“. Im folgenden Screenshot ist zu sehen, dass die Werte korrekt eingefügt wurden.

Ausgabe des HBase-Shell-Scans, die die in die Tabelle guru99 eingefügten Werte bestätigt.

Code Ausschnitt: Zum Üben

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
put 'guru99', 'r1', 'Edu:c1', 'value', 10
put 'guru99', 'r1', 'Edu:c1', 'value', 15
put 'guru99', 'r1', 'Edu:c1', 'value', 30

Aus dem Codeausschnitt geht Folgendes hervor:

  • Hier erstellen wir eine Tabelle mit dem Namen „guru99“ und dem Spaltennamen „Edu“.
  • Mit dem Befehl „put“ fügen wir Werte in die Zeile r1 in der Spalte „Edu“ der Tabelle „guru99“ ein.

Erhalten Sie

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Hier, Mit diesem Befehl erhalten Sie den Inhalt einer Zeile oder Zelle in der Tabelle. Zusätzlich können Sie weitere Parameter wie TIMESTAMP, TIMERANGE, VERSIONS, FILTERS usw. hinzufügen, um den Inhalt einer bestimmten Zeile oder Zelle zu ermitteln.

Die folgende Ausgabe liefert die Werte für Zeile r1 und Spalte c1:

Der HBase-Shell-Befehl „get“ gibt die Zeile r1 und die Spalte c1 aus der Tabelle „guru99“ zurück.

Beispiele:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Für die Tabelle „guru99“ werden mit diesem Befehl die Werte der Zeile r1 und Spalte c1 angezeigt, wie im obigen Screenshot dargestellt.

hbase> get 'guru99', 'r1'

Mit diesem Befehl werden die Werte der Zeile r1 der Tabelle „guru99“ angezeigt.

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Mit diesem Befehl werden für die Tabelle „guru99“ die Werte der Zeile r1 im Zeitbereich ts1 bis ts2 angezeigt.

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Mit diesem Befehl werden für die Tabelle „guru99“ die Werte der Zeile r1 und der Spaltenfamilien c1, c2 und c3 angezeigt.

Löschen

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Dieser Befehl löscht den Zellenwert in einer definierten Tabellenzeile oder -spalte.
  • Die Löschmarkierung muss und sollte exakt mit den Koordinaten der zu löschenden Zelle übereinstimmen.
  • Beim Scannen werden durch das Löschen einer Zelle ältere Versionen von Werten unterdrückt.

Beispiel: Der folgende Befehl „delete“ entfernt die Zelle r1, c1 aus der Tabelle guru99:

HBase-Shell-Befehl zum Löschen der Zelle r1 c1 aus der Tabelle guru99

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • Die obige Ausführung löscht die Zeile r1 aus der Spaltenfamilie c1 in der Tabelle „guru99“.
  • Angenommen, die Tabelle „guru99“ enthält eine Tabellenreferenz, beispielsweise g.
  • Wir können den Befehl auch auf die Tabellenreferenz anwenden, zum Beispiel hbase> g.delete 'guru99', 'r1', 'c1′".

alles löschen

Syntax: deleteall <'tablename'>, <'rowname'>
  • Dieser Befehl löscht alle Zellen in einer bestimmten Zeile.
  • Optional können wir in der Syntax Spaltennamen und einen Zeitstempel definieren.

Beispiel: Der folgende Befehl deleteall entfernt alle Zellen in Zeile r1:

Der HBase-Shell-Befehl `deleteall` entfernt alle Zellen in Zeile r1 der Tabelle guru99.

hbase>deleteall 'guru99', 'r1', 'c1'

Dadurch werden alle Zeilen und Spalten der Tabelle gelöscht. Optional können dabei Spaltennamen angegeben werden.

Kürzen

Syntax:  truncate <tablename>

Der unten stehende Befehl zum Abschneiden leert die Tabelle, während sie erhalten bleibt.ping sein Schema:

Deaktivierung und Löschung des HBase-Shell-Befehls „truncate“.pingund die Nachbildung der guru99-Tabelle

Nach dem Abschneiden einer HBase-Tabelle ist das Schema zwar noch vorhanden, die Datensätze jedoch nicht. Dieser Befehl führt drei Funktionen aus; diese sind im Folgenden aufgeführt:

  • Deaktiviert die Tabelle, falls sie bereits existiert.
  • Löscht die Tabelle, falls sie bereits existiert.
  • Erstellt die erwähnte Tabelle neu.

Scannen

Syntax: scan <'tablename'>, {Optional parameters}

Dieser Befehl durchsucht die gesamte Tabelle und zeigt deren Inhalt an.

  • Wir können diesem Scan-Befehl mehrere optionale Spezifikationen übergeben, um weitere Informationen über die im System vorhandenen Tabellen zu erhalten.
  • Die Scannerspezifikationen können eines oder mehrere der folgenden Attribute umfassen.
  • Dies sind TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW und STOPROW.
scan 'guru99'

Die Scan-Ausgabe wird unten angezeigt:

Der HBase-Shell-Scan-Befehl zeigt die Zeilen r1, r2 und r3 der Tabelle guru99 an.

Im obigen Screenshot:

  • Es zeigt die Tabelle „guru99“ mit Spaltennamen und Werten an.
  • Es besteht aus drei Zeilenwerten, r1, r2 und r3, für den einzelnen Spaltenwert c1.
  • Es zeigt die den Zeilen zugeordneten Werte an.

Beispiele: - Die verschiedenen Verwendungsmöglichkeiten des Scan-Befehls:

Befehl Anwendungsbereich
scanne '.META.', {COLUMNS => 'info:regioninfo'} Es zeigt alle Metadateninformationen zu den Spalten an, die in den Tabellen in HBase vorhanden sind.
scanne 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} Es zeigt den Inhalt der Tabelle guru99 mit ihren Spaltenfamilien c1 und c2 an, wobei die Werte auf 10 begrenzt sind.
scanne 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} Es zeigt den Inhalt von guru99 mit dem Spaltennamen c1 an, wobei die Werte innerhalb des angegebenen Zeitbereichsattributs liegen.
scanne 'guru99', {RAW => true, VERSIONS =>10} Bei diesem Befehl bietet RAW=> true eine erweiterte Funktion, wie z. B. die Anzeige aller in der Tabelle vorhandenen Zellwerte guru99.

Code Beispiel: Erstellen Sie zunächst eine Tabelle und tragen Sie Werte in diese ein. Die Eingabe wird im folgenden Screenshot dargestellt:

HBase-Shell-Eingabe zum Erstellen der Tabelle guru99 und Einfügen versionierter Werte vor einem Rohscan

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}
put 'guru99', 'r1', 'e:c1', 'value', 10
put 'guru99', 'r1', 'e:c1', 'value', 12
put 'guru99', 'r1', 'e:c1', 'value', 14
delete 'guru99', 'r1', 'e:c1', 11

Wenn wir den Scan-Befehl ausführen:

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

Es wird die unten dargestellte Ausgabe angezeigt:

Rohdaten des HBase-Shell-Scans, die mehrere Zellversionen einschließlich eines gelöschten Werts anzeigen

Die im obigen Screenshot dargestellte Ausgabe liefert folgende Informationen:

  • Die Tabelle guru99 wird mit den Attributen RAW=>true und VERSIONS=>1000 durchsucht.
  • Zeilen mit Spaltenfamilien und Werten anzeigen.
  • In der dritten Zeile werden die in der Spalte vorhandenen gelöschten Werte angezeigt.
  • Die Ausgabe ist zufällig; sie kann nicht in der gleichen Reihenfolge sein wie die Werte, die wir in die Tabelle eingefügt haben.

Cluster Replikationsbefehle

  • Diese Befehle funktionieren im Cluster-Setup-Modus von HBase.
  • Zum Hinzufügen und Entfernen von Peers zu einem Cluster sowie zum Starten und Stoppen der Replikation werden im Allgemeinen diese Befehle verwendet.
Befehl Funktionalität
add_peer Fügt einem Cluster Peers zur Replikation hinzu.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
Remove_Peer Stoppt den definierten Replikationsstream und löscht alle Metadateninformationen über den Peer.
hbase> remove_peer '1'
start_replication Startet alle Replikationsfunktionen neu.
hbase> start_replication
stop_replication Unterbindet sämtliche Replikationsfunktionen.
hbase>stop_replication

Häufig gestellte Fragen

Geben Sie „exit“ oder „quit“ ein und drücken Sie die Eingabetaste, um die interaktive HBase-Shell zu verlassen und zur Eingabeaufforderung des Betriebssystems zurückzukehren. Sie öffnen die Shell mit dem Befehl „hbase shell“. Weder „exit“ noch „quit“ beenden den HBase-Dienst; sie beenden lediglich die Shell-Sitzung.

Ja. Pipe-Befehle können nicht-interaktiv übergeben werden, beispielsweise mit `echo "list" | hbase shell`, oder eine gespeicherte Datei mit `hbase shell script.txt` ausgeführt werden. Da die Shell auf JRuby basiert, können auch Ruby-Logik und Schleifen in .rb-Skriptdateien eingebettet werden.

Die Shell ist eine interaktive JRuby-Eingabeaufforderung für schnelle manuelle Befehle und die Administration. Java Die API, die Connection, Admin und Table nutzt, dient Anwendungen, die Tabellen erstellen und Daten programmatisch lesen oder schreiben. Beide greifen auf denselben HBase-Cluster und dieselben Daten zu.

Der Fehler „Tabelle existiert bereits“ tritt auf, wenn beim Erstellen ein bereits vorhandener Name verwendet wird. Die Fehlermeldung „Tabelle nicht deaktiviert“ erscheint, wenn Sie eine Tabelle löschen oder ändern, ohne sie vorher zu deaktivieren. Führen Sie vor dem Löschen oder Ändern den Befehl `disable 'table'` aus und verwenden Sie `exists 'table'`, um den Namen vor dem Erstellen zu überprüfen.

Eine HBase-Spaltenfamilie speichert eine begrenzte Anzahl von zeitgestempelten Versionen pro Zelle, üblicherweise drei und in neueren Versionen eine. Die Anzahl wird beim Erstellen oder Ändern mit VERSIONS festgelegt, ältere Versionen können mit {VERSIONS => n} bei einem GET- oder SCAN-Befehl angefordert werden.

Eine Tabellenreferenzvariable ist ein Shell-Objekt, das von `g = get_table 'guru99'` zurückgegeben wird. Anschließend rufen Sie Methoden wie `g.put`, `g.get` oder `g.count` auf dieser Variable auf, anstatt den Tabellennamen erneut anzugeben. Es handelt sich um eine praktische JRuby-ähnliche Abkürzung in der HBase-Shell.

KI-gestützte Programmierassistenten und große Sprachmodelle generieren HBase-Shell-Befehle aus Anfragen in Klartext, erklären unbekannte Optionen wie Scanfilter oder TTL und helfen bei der Fehlersuche. Maschinelles Lernen analysiert zudem Clustermetriken, um die Replikation und die Regionsoptimierung zu steuern. Dennoch sollte jeder Befehl von einem Entwickler überprüft werden.

Ja. GitHub-Copilot Schlägt anhand eines kurzen Kommentars HBase-Shell-Befehle und JRuby-Skripte vor, einschließlich Beispielen für create, put, scan und alter. RevÜberprüfen Sie die Ausgabe auf den korrekten Tabellennamen, die Spaltenfamilien und die Syntax, z. B. VERSIONS, bevor Sie das Programm auf einem realen Cluster ausführen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: