Anslut till HiveServer2 med Beeline eller installera Beeline lokalt för att ansluta från din lokala
Apache Beeline är en Hive-klient som ingår i huvudnoderna i HDInsight-klustret. Den här artikeln beskriver hur du ansluter till HiveServer2 med beeline-klienten som är installerad i HDInsight-klustret över olika typer av anslutningar. Den beskriver också hur du installerar Beeline-klienten lokalt.
Typer av anslutningar
Från en SSH-session
När du ansluter från en SSH-session till en klusterhuvudnod kan du sedan ansluta till adressen på headnodehost
porten 10001
:
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
Via ett virtuellt Azure-nätverk
När du ansluter från en klient till HDInsight via ett virtuellt Azure-nätverk måste du ange det fullständigt kvalificerade domännamnet (FQDN) för en klusterhuvudnod. Eftersom den här anslutningen görs direkt till klusternoderna använder anslutningen port 10001
:
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'
Ersätt <headnode-FQDN>
med det fullständigt kvalificerade domännamnet för en klusterhuvudnod. Om du vill hitta det fullständigt kvalificerade domännamnet för en huvudnod använder du informationen i dokumentet Hanterad HDInsight med hjälp av Apache Ambari REST API-dokumentet .
Till HDInsight Enterprise Security Package-kluster (ESP) med Kerberos
När du ansluter från en klient till ett ESP-kluster (Enterprise Security Package) som är anslutet till Microsoft Entra Domain Services på en dator i samma område i klustret, måste du också ange domännamnet <AAD-Domain>
och namnet på ett domänanvändarkonto med behörighet att komma åt klustret <username>
:
kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>
Ersätt <username>
med namnet på ett konto på domänen med behörighet att komma åt klustret. Ersätt <AAD-DOMAIN>
med namnet på det Microsoft Entra-ID som klustret är anslutet till. Använd en versalsträng för <AAD-DOMAIN>
värdet, annars hittas inte autentiseringsuppgifterna. Sök efter /etc/krb5.conf
sfärnamnen om det behövs.
Så här hittar du JDBC-URL:en från Ambari:
Från en webbläsare går du till
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, därCLUSTERNAME
är namnet på klustret. Kontrollera att HiveServer2 körs.Använd Urklipp för att kopiera HiveServer2 JDBC-URL:en.
Över offentliga eller privata slutpunkter
När du ansluter till ett kluster med hjälp av offentliga eller privata slutpunkter måste du ange namnet på klusterinloggningskontot (standard admin
) och lösenordet. Du kan till exempel använda Beeline från ett klientsystem för att ansluta till clustername.azurehdinsight.net
adressen. Den här anslutningen görs via port 443
och krypteras med TLS/SSL.
Ersätt clustername
med namnet på HDInsight-klustret. Ersätt admin
med klusterinloggningskontot för klustret. För ESP-kluster använder du det fullständiga UPN(till exempel user@domain.com). Ersätt password
med lösenordet för klusterinloggningskontot.
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Eller för privat slutpunkt:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Privata slutpunkter pekar på en grundläggande lastbalanserare, som endast kan nås från de virtuella nätverken som är peer-kopplade i samma region. Mer information finns i begränsningar för global VNet-peering och lastbalanserare . Du kan använda curl
kommandot med -v
alternativet för att felsöka eventuella anslutningsproblem med offentliga eller privata slutpunkter innan du använder beeline.
Använda Beeline med Apache Spark
Apache Spark tillhandahåller en egen implementering av HiveServer2, som ibland kallas Spark Thrift-servern. Den här tjänsten använder Spark SQL för att lösa frågor i stället för Hive. Och kan ge bättre prestanda beroende på din fråga.
Via offentliga eller privata slutpunkter
Den anslutningssträng som används är något annorlunda. I stället för att innehålla httpPath=/hive2
använder httpPath/sparkhive2
den . Ersätt clustername
med namnet på HDInsight-klustret. Ersätt admin
med klusterinloggningskontot för klustret. Ersätt password
med lösenordet för klusterinloggningskontot.
Kommentar
För ESP-kluster ersätter du admin
med fullständigt UPN (till exempel user@domain.com).
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Eller för privat slutpunkt:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Privata slutpunkter pekar på en grundläggande lastbalanserare, som endast kan nås från de virtuella nätverken som är peer-kopplade i samma region. Mer information finns i begränsningar för global VNet-peering och lastbalanserare . Du kan använda curl
kommandot med -v
alternativet för att felsöka eventuella anslutningsproblem med offentliga eller privata slutpunkter innan du använder beeline.
Från klusterhuvudnoden eller i Azure Virtual Network med Apache Spark
När du ansluter direkt från klusterhuvudnoden, eller från en resurs i samma Virtuella Azure-nätverk som HDInsight-klustret, bör porten 10002
användas för Spark Thrift-servern i stället för 10001
. I följande exempel visas hur du ansluter direkt till huvudnoden:
/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'
Installera Beeline-klienten
Även om Beeline ingår på huvudnoderna kanske du vill installera den lokalt. Installationsstegen för en lokal dator baseras på en Windows-undersystem för Linux.
Uppdatera paketlistor. Ange följande kommando i bash-gränssnittet:
sudo apt-get update
Installera Java om det inte är installerat. Du kan kontrollera med
which java
kommandot .Om inget Java-paket har installerats anger du följande kommando:
sudo apt install openjdk-11-jre-headless
Öppna bashrc-filen (finns ofta i ~/.bashrc):
nano ~/.bashrc
.Ändra bashrc-filen. Lägg till följande rad i slutet av filen:
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Tryck sedan på Ctrl+X och sedan på Y och sedan på .
Ladda ned Hadoop- och Beeline-arkiv och ange följande kommandon:
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
Packa upp arkiven och ange följande kommandon:
tar -xvzf hadoop-2.7.3.tar.gz tar -xvzf apache-hive-1.2.1-bin.tar.gz
Ändra bashrc-filen ytterligare. Du måste identifiera sökvägen till var arkiven har packats upp. Om du använder Windows-undersystem för Linux, och du har följt stegen exakt, skulle din sökväg vara
/mnt/c/Users/user/
, däruser
är ditt användarnamn.Öppna filen:
nano ~/.bashrc
Ändra kommandona nedan med rätt sökväg och ange dem sedan i slutet av bashrc-filen:
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
Tryck sedan på Ctrl+X och sedan på Y och sedan på .
Stäng och öppna sedan bash-sessionen igen.
Testa anslutningen. Använd anslutningsformatet från Över offentliga eller privata slutpunkter ovan.
Nästa steg
- Exempel som använder Beeline-klienten med Apache Hive finns i Använda Apache Beeline med Apache Hive
- Mer allmän information om Hive i HDInsight finns i Använda Apache Hive med Apache Hadoop på HDInsight