Verbinden mit HiveServer2 über Beeline oder lokales Installieren von Beeline, um eine Verbindung von Ihrem lokalen Computer herzustellen
Apache Beeline ist ein Hive-Client, der auf den Hauptknoten des HDInsight-Clusters enthalten ist. In diesem Artikel wird beschrieben, wie Sie mit dem auf Ihrem HDInsight-Cluster installierten Beeline-Client eine Verbindung mit HiveServer2 über verschiedene Verbindungstypen herstellen können. Außerdem wird erläutert, wie Sie den Beeline-Client lokal installieren.
Arten von Verbindungen
Über eine SSH-Sitzung
Wenn Sie eine Verbindung aus einer SSH-Sitzung mit einem Clusterhauptknoten herstellen, können Sie anschließend eine Verbindung mit der headnodehost
-Adresse an Port 10001
herstellen:
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
Über ein virtuelles Azure-Netzwerk
Wenn Sie eine Verbindung von einem Client zu HDInsight über ein virtuelles Azure-Netzwerk herstellen, müssen Sie den vollqualifizierten Domänennamen (FQDN) eines Clusterhauptknotens angeben. Da diese Verbindung direkt mit den Clusterknoten hergestellt wird, wird für die Verbindung Port 10001
verwendet:
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'
Ersetzen Sie <headnode-FQDN>
durch den vollqualifizierten Domänennamen eines Clusterhauptknotens. Verwenden Sie die Informationen im Dokument Verwalten von HDInsight mithilfe der Apache Ambari-REST-API, um den vollqualifizierten Domänennamen eines Hauptknotens zu ermitteln.
Mit einem Cluster des HDInsight-Enterprise-Sicherheitspakets (ESP) mit Kerberos
Wenn Sie eine Verbindung vom Client mit einem ESP-Cluster (Enterprise-Sicherheitspaket), der mit Microsoft Entra Domain Services auf einem Computer im selben Bereich des Clusters verknüpft ist, herstellen, müssen Sie auch den Domänennamen <AAD-Domain>
und den Namen eines Domänenbenutzerkontos mit Berechtigungen für den Zugriff auf den Cluster <username>
angeben:
kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>
Ersetzen Sie <username>
durch den Namen eines Kontos in der Domäne mit der Berechtigung für den Zugriff auf den Cluster. Ersetzen Sie <AAD-DOMAIN>
durch den Namen des Microsoft Entra ID, mit dem der Cluster verbunden ist. Verwenden Sie eine Zeichenfolge aus Großbuchstaben für den Wert <AAD-DOMAIN>
, da die Anmeldeinformationen sonst nicht gefunden werden. Überprüfen Sie /etc/krb5.conf
bei Bedarf auf die Bereichsnamen.
So finden Sie die JDBC-URL über Ambari:
Navigieren Sie in einem Webbrowser zu
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, wobeiCLUSTERNAME
der Name Ihres Clusters ist. Stellen Sie sicher, dass HiveServer2 ausgeführt wird.Verwenden Sie die Zwischenablage zum Kopieren der JDBC-URL von HiveServer2.
Über öffentliche oder private Endpunkte
Wenn Sie eine Verbindung zu einem Cluster über öffentliche oder private Endpunkte herstellen, müssen Sie den Kontonamen für die Clusteranmeldung (Standard ist admin
) und das Kennwort angeben. Beispiel: Verwenden von Beeline von einem Clientsystem zum Herstellen einer Verbindung mit der clustername.azurehdinsight.net
-Adresse. Diese Verbindung erfolgt über Port 443
und wird mithilfe von TLS/SSL verschlüsselt.
Ersetzen Sie clustername
durch den Namen Ihres HDInsight-Clusters. Ersetzen Sie admin
durch das Anmeldekonto für Ihren Cluster. Verwenden Sie bei ESP-Clustern den vollständigen Benutzerprinzipalnamen (z. B. user@domain.com). Ersetzen Sie password
durch das Kennwort des Anmeldekontos für den Cluster.
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Oder beim privaten Endpunkt:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Private Endpunkte zeigen auf einen Load Balancer im Tarif „Basic“, auf den nur über die VNETs zugegriffen werden kann, die mittels Peering in derselben Region verknüpft sind. Weitere Informationen finden Sie unter den Einschränkungen im Zusammenhang mit globalem VNET-Peering und Load Balancern. Sie können den curl
-Befehl mit der Option -v
verwenden, um Konnektivitätsprobleme mit öffentlichen oder privaten Endpunkten vor der Verwendung von Beeline zu beheben.
Verwenden von Beeline mit Apache Spark
Apache Spark stellt eine eigene Implementierung von HiveServer2 bereit, die manchmal als Spark Thrift-Server bezeichnet wird. Dieser Dienst verwendet Spark SQL anstelle von Hive zum Auflösen von Abfragen. Die Leistung kann abhängig von Ihrer Abfrage besser ausfallen.
Durch öffentliche oder private Endpunkte
Die verwendete Verbindungszeichenfolge ist etwas anders. Sie enthält httpPath/sparkhive2
anstelle von httpPath=/hive2
. Ersetzen Sie clustername
durch den Namen Ihres HDInsight-Clusters. Ersetzen Sie admin
durch das Anmeldekonto für Ihren Cluster. Ersetzen Sie password
durch das Kennwort des Anmeldekontos für den Cluster.
Hinweis
Ersetzen Sie bei ESP-Clustern admin
durch den vollständigen Benutzerprinzipalnamen (z. B. user@domain.com).
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Oder beim privaten Endpunkt:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Private Endpunkte zeigen auf einen Load Balancer im Tarif „Basic“, auf den nur über die VNETs zugegriffen werden kann, die mittels Peering in derselben Region verknüpft sind. Weitere Informationen finden Sie unter den Einschränkungen im Zusammenhang mit globalem VNET-Peering und Load Balancern. Sie können den curl
-Befehl mit der Option -v
verwenden, um Konnektivitätsprobleme mit öffentlichen oder privaten Endpunkten vor der Verwendung von Beeline zu beheben.
Vom Clusterhauptknoten oder in Azure Virtual Network mit Apache Spark
Wenn Sie direkt vom Clusterhauptknoten oder von einer Ressource, die sich in der gleichen Azure Virtual Network-Instanz wie der HDInsight-Cluster befindet, eine Verbindung herstellen, muss für den Spark Thrift-Server Port 10002
anstelle von Port 10001
verwendet werden. Das folgende Beispiel zeigt, wie eine direkte Verbindung mit dem Hauptknoten hergestellt wird:
/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'
Installieren des Beeline-Clients
Obwohl Beeline auf den Hauptknoten enthalten ist, können Sie es lokal installieren. Die Schritte zum Installieren von Beeline auf einem lokalen Computer basieren auf einem Windows-Subsystem für Linux.
Aktualisieren Sie die Paketlisten. Geben Sie in der Bash-Shell den folgenden Befehl ein:
sudo apt-get update
Installieren Sie Java, wenn dies noch nicht geschehen ist. Das können Sie mit dem Befehl
which java
überprüfen.Wenn kein Java-Paket installiert ist, geben Sie den folgenden Befehl ein:
sudo apt install openjdk-11-jre-headless
Öffnen Sie die BASHRC-Datei (häufig enthalten in „~/.bashrc“):
nano ~/.bashrc
.Ergänzen Sie die BASHRC-Datei. Fügen Sie am Ende der Datei die folgende Zeile hinzu:
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Drücken Sie STRG+X, dann Y und schließlich die EINGABETASTE.
Geben Sie zum Herunterladen der Hadoop- und Beeline-Archive die folgenden Befehle ein:
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz wget https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
Geben Sie zum Entpacken der Archive die folgenden Befehle ein:
tar -xvzf hadoop-2.7.3.tar.gz tar -xvzf apache-hive-1.2.1-bin.tar.gz
Nehmen Sie weitere Änderungen an der BASHRC-Datei vor. Sie müssen den Pfad angeben, in den die Archive entpackt wurden. Wenn Sie das Windows-Subsystem für Linux verwenden und die Schritte genau befolgt haben, lautet der Pfad
/mnt/c/Users/user/
, wobeiuser
für Ihren Benutzernamen steht.Öffnen Sie die Datei mit
nano ~/.bashrc
.Ändern Sie die folgenden Befehle mit dem entsprechenden Pfad, und geben Sie diese dann am Ende der BASHRC-Datei ein:
export HADOOP_HOME=/path_where_the_archives_were_unpacked/hadoop-2.7.3 export HIVE_HOME=/path_where_the_archives_were_unpacked/apache-hive-1.2.1-bin PATH=$PATH:$HIVE_HOME/bin
Drücken Sie STRG+X, dann Y und schließlich die EINGABETASTE.
Schließen Sie die Bash-Sitzung, und öffnen Sie sie erneut.
Testen Sie die Verbindung. Verwenden Sie das Verbindungsformat aus dem Abschnitt Über öffentliche oder private Endpunkte weiter oben.
Nächste Schritte
- Beispiele für die Verwendung des Beeline-Clients mit Apache Hive finden Sie unter Verwenden von Apache Beeline mit Apache Hive
- Allgemeinere Informationen zu Hive in HDInsight finden Sie unter Verwenden von Apache Hive mit Apache Hadoop in HDInsight.