HBase Shell für Cloud Bigtable installieren

HBase Shell ist ein Befehlszeilentool für administrative Aufgaben wie beispielsweise das Erstellen und Löschen von Tabellen. Mit dem Cloud Bigtable HBase-Client für Java können Sie HBase Shell mit Cloud Bigtable verbinden.

Diese Seite zeigt, wie HBase Shell zusammen mit dem Cloud Bigtable HBase-Client für Java auf einer Compute Engine-Instanz oder auf Ihrem eigenen Computer installiert wird. Sie müssen dabei keine zusätzlichen HBase-Abhängigkeiten, wie beispielsweise Apache ZooKeeper, installieren, da der Cloud Bigtable-HBase-Client für Java diese nicht benötigt.

Sie können die HBase-Shell in Google Cloud Shell ausführen. Eine Anleitung dazu finden Sie unter Kurzanleitung für HBase Shell.

Hinweis

Vor dem Beginn sollten Sie folgende Schritte durchführen:

Java installieren

Für die Verwendung von HBase Shell mit dem Cloud Bigtable HBase-Client für Java müssen Sie die Java 8-Laufzeitumgebung installieren. Andere Versionen von Java werden nicht unterstützt.

Unter Debian GNU/Linux oder Ubuntu können Sie Java 8 JDK installieren. Dazu führen Sie die folgenden Befehle aus:

sudo apt-get update
sudo apt-get install openjdk-8-jdk-headless

Bei anderen Betriebssystemen können Sie das Java JDK herunterladen und installieren.

Maven installieren

Zum Ausführen der HBase-Shell muss Apache Maven installiert sein. Die HBase-Shell nutzt Maven zum Herunterladen der erforderlichen Abhängigkeiten.

Unter Debian GNU/Linux oder Ubuntu können Sie Maven installieren, indem Sie folgende Befehle ausführen:

sudo apt-get update
sudo apt-get install maven

Unter macOS können Sie Maven mit Homebrew installieren:

brew install maven

Beachten Sie für andere Betriebssysteme die Anleitung auf der Maven-Website.

Anmeldedaten erhalten

Wenn Sie die HBase-Shell in Ihrem eigenen System installieren, benötigen Sie Nutzeranmeldedaten für Ihre Google Cloud Platform-Ressourcen.

Um Anmeldedaten zu erhalten, führen Sie folgenden Befehl aus:

gcloud auth application-default login

Dieser Befehl öffnet Ihren Webbrowser. Wählen Sie Ihr Google-Konto aus, wenn Sie dazu aufgefordert werden, und klicken Sie dann auf Zulassen, um Ihr Konto zu autorisieren.

HBase Shell einrichten

Benötigte Dateien herunterladen

Klonen Sie über die Befehlszeile das GitHub-Repository, das die HBase-Shell-Kurzanleitung enthält:

git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Das Repository wird in das Verzeichnis cloud-bigtable-examples geklont.

Umgebungsvariable JAVA_HOME festlegen

Die Umgebungsvariable JAVA_HOME Ihrer Shell sollte auf den Ort geändert werden, an dem sich Ihre Java-Laufzeitumgebung befindet.

So ermitteln Sie den aktuellen Wert von JAVA_HOME:

echo ${JAVA_HOME}

Sollte dieser Befehl keine Ausgabe produzieren, ist die Variable nicht festgelegt.

So legen Sie den Wert auf Debian, GNU/Linux oder Ubuntu fest:

export JAVA_HOME=$(update-alternatives --list java | tail -1 | sed -E 's/\/bin\/java//')

Ein typischer Wert unter Debian, GNU/Linux oder Ubuntu ist /usr/lib/jvm/java-8-openjdk-amd64/jre.

So legen Sie den Wert unter macOS fest (erfordert Befehlszeilentools von Xcode):

export JAVA_HOME=$(/usr/libexec/java_home)

Ein typischer Wert unter macOS ist /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home.

Nachdem Sie den Wert von JAVA_HOME festgelegt haben, führen Sie den folgenden Befehl aus, damit sich der Wert auf die entsprechende Version von Java bezieht:

${JAVA_HOME}/bin/java -version

Mit einer Cloud Bigtable-Instanz verbinden

Sie können mit HBase Shell eine Verbindung zu Ihrer Cloud Bigtable-Instanz herstellen, Informationen über vorhandene Tabellen abrufen und neue Tabellen erstellen.

Führen Sie zum Starten der HBase-Shell die folgenden Befehle in dem Verzeichnis aus, in das Sie das GitHub-Repository cloud-bigtable-examples geklont haben:

cd quickstart
./quickstart.sh

Wenn für Ihr Projekt nur eine Cloud Bigtable-Instanz vorhanden ist, stellt HBase Shell automatisch eine Verbindung zu dieser Instanz her. Wenn für Ihr Projekt mehrere Cloud Bigtable-Instanzen vorgesehen sind, wird in HBase Shell eine Liste von Instanz-IDs angezeigt. Geben Sie die Nummer neben Ihrer Instanz-ID ein und drücken Sie die Eingabetaste.

Wenn die HBase-Shell die Verbindung zu Ihrer Instanz hergestellt hat, zeigt sie eine Reihe von Protokollmeldungen an, was normal ist. Dann wird die Shell-Eingabeaufforderung angezeigt:

hbase(main):001:0>

Jetzt, da Sie die HBase-Shell gestartet haben, versuchen Sie, die folgenden Befehle auszuführen:

  • Geben Sie zum Auflisten Ihrer Tabellen list ein und drücken Sie die Eingabetaste. Haben Sie noch keine Tabellen erstellt, wird HBase eine Nachricht ähnlich der folgenden anzeigen:

    TABLE
    0 row(s) in 1.3580 seconds
    
    => []
    
  • Verwenden Sie zum Erstellen einer Tabelle den Befehl create. So erstellen Sie beispielsweise eine Tabelle namens my-table mit einer Spaltenfamilie namens cf1:

    create 'my-table', 'cf1'
    

    Shell zeigt eine Nachricht ähnlich der folgenden an:

    0 row(s) in 1.5210 seconds
    
    => Hbase::Table - my-table
    
  • Verwenden Sie den Befehl put, um Daten in eine Tabelle einzufügen. Wenn Sie beispielsweise den Wert test-value in die Zeile r1 einfügen möchten, verwenden Sie die Spaltenfamilie cf1 und den Spaltenqualifizierer c1:

    put 'my-table', 'r1', 'cf1:c1', 'test-value'
    

    Anschließend können Sie mit dem Befehl scan die Tabelle scannen und die neu eingefügten Daten lesen:

    scan 'my-table'
    

    Shell zeigt in etwa Folgendes an:

    ROW      COLUMN+CELL
     r1      column=cf1:c1, timestamp=1430687836046, value=test-value
    1 row(s) in 0.6260 seconds
    
  • Zum Löschen einer Tabelle deaktivieren Sie die Tabelle mit dem Befehl disable, gefolgt vom Befehl drop. So löschen Sie beispielsweise die Tabelle my-table:

    disable 'my-table'
    drop 'my-table'
    
  • Geben Sie zum Beenden der HBase-Shell exit ein und drücken Sie die Eingabetaste.

Während HBase Shell läuft, können Sie help eingeben, um Tipps zur Nutzung abzurufen. Weitere Informationen finden Sie in der HBase-Dokumentation.