Conexión a HiveServer2 mediante Beeline o instalación de Beeline localmente para conectarse desde el entorno local
Apache Beeline es un cliente de Hive que se incluye en los nodos principales del clúster de HDInsight. En este artículo se describe cómo conectarse a HiveServer2 mediante el cliente de Beeline instalado en el clúster de HDInsight a través de diferentes tipos de conexiones. También se explica cómo instalar el cliente de Beeline localmente.
Tipos de conexiones
Desde una sesión de SSH
Al conectarse desde una sesión SSH a un nodo principal del clúster, puede conectarse a la dirección de headnodehost
en el puerto 10001
:
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
A través de una instancia de Azure Virtual Network
Cuando se conecta desde un cliente a HDInsight a través de una instancia de Azure Virtual Network, debe proporcionar el nombre de dominio completo (FQDN) de un nodo principal del clúster. Puesto que esta conexión se realiza directamente a los nodos del clúster, se usa el puerto 10001
:
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'
Reemplace <headnode-FQDN>
por el nombre de dominio completo de un nodo principal primario. Para buscar el nombre de dominio completo de un nodo principal, use la información del documento Administración de clústeres de HDInsight con la API de REST de Apache Ambari.
Al clúster de Enterprise Security Package (ESP) de HDInsight mediante Kerberos
Cuando se conecta desde un cliente a un clúster de Enterprise Security Package (ESP) unido a Microsoft Entra Domain Services en un equipo en el mismo dominio del clúster, también debe especificar el nombre de dominio <AAD-Domain>
y el nombre de una cuenta de usuario de dominio con permisos para acceder al clúster <username>
:
kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>
Reemplace <username>
con el nombre de una cuenta en el dominio con permisos para obtener acceso al clúster. Reemplace <AAD-DOMAIN>
por el nombre del identificador de Microsoft Entra ID al que esté unido el clúster. Use una cadena en mayúsculas para el valor <AAD-DOMAIN>
; de lo contrario, la credencial no se encontrará. Consulte en /etc/krb5.conf
los nombres de dominio kerberos si es necesario.
Para buscar la dirección URL de JDBC desde Ambari:
En un explorador web, vaya a
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, dondeCLUSTERNAME
es el nombre del clúster. Asegúrese de que HiveServer2 está en ejecución.Use el portapapeles para copiar la dirección URL de JDBC de HiveServer2.
A través de puntos de conexión públicos o privados
Al conectarse a un clúster mediante los puntos de conexión públicos o privados, debe proporcionar el nombre de la cuenta de inicio de sesión del clúster (valor predeterminado admin
) y la contraseña. Por ejemplo, al usar Beeline desde un sistema cliente para conectarse a la dirección clustername.azurehdinsight.net
. Esta conexión se realiza a través del puerto 443
y se cifra mediante TLS/SSL.
Reemplace clustername
por el nombre del clúster de HDInsight. Reemplace admin
por la cuenta de inicio de sesión del clúster. Para los clústeres de ESP, use el UPN completo (por ejemplo, user@domain.com). Reemplace password
por la contraseña de la cuenta de inicio de sesión del clúster.
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
O para el punto de conexión privado:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'
Los puntos de conexión privados apuntan a un equilibrador de carga básico al que solo se puede acceder desde las redes virtuales emparejadas en la misma región. Consulte cuáles son las restricciones relacionadas con Emparejamiento de VNet global y los equilibradores de carga para más información. Puede usar el comando curl
con la opción -v
para solucionar cualquier problema de conectividad con puntos de conexión públicos o privados antes de usar Beeline.
Uso de Beeline con Apache Spark
Apache Spark proporciona su propia implementación de HiveServer2 que, en algunas ocasiones, se denomina servidor Thrift de Spark. Este servicio usa Spark SQL para resolver consultas en lugar de Hive. Además, puede proporcionar un mejor rendimiento en función de la consulta.
A través de puntos de conexión públicos o privados
La cadena de conexión usada es ligeramente diferente. En lugar de contener httpPath=/hive2
, usa httpPath/sparkhive2
. Reemplace clustername
por el nombre del clúster de HDInsight. Reemplace admin
por la cuenta de inicio de sesión del clúster. Reemplace password
por la contraseña de la cuenta de inicio de sesión del clúster.
Nota
Para los clústeres de ESP, sustituya admin
por el UPN completo (por ejemplo, user@domain.com).
beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
O para el punto de conexión privado:
beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'
Los puntos de conexión privados apuntan a un equilibrador de carga básico al que solo se puede acceder desde las redes virtuales emparejadas en la misma región. Consulte cuáles son las restricciones relacionadas con Emparejamiento de VNet global y los equilibradores de carga para más información. Puede usar el comando curl
con la opción -v
para solucionar cualquier problema de conectividad con puntos de conexión públicos o privados antes de usar Beeline.
Desde el nodo principal del clúster o en Azure Virtual Network con Apache Spark
Cuando se conecta directamente desde el nodo principal del clúster o desde un recurso de la misma red virtual de Azure que la del clúster de HDInsight, debe utilizarse el puerto 10002
para el servidor Thrift de Spark en lugar de 10001
. El ejemplo siguiente muestra cómo conectarse directamente al nodo principal:
/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'
Instalación de un cliente de Beeline
Aunque Beeline se incluye en los nodos principales, puede que desee instalarlo localmente. Los pasos de instalación en una máquina local se basan en un subsistema de Windows para Linux.
Listas de actualizaciones. Escriba los comandos siguientes en su shell de Bash:
sudo apt-get update
Instale Java si no está instalado. Puede hacerlo con el comando
which java
.Si no hay instalado ningún paquete de Java, escriba el siguiente comando:
sudo apt install openjdk-11-jre-headless
Abra el archivo bashrc (a menudo se encuentra en ~/.bashrc):
nano ~/.bashrc
.Modifique el archivo bashrc. Agregue la siguiente línea al final del archivo:
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Para guardar el archivo, presione Ctrl+x, luego Y y después Entrar.
Descargue los archivos de Hadoop y Beeline, y escriba los siguientes comandos:
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
Desempaquete los archivos y escriba los comandos siguientes:
tar -xvzf hadoop-2.7.3.tar.gz tar -xvzf apache-hive-1.2.1-bin.tar.gz
Modifique aún más el archivo bashrc. Deberá identificar la ruta de acceso en la que se desempaquetan los archivos. Si usa el subsistema de Windows para Linux y siguió los pasos de manera exacta, la ruta de acceso sería
/mnt/c/Users/user/
, dondeuser
es el nombre de usuario.Abra el archivo
nano ~/.bashrc
Modifique los comandos siguientes con la ruta de acceso adecuada y, a continuación, escríbalos al final del archivo 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
Para guardar el archivo, presione Ctrl+x, luego Y y después Entrar.
Cierre y vuelva a abrir la sesión de Bash.
Pruebe la conexión. Use el formato de conexión de A través de puntos de conexión públicos o privados, arriba.
Pasos siguientes
- Para ver ejemplos en los que se usa el cliente de Beeline con Apache Hive, visite Uso de Apache Beeline con Apache Hive
- Para obtener más información general sobre Hive en HDInsight, consulte Uso de Apache Hive con Apache Hadoop en HDInsight.