Подключение к HiveServer2 с использованием Beeline или локальная установка Beeline для подключения с локального устройства
Apache Beeline — это клиент Hive, установленный на головных узлах кластера HDInsight. В этой статье описано подключение к HiveServer2 с помощью клиента Beeline, установленного в кластере HDInsight, с использованием разных типов подключений. В ней также описана локальная установка клиента Beeline.
Типы подключений
Из сеанса SSH
При подключении сеанса SSH к головному узлову кластера можно подключиться к headnodehost
адресу через порт 10001
:
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
Через виртуальную сеть Azure
При подключении клиента к HDInsight через виртуальная сеть Azure необходимо указать полное доменное имя (FQDN) головного узла кластера. Так как подключение устанавливается напрямую к узлам кластера, для подключения используется порт 10001
:
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'
Замените <headnode-FQDN>
полным доменным именем головного узла кластера. Чтобы найти полное доменное имя головного узла, используйте сведения в управляемом HDInsight с помощью документа REST API Apache Ambari.
К кластеру Корпоративного пакета безопасности (ESP) HDInsight с помощью Kerberos
При подключении клиента к кластеру enterprise Security Package (ESP), присоединенному к доменным службам Microsoft Entra на компьютере в той же области кластера, необходимо также указать доменное имя <AAD-Domain>
и имя учетной записи пользователя домена с разрешениями на доступ к кластеру <username>
:
kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>
Замените <username>
на имя учетной записи домена с разрешениями на доступ к кластеру. Замените <AAD-DOMAIN>
именем идентификатора Microsoft Entra, к которому присоединен кластер. Используйте строку в верхнем регистре для значения <AAD-DOMAIN>
. В противном случае учетные данные не будут найдены. При необходимости проверьте /etc/krb5.conf
на наличие имен областей определения приложения.
Чтобы найти URL-адрес JDBC из Ambari, выполните указанные ниже действия.
В веб-браузере перейдите на страницу
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, гдеCLUSTERNAME
— это имя вашего кластера. Убедитесь, что сервер HiveServer2 запущен.Используйте буфер обмена для копирования URL-адреса JDBC HiveServer2.
Через общедоступные или частные конечные точки
При подключении к кластеру с помощью общедоступных или частных конечных точек необходимо указать имя учетной записи входа кластера (по умолчанию admin
) и пароль. Например, при использовании Beeline из системы клиента для подключения к адресу clustername.azurehdinsight.net
. Это подключение устанавливается через порт 443
и шифруется с помощью TLS/SSL.
Замените clustername
на имя вашего кластера HDInsight. Замените admin
учетной записью для входа в кластер. Для кластеров ESP используйте полное имя участника-пользователя (например, user@domain.com). Замените password
паролем этой учетной записи.
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Или для частной конечной точки:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Частные конечные точки указывают на базовую подсистему балансировки нагрузки, доступ к которой можно получить только из виртуальных сетей с пирингом в том же регионе. Дополнительные сведения см. в разделе об ограничениях для пиринга глобальной виртуальной сети и для подсистем балансировки нагрузки. Вы можете использовать команду curl
с параметром -v
для устранения проблем с подключением к общедоступным или частным конечным точкам перед использованием Beeline.
Использование Beeline с Apache Spark
Apache Spark предоставляет собственную реализацию HiveServer2, которая иногда называется сервером Thrift Spark. Эта служба для разрешения запросов использует Spark SQL вместо Hive. Кроме того, возможно повышение производительности в зависимости от запроса.
Через общедоступные или частные конечные точки
Используемая строка подключения немного отличается. Вместо httpPath=/hive2
в ней используется httpPath/sparkhive2
. Замените clustername
на имя вашего кластера HDInsight. Замените admin
учетной записью для входа в кластер. Замените password
паролем этой учетной записи.
Примечание.
Для кластеров ESP замените admin
на полное имя участника-пользователя (например, user@domain.com).
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Или для частной конечной точки:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Частные конечные точки указывают на базовую подсистему балансировки нагрузки, доступ к которой можно получить только из виртуальных сетей с пирингом в том же регионе. Дополнительные сведения см. в разделе об ограничениях для пиринга глобальной виртуальной сети и для подсистем балансировки нагрузки. Вы можете использовать команду curl
с параметром -v
для устранения проблем с подключением к общедоступным или частным конечным точкам перед использованием Beeline.
Из головного узла кластера или внутри виртуальной сети Azure с использованием Apache Spark
При подключении непосредственно из головного узла кластера или из ресурса в том же виртуальная сеть Azure, что и кластер HDInsight, вместо этого следует использовать порт 10002
для сервера 10001
Thrift Spark. В следующем примере показано, как подключиться непосредственно к головному узлу:
/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'
Установка клиента Beeline
Хотя Beeline добавляется в головные узлы, может потребоваться локальная установка. Шаги установки для локального компьютера основаны на подсистеме Windows для Linux.
Обновите списки пакетов. Введите следующую команду в оболочке bash:
sudo apt-get update
При необходимости установите Java. Проверку можно выполнить с помощью команды
which java
.Если пакет Java не установлен, введите следующую команду:
sudo apt install openjdk-11-jre-headless
Откройте файл bashrc (часто находится в папке ~/.bashrc):
nano ~/.bashrc
.Измените файл bashrc. В конце файла добавьте следующую строку:
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Нажмите сочетание клавиш CTRL+X, а затем клавишу Y и "ВВОД".
Скачайте архивы Hadoop и Beeline. Введите следующие команды:
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
Распакуйте архивы и введите следующие команды:
tar -xvzf hadoop-2.7.3.tar.gz tar -xvzf apache-hive-1.2.1-bin.tar.gz
Измените файл bashrc. Вам необходимо определить путь к расположению распаковки архивов. Если используется подсистема Windows для Linux и вы выполнили инструкции правильно, путем будет
/mnt/c/Users/user/
, гдеuser
— это имя пользователя.Откройте файл
nano ~/.bashrc
.Измените приведенные ниже команды, указав соответствующий путь, а затем введите их в конце файла 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
Нажмите сочетание клавиш CTRL+X, а затем клавишу Y и "ВВОД".
Закройте и снова откройте сеанс Bash.
Проверьте подключение. Используйте формат подключения через общедоступные или частные конечные точки, указанный выше.
Следующие шаги
- Примеры использования клиента Beeline с Apache Hive см. на этой странице.
- Дополнительные общие сведения о Hive в HDInsight см. в статье Использование Apache Hive с Apache Hadoop в HDInsight.