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:
W przeglądarce internetowej przejdź do
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
lokalizacji , gdzieCLUSTERNAME
jest nazwą klastra. Upewnij się, że serwer HiveServer2 jest uruchomiony.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 443
i 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.
Aktualizowanie list pakietów. Wprowadź następujące polecenie w powłoce powłoki bash:
sudo apt-get update
Zainstaluj środowisko Java, jeśli nie jest zainstalowane. Możesz sprawdzić polecenie
which java
.Jeśli nie zainstalowano żadnego pakietu java, wprowadź następujące polecenie:
sudo apt install openjdk-11-jre-headless
Otwórz plik bashrc (często spotykany w pliku ~/.bashrc):
nano ~/.bashrc
.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ź.
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
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
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/
, gdzieuser
to nazwa użytkownika.Otwórz plik:
nano ~/.bashrc
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
Następnie naciśnij klawisze Ctrl+X, a następnie Y, a następnie wprowadź.
Zamknij, a następnie otwórz ponownie sesję powłoki bash.
Przetestuj połączenie. Użyj formatu połączenia z powyżej za pośrednictwem publicznych lub prywatnych punktów końcowych.
Następne kroki
- Przykłady użycia klienta beeline z usługą Apache Hive można znaleźć w temacie Use Apache Beeline with Apache Hive (Używanie usługi Apache Beeline z usługą Apache Hive)
- Aby uzyskać więcej ogólnych informacji na temat programu Hive w usłudze HDInsight, zobacz Use Apache Hive with Apache Hadoop on HDInsight (Używanie programu Apache Hive z usługą Apache Hadoop w usłudze HDInsight)