Verbinding maken met Behulp van Beeline naar HiveServer2 of installeer Beeline lokaal om verbinding te maken vanaf uw lokale locatie
Apache Beeline is een Hive-client die is opgenomen op de hoofdknooppunten van uw HDInsight-cluster. In dit artikel wordt beschreven hoe u verbinding maakt met HiveServer2 met behulp van de Beeline-client die is geïnstalleerd op uw HDInsight-cluster in verschillende typen verbindingen. Er wordt ook besproken hoe u de Beeline-client lokaal installeert.
Typen verbindingen
Vanuit een SSH-sessie
Wanneer u vanuit een SSH-sessie verbinding maakt met een hoofdknooppunt van een cluster, kunt u vervolgens verbinding maken met het headnodehost
adres op de poort 10001
:
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
Via een virtueel Azure-netwerk
Wanneer u vanuit een client verbinding maakt met HDInsight via een virtueel Azure-netwerk, moet u de FQDN (Fully Qualified Domain Name) van een clusterhoofdknooppunt opgeven. Omdat deze verbinding rechtstreeks met de clusterknooppunten wordt gemaakt, gebruikt de verbinding poort 10001
:
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'
Vervang door <headnode-FQDN>
de volledig gekwalificeerde domeinnaam van een clusterhoofdknooppunt. Als u de volledig gekwalificeerde domeinnaam van een hoofdknooppunt wilt vinden, gebruikt u de informatie in HDInsight beheren met behulp van het Apache Ambari REST API-document .
Een HDInsight Enterprise Security Package-cluster (ESP) met behulp van Kerberos
Wanneer u vanaf een client verbinding maakt met een ESP-cluster (Enterprise Security Package) dat is gekoppeld aan Microsoft Entra Domain Services op een computer in hetzelfde domein van het cluster, moet u ook de domeinnaam en de naam <AAD-Domain>
van een domeingebruikersaccount opgeven met machtigingen voor toegang tot het cluster <username>
:
kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>
Vervang <username>
door de naam van een account in het domein door machtigingen voor toegang tot het cluster. Vervang <AAD-DOMAIN>
door de naam van de Microsoft Entra-id waaraan het cluster is gekoppeld. Gebruik een tekenreeks in hoofdletters voor de <AAD-DOMAIN>
waarde, anders wordt de referentie niet gevonden. Controleer zo nodig op /etc/krb5.conf
de realmnamen.
De JDBC-URL zoeken vanuit Ambari:
Navigeer in een webbrowser naar
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, waarbijCLUSTERNAME
de naam van uw cluster is. Zorg ervoor dat HiveServer2 wordt uitgevoerd.Gebruik klembord om de JDBC-URL van HiveServer2 te kopiëren.
Over openbare of privé-eindpunten
Wanneer u verbinding maakt met een cluster met behulp van de openbare of privé-eindpunten, moet u de naam van het clusteraanmeldingsaccount (standaard admin
) en wachtwoord opgeven. Gebruik bijvoorbeeld Beeline vanuit een clientsysteem om verbinding te maken met het clustername.azurehdinsight.net
adres. Deze verbinding wordt gemaakt via poort 443
en wordt versleuteld met BEHULP van TLS/SSL.
Vervang clustername
door de naam van uw HDInsight-cluster. Vervang admin
door het aanmeldingsaccount van het cluster voor uw cluster. Gebruik voor ESP-clusters de volledige UPN (bijvoorbeeld user@domain.com). Vervang password
door het wachtwoord voor het aanmeldingsaccount van het cluster.
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
of voor privé-eindpunt:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Privé-eindpunten verwijzen naar een eenvoudige load balancer, die alleen toegankelijk is vanuit de VNET's die zijn gekoppeld in dezelfde regio. Zie beperkingen voor globale VNet-peering en load balancers voor meer informatie. U kunt de opdracht -v
met de curl
optie gebruiken om verbindingsproblemen met openbare of privé-eindpunten op te lossen voordat u beeline gebruikt.
Beeline gebruiken met Apache Spark
Apache Spark biedt een eigen implementatie van HiveServer2, die ook wel de Spark Thrift-server wordt genoemd. Deze service maakt gebruik van Spark SQL om query's op te lossen in plaats van Hive. En kan betere prestaties bieden, afhankelijk van uw query.
Via openbare of privé-eindpunten
De gebruikte verbindingsreeks is iets anders. In plaats van het httpPath/sparkhive2
te gebruikenhttpPath=/hive2
. Vervang clustername
door de naam van uw HDInsight-cluster. Vervang admin
door het aanmeldingsaccount van het cluster voor uw cluster. Vervang password
door het wachtwoord voor het aanmeldingsaccount van het cluster.
Notitie
Vervang voor ESP-clusters door admin
volledige UPN (bijvoorbeeld user@domain.com).
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
of voor privé-eindpunt:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Privé-eindpunten verwijzen naar een eenvoudige load balancer, die alleen toegankelijk is vanuit de VNET's die zijn gekoppeld in dezelfde regio. Zie beperkingen voor globale VNet-peering en load balancers voor meer informatie. U kunt de opdracht -v
met de curl
optie gebruiken om verbindingsproblemen met openbare of privé-eindpunten op te lossen voordat u beeline gebruikt.
Vanuit het hoofdknooppunt van het cluster of in azure Virtual Network met Apache Spark
Wanneer u rechtstreeks verbinding maakt vanaf het hoofdknooppunt van het cluster of vanuit een resource in hetzelfde Virtuele Azure-netwerk als het HDInsight-cluster, moet de poort 10002
worden gebruikt voor de Spark Thrift-server in plaats van 10001
. In het volgende voorbeeld ziet u hoe u rechtstreeks verbinding maakt met het hoofdknooppunt:
/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'
Beeline-client installeren
Hoewel Beeline is opgenomen op de hoofdknooppunten, kunt u deze lokaal installeren. De installatiestappen voor een lokale computer zijn gebaseerd op een Windows-subsysteem voor Linux.
Pakketlijsten bijwerken. Voer de volgende opdracht in uw bash-shell in:
sudo apt-get update
Installeer Java als dit niet is geïnstalleerd. U kunt de opdracht controleren
which java
.Als er geen Java-pakket is geïnstalleerd, voert u de volgende opdracht in:
sudo apt install openjdk-11-jre-headless
Open het bashrc-bestand (vaak gevonden in ~/.bashrc):
nano ~/.bashrc
.Wijzig het bashrc-bestand. Voeg de volgende regel toe aan het einde van het bestand:
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Druk vervolgens op Ctrl+X en vervolgens op Y en vervolgens op Enter.
Download Hadoop- en Beeline-archieven en voer de volgende opdrachten in:
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
Pak de archieven uit, voer de volgende opdrachten in:
tar -xvzf hadoop-2.7.3.tar.gz tar -xvzf apache-hive-1.2.1-bin.tar.gz
Wijzig het bashrc-bestand verder. U moet het pad identificeren waar de archieven zijn uitgepakt. Als u de Windows-subsysteem voor Linux gebruikt en u de stappen precies hebt gevolgd, zou uw pad zijn
/mnt/c/Users/user/
, waaruser
is uw gebruikersnaam.Open het bestand:
nano ~/.bashrc
Wijzig de onderstaande opdrachten met het juiste pad en voer deze vervolgens in aan het einde van het bashrc-bestand:
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
Druk vervolgens op Ctrl+X en vervolgens op Y en vervolgens op Enter.
Sluit de bash-sessie en open deze opnieuw.
Test uw verbinding. Gebruik de verbindingsindeling van boven openbare of privé-eindpunten.
Volgende stappen
- Zie Apache Beeline gebruiken met Apache Hive voor voorbeelden van het gebruik van de Beeline-client met Apache Hive
- Zie Apache Hive gebruiken met Apache Hadoop in HDInsight voor meer algemene informatie over Hive in HDInsight