Поделиться через


Подключение к 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, выполните указанные ниже действия.

  1. В веб-браузере перейдите на страницу https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary, где CLUSTERNAME — это имя вашего кластера. Убедитесь, что сервер HiveServer2 запущен.

  2. Используйте буфер обмена для копирования 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 для сервера 10001Thrift Spark. В следующем примере показано, как подключиться непосредственно к головному узлу:

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

Установка клиента Beeline

Хотя Beeline добавляется в головные узлы, может потребоваться локальная установка. Шаги установки для локального компьютера основаны на подсистеме Windows для Linux.

  1. Обновите списки пакетов. Введите следующую команду в оболочке bash:

    sudo apt-get update
    
  2. При необходимости установите Java. Проверку можно выполнить с помощью команды which java.

    1. Если пакет Java не установлен, введите следующую команду:

      sudo apt install openjdk-11-jre-headless
      
    2. Откройте файл bashrc (часто находится в папке ~/.bashrc): nano ~/.bashrc.

    3. Измените файл bashrc. В конце файла добавьте следующую строку:

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

      Нажмите сочетание клавиш CTRL+X, а затем клавишу Y и "ВВОД".

  3. Скачайте архивы 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
    
  4. Распакуйте архивы и введите следующие команды:

    tar -xvzf hadoop-2.7.3.tar.gz
    tar -xvzf apache-hive-1.2.1-bin.tar.gz
    
  5. Измените файл bashrc. Вам необходимо определить путь к расположению распаковки архивов. Если используется подсистема Windows для Linux и вы выполнили инструкции правильно, путем будет /mnt/c/Users/user/, гдеuser — это имя пользователя.

    1. Откройте файл nano ~/.bashrc.

    2. Измените приведенные ниже команды, указав соответствующий путь, а затем введите их в конце файла 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. Нажмите сочетание клавиш CTRL+X, а затем клавишу Y и "ВВОД".

  6. Закройте и снова откройте сеанс Bash.

  7. Проверьте подключение. Используйте формат подключения через общедоступные или частные конечные точки, указанный выше.

Следующие шаги