Red de conocimiento informático - Problemas con los teléfonos móviles - Python se conecta a Hive, cómo instalar thrifthive

Python se conecta a Hive, cómo instalar thrifthive

Iniciar HiveServer2

Iniciar HiveServer2

Iniciar HiveServer2 es muy sencillo:

$ $HIVE_HOME/bin/hiveserver2

o

$ $HIVE_HOME/ bin/hive --service hiveserver2

De forma predeterminada, el puerto de escucha Thrift de HiverServer2 es 10000 y el puerto de UI WEB es 10002. La interfaz de usuario de acceso web de HiveServer2 se puede ver en http://localhost:10002, que muestra información básica sobre Hive. Si no puede ver la interfaz de usuario web, HiveServer2 no se está ejecutando correctamente.

Utilice beeline para probar la conexión del cliente

Después de que HiveServer2 se ejecute correctamente, podemos utilizar beeline (la herramienta de cliente proporcionada por Hive) para conectarnos a HiveServer2.

$ $HIVE_HOME/bin/beeline

beeline gt; !connect jdbc:hive2://localhost:10000

Si inicia sesión correctamente, lo siguiente El comando aparecerá y en ese momento podrá escribir declaraciones HQL.

0: jdbc:hive2://localhost:10000gt;

Error: Usuario: xxx no puede hacerse pasar por anónimo

Utilice !connect en beeline HiveServer2 La conexión a HiveServer2 puede generar el siguiente mensaje de error:

Causado por: org.apache.hadoop.ipc.RemoteException:

Usuario: xxx no puede hacerse pasar por anónimo

El xxx aquí es el nombre de usuario de mi sistema operativo. groupslt;/namegt;lt;valuegt;*lt;/valuegt;lt;/propertygt;lt;propertygt;lt;namegt;hadoop.proxyuser.xxx.hostslt;/namegt;lt;valuegt;*lt;/valuegt;lt ;/propertygt;

Después de reiniciar HDFS, puede usar beeline para conectarse a HiveServer2 nuevamente.

Configuraciones comunes

Para la configuración de HiveServer2, puede consultar el documento oficial "Configuración de HiveServer2"

Las siguientes son algunas configuraciones comunes de HiveServer2. site.xml:

p>

hive.server2.thrift.port: Número de puerto TCP de escucha. El valor predeterminado es 10000.

hive.server2.thrift.bind.host: enlaza el host de la interfaz TCP.

hive.server2.thrift.authentication: Método de autenticación. El valor predeterminado es NINGUNO (use SASL simple), es decir, no se realizan comprobaciones de autenticación.

Las opciones son NOSASL, KERBEROS, LDAP, PAM y CUSTOM.

hive.server2.enable.doAs: si se debe realizar el procesamiento de consultas como una suplantación.

Clientes Python conectados a HiveServer2

Hay tres clientes Python conectados a HiveServer2: pyhs2, pyhive e impyla. Los ejemplos en el sitio web oficial usan pyhs2, pero el sitio web oficial de pyhs2 indica que ya no es compatible, por lo que se recomienda usar impyla aquí.

Instalar impyla

Las dependencias necesarias para imyla incluyen:

six

bit_array

thriftpy (o thrift para python2.x)

Thriftpy (o thrift para python2.x)

Para soportar el sistema jerárquico necesitamos las siguientes dependencias:

seis

bit_array

thriftpy(o thrift para python2.x)

Para admitir Hive, se requieren los dos paquetes de software siguientes:

sasl

thrift_sasl

El código fuente de impyla y sus paquetes dependientes se pueden descargar desde Python PI.

Ejemplo de impyla

El siguiente es un ejemplo del uso de Impyla para conectarse a HiveServer2: desde impala.dbapi import connect

conn = connect(host='127.0 .0.1' , puerto=10000, base de datos='default', auth_mechanism='PLAIN')

cur = conn.cursor()

cur.execute('MOSTRAR BASES DE DATOS') print(cur .fetchall())

cur.execute('MOSTRAR Tablas') print(cur.fetchall())