Share via


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 headnodehost adressen på 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 Hantera 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:

  1. Från en webbläsare går du till https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary, där CLUSTERNAME är namnet på klustret. Kontrollera att HiveServer2 körs.

  2. 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 443och 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/sparkhive2den . 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 ska 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.

  1. Uppdatera paketlistor. Ange följande kommando i bash-gränssnittet:

    sudo apt-get update
    
  2. Installera Java om det inte är installerat. Du kan kontrollera med which java kommandot .

    1. Om inget Java-paket har installerats anger du följande kommando:

      sudo apt install openjdk-11-jre-headless
      
    2. Öppna bashrc-filen (finns ofta i ~/.bashrc): nano ~/.bashrc.

    3. Ä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å .

  3. 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
    
  4. 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
    
  5. Ä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är user är ditt användarnamn.

    1. Öppna filen: nano ~/.bashrc

    2. Ä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
      
    3. Tryck sedan på Ctrl+X och sedan på Y och sedan på .

  6. Stäng och öppna sedan bash-sessionen igen.

  7. Testa anslutningen. Använd anslutningsformatet från Över offentliga eller privata slutpunkter ovan.

Nästa steg