Udostępnij za pośrednictwem


Połączenie do serwera HiveServer2 przy użyciu usługi Beeline lub zainstaluj lokalnie usługę Beeline w celu nawiązania połączenia z lokalnego

Apache Beeline to klient programu Hive dołączony do węzłów głównych klastra usługi HDInsight. W tym artykule opisano sposób nawiązywania połączenia z serwerem HiveServer2 przy użyciu klienta Beeline zainstalowanego w klastrze usługi HDInsight w różnych typach połączeń. W tym artykule omówiono również sposób lokalnego instalowania klienta usługi Beeline.

Typy połączeń

Z sesji SSH

Podczas nawiązywania połączenia z sesji SSH z węzłem głównym klastra można nawiązać headnodehost połączenie z adresem na porcie 10001:

beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'

Za pośrednictwem sieci wirtualnej platformy Azure

Podczas nawiązywania połączenia z klienta z usługą HDInsight za pośrednictwem sieci wirtualnej platformy Azure należy podać w pełni kwalifikowaną nazwę domeny (FQDN) węzła głównego klastra. Ponieważ to połączenie jest wykonywane bezpośrednio z węzłami klastra, połączenie używa portu 10001:

beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'

Zastąp <headnode-FQDN> element w pełni kwalifikowaną nazwą domeny węzła głównego klastra. Aby znaleźć w pełni kwalifikowaną nazwę domeny węzła głównego, skorzystaj z informacji w dokumencie Manage HDInsight using the Apache Ambari REST API (Zarządzanie usługą HDInsight przy użyciu interfejsu API REST apache Ambari).

Do klastra pakietu ENTERPRISE Security usługi HDInsight (ESP) przy użyciu protokołu Kerberos

Podczas nawiązywania połączenia z klienta z klastrem Pakietu Enterprise Security (ESP) przyłączonego do usług Microsoft Entra Domain Services na maszynie w tym samym obszarze klastra należy również określić nazwę domeny i nazwę <AAD-Domain> konta użytkownika domeny z uprawnieniami dostępu do klastra <username>:

kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>

Zastąp <username> ciąg nazwą konta w domenie z uprawnieniami dostępu do klastra. Zastąp <AAD-DOMAIN> ciąg nazwą identyfikatora Entra firmy Microsoft, do którego jest przyłączony klaster. Użyj wielkich liter dla <AAD-DOMAIN> wartości. W przeciwnym razie poświadczenie nie zostanie znalezione. W razie potrzeby sprawdź /etc/krb5.conf nazwy obszaru.

Aby znaleźć adres URL JDBC z systemu Ambari:

  1. W przeglądarce internetowej przejdź do https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summarylokalizacji , gdzie CLUSTERNAME jest nazwą klastra. Upewnij się, że serwer HiveServer2 jest uruchomiony.

  2. Użyj schowka, aby skopiować adres URL JDBC serwera HiveServer2.

Za pośrednictwem publicznych lub prywatnych punktów końcowych

Podczas nawiązywania połączenia z klastrem przy użyciu publicznych lub prywatnych punktów końcowych należy podać nazwę konta logowania klastra (domyślną admin) i hasło. Na przykład użycie narzędzia Beeline z systemu klienckiego w celu nawiązania połączenia z clustername.azurehdinsight.net adresem. To połączenie odbywa się za pośrednictwem portu 443i jest szyfrowane przy użyciu protokołu TLS/SSL.

Element clustername należy zastąpić nazwą klastra usługi HDInsight. Zastąp admin element kontem logowania klastra dla klastra. W przypadku klastrów ESP użyj pełnej nazwy UPN (na przykład user@domain.com). Zastąp password ciąg hasłem konta logowania klastra.

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

lub dla prywatnego punktu końcowego:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

Prywatne punkty końcowe wskazują podstawowy moduł równoważenia obciążenia, do którego można uzyskać dostęp tylko z sieci wirtualnych połączonych równorzędnie w tym samym regionie. Aby uzyskać więcej informacji, zobacz ograniczenia dotyczące globalnych wirtualnych sieci równorzędnych i modułów równoważenia obciążenia. Możesz użyć curl polecenia z opcją , aby rozwiązać problemy z -v łącznością z publicznymi lub prywatnymi punktami końcowymi przed użyciem usługi beeline.

Korzystanie z rozwiązania Beeline z platformą Apache Spark

Platforma Apache Spark udostępnia własną implementację serwera HiveServer2, który jest czasami nazywany serwerem Spark Thrift. Ta usługa używa usługi Spark SQL do rozwiązywania zapytań zamiast programu Hive. I może zapewnić lepszą wydajność w zależności od zapytania.

Za pośrednictwem publicznych lub prywatnych punktów końcowych

Używany parametry połączenia jest nieco inny. Zamiast zawierać httpPath=/hive2 używa elementu httpPath/sparkhive2. Element clustername należy zastąpić nazwą klastra usługi HDInsight. Zastąp admin element kontem logowania klastra dla klastra. Zastąp password ciąg hasłem konta logowania klastra.

Uwaga

W przypadku klastrów ESP zastąp admin pełną nazwą UPN (na przykład user@domain.com).

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

lub dla prywatnego punktu końcowego:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

Prywatne punkty końcowe wskazują podstawowy moduł równoważenia obciążenia, do którego można uzyskać dostęp tylko z sieci wirtualnych połączonych równorzędnie w tym samym regionie. Aby uzyskać więcej informacji, zobacz ograniczenia dotyczące globalnych wirtualnych sieci równorzędnych i modułów równoważenia obciążenia. Możesz użyć curl polecenia z opcją , aby rozwiązać problemy z -v łącznością z publicznymi lub prywatnymi punktami końcowymi przed użyciem usługi beeline.

Z węzła głównego klastra lub wewnątrz usługi Azure Virtual Network za pomocą platformy Apache Spark

Podczas nawiązywania połączenia bezpośrednio z węzła głównego klastra lub z zasobu w tej samej sieci wirtualnej platformy Azure co klaster usługi HDInsight należy użyć portu 10002 dla serwera Spark Thrift zamiast 10001. W poniższym przykładzie pokazano, jak połączyć się bezpośrednio z węzłem głównym:

/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'

Instalowanie klienta usługi Beeline

Mimo że usługa Beeline jest dołączona do węzłów głównych, warto zainstalować ją lokalnie. Kroki instalacji maszyny lokalnej są oparte na Podsystem Windows dla systemu Linux.

  1. Aktualizowanie list pakietów. Wprowadź następujące polecenie w powłoce powłoki bash:

    sudo apt-get update
    
  2. Zainstaluj środowisko Java, jeśli nie jest zainstalowane. Możesz sprawdzić polecenie which java .

    1. Jeśli nie zainstalowano żadnego pakietu java, wprowadź następujące polecenie:

      sudo apt install openjdk-11-jre-headless
      
    2. Otwórz plik bashrc (często spotykany w pliku ~/.bashrc): nano ~/.bashrc.

    3. Zmień plik bashrc. Dodaj następujący wiersz na końcu pliku:

      export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
      

      Następnie naciśnij klawisze Ctrl+X, a następnie Y, a następnie wprowadź.

  3. Pobierz archiwa hadoop i beeline, wprowadź następujące polecenia:

    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. Rozpakuj archiwa, wprowadź następujące polecenia:

    tar -xvzf hadoop-2.7.3.tar.gz
    tar -xvzf apache-hive-1.2.1-bin.tar.gz
    
  5. Dodatkowo zmień plik bashrc. Należy zidentyfikować ścieżkę do miejsca rozpakowywania archiwów. Jeśli używasz Podsystem Windows dla systemu Linux i wykonano dokładnie kroki, ścieżka to /mnt/c/Users/user/, gdzie user to nazwa użytkownika.

    1. Otwórz plik: nano ~/.bashrc

    2. Zmodyfikuj poniższe polecenia przy użyciu odpowiedniej ścieżki, a następnie wprowadź je na końcu pliku bashrc:

      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. Następnie naciśnij klawisze Ctrl+X, a następnie Y, a następnie wprowadź.

  6. Zamknij, a następnie otwórz ponownie sesję powłoki bash.

  7. Przetestuj połączenie. Użyj formatu połączenia z powyżej za pośrednictwem publicznych lub prywatnych punktów końcowych.

Następne kroki