Schnellstart: Abfragen von Apache HBase in Azure HDInsight mit Apache Phoenix
In diesem Schnellstart erfahren Sie, wie Sie mit Apache Phoenix HBase-Abfragen in Azure HDInsight ausführen können. Apache Phoenix ist eine SQL-Abfrage-Engine für Apache HBase. Der Zugriff erfolgt als JDBC-Treiber. So können Sie HBase-Tabellen mit SQL abfragen und verwalten. SQLLine ist ein Befehlszeilenprogramm zum Ausführen von SQL.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Voraussetzungen
Ein Apache HBase-Cluster. Weitere Informationen zum Erstellen eines HDInsight-Clusters finden Sie unter Erstellen von Clustern. Stellen Sie sicher, dass Sie den Clustertyp HBase auswählen.
Einen SSH-Client. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit HDInsight (Hadoop) per SSH.
Identifizieren eines ZooKeeper-Knotens
Beim Herstellen der Verbindung mit einem HBase-Cluster müssen Sie eine Verbindung mit einem der Apache ZooKeeper-Knoten herstellen. Jeder HDInsight-Cluster verfügt über drei ZooKeeper-Knoten. Mit cURL kann ein ZooKeeper-Knoten schnell identifiziert werden. Bearbeiten Sie den folgenden cURL-Befehl, indem Sie PASSWORD
und CLUSTERNAME
durch die entsprechenden Werte ersetzen, und geben Sie den Befehl dann an einer Eingabeaufforderung ein:
curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER
Ein Teil der Ausgabe ähnelt der folgenden:
{
"href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
"HostRoles" : {
"cluster_name" : "myCluster",
"component_name" : "ZOOKEEPER_SERVER",
"host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
}
Notieren Sie den Wert für host_name
, den Sie später benötigen.
Erstellen einer Tabelle und Bearbeiten von Daten
Sie können SSH verwenden, um eine Verbindung mit HBase-Clustern herzustellen, und dann mithilfe von Apache Phoenix HBase-Tabellen erstellen, Daten einfügen und Daten abfragen.
Verwenden Sie zum Herstellen der Verbindung mit Ihrem HBase-Cluster
ssh
. Bearbeiten Sie den unten angegebenen Befehl, indem SieCLUSTERNAME
durch den Namen Ihres Clusters ersetzen, und geben Sie den Befehl dann ein:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Wechseln Sie in das Verzeichnis des Phoenix-Clients. Geben Sie den folgenden Befehl ein:
cd /usr/hdp/current/phoenix-client/bin
Starten Sie SQLLine. Bearbeiten Sie den unten angegebenen Befehl, indem Sie
ZOOKEEPER
durch den weiter oben identifizierten ZooKeeper-Knoten ersetzen, und geben Sie den Befehl dann ein:./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
Erstellen Sie eine HBase-Tabelle. Geben Sie den folgenden Befehl ein:
CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
Verwenden Sie den SQLLine-Befehl
!tables
, um alle Tabellen in HBase aufzulisten. Geben Sie den folgenden Befehl ein:!tables
Fügen Sie Werte in die Tabelle ein. Geben Sie den folgenden Befehl ein:
UPSERT INTO Company VALUES(1, 'Microsoft'); UPSERT INTO Company VALUES(2, 'Apache');
Fragen Sie die Tabelle ab. Geben Sie den folgenden Befehl ein:
SELECT * FROM Company;
Löschen Sie einen Datensatz. Geben Sie den folgenden Befehl ein:
DELETE FROM Company WHERE COMPANY_ID=1;
Löschen Sie die Tabelle. Geben Sie den folgenden Befehl ein:
DROP TABLE Company;
Verwenden Sie den SQLLine-Befehl
!quit
, um SQLLine zu beenden. Geben Sie den folgenden Befehl ein:!quit
Bereinigen von Ressourcen
Nachdem Sie den Schnellstart abgeschlossen haben, können Sie den Cluster löschen. Mit HDInsight werden Ihre Daten im Azure-Speicher gespeichert, sodass Sie einen Cluster problemlos löschen können, wenn er nicht verwendet wird. Für einen HDInsight-Cluster fallen auch dann Gebühren an, wenn er nicht verwendet wird. Da die Gebühren für den Cluster erheblich höher sind als die Kosten für den Speicher, ist es sinnvoll, nicht verwendete Cluster zu löschen.
Informationen zum Löschen eines Clusters finden Sie unter Löschen eines HDInsight-Clusters mit Ihrem Browser, PowerShell oder der Azure CLI.
Nächste Schritte
In diesem Schnellstart haben Sie erfahren, wie Sie mit Apache Phoenix HBase-Abfragen in Azure HDInsight ausführen. Weitere Informationen zu Apache Phoenix finden Sie im nächsten Artikel, der eine ausführlichere Untersuchung bietet.