Delen via


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:

  1. Navigeer in een webbrowser naar https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary, waarbij CLUSTERNAME de naam van uw cluster is. Zorg ervoor dat HiveServer2 wordt uitgevoerd.

  2. 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 443en 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/sparkhive2te 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.

  1. Pakketlijsten bijwerken. Voer de volgende opdracht in uw bash-shell in:

    sudo apt-get update
    
  2. Installeer Java als dit niet is geïnstalleerd. U kunt de opdracht controleren which java .

    1. Als er geen Java-pakket is geïnstalleerd, voert u de volgende opdracht in:

      sudo apt install openjdk-11-jre-headless
      
    2. Open het bashrc-bestand (vaak gevonden in ~/.bashrc): nano ~/.bashrc.

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

  3. 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
    
  4. 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
    
  5. 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/, waar user is uw gebruikersnaam.

    1. Open het bestand: nano ~/.bashrc

    2. 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
      
    3. Druk vervolgens op Ctrl+X en vervolgens op Y en vervolgens op Enter.

  6. Sluit de bash-sessie en open deze opnieuw.

  7. Test uw verbinding. Gebruik de verbindingsindeling van boven openbare of privé-eindpunten.

Volgende stappen