Resumen de Python 3 usando Hive

Inicie el servicio HiveServer2

HiveServer2 es un servicio integrado opcional de Hive que permite a los clientes remotos enviar solicitudes a Hive utilizando diferentes lenguajes de programación y devolver resultados.

Configuración del servicio de ahorro

Supongamos que hemos instalado Hive correctamente, de lo contrario, consulte: Artículo de Hive  . Antes de iniciar HiveServer2, necesitamos realizar alguna configuración:

Elementos de configuración

Valores predeterminados

ilustrar

colmena.servidor2.modo.transporte

binario

Modo de transmisión HiveServer2, binario o http

hive.server2.thrift.port

10000

Cuando el modo de transmisión de HiveServer2 está configurado en binario, el número de puerto de la interfaz Thrift

colmena.servidor2.thrift.http.puerto

10001

Cuando el modo de transmisión de HiveServer2 está configurado en http, el número de puerto de la interfaz Thrift

colmena.servidor2.thrift.bind.host

servidor local

Anfitrión vinculado al servicio Thrift

hive.server2.thrift.min.worker.threads

5

Número mínimo de subprocesos de trabajo de ahorro

hive.server2.thrift.max.worker.threads

500

Ahorre el número máximo de subprocesos de trabajo

colmena.servidor2.autenticación

NINGUNO

Tipo de autenticación del cliente, NINGUNO, LDAP, KERBEROS, PERSONALIZADO, PAM, NOSASL

colmena.servidor2.thrift.cliente.usuario

anónimo

Nombre de usuario del cliente de ahorro

hive.server2.thrift.client.contraseña

anónimo

Contraseña del cliente de ahorro

Inicie el servicio HiveServer2 

Método 1: $HIVE_HOME/bin/hiveserver2 

[root@Hadoop3-master bin]# hiveserver2
2023-08-16 23:14:00: Starting HiveServer2
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.35.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = 0ba8eb07-5f63-43a1-aa4d-61954f6e244f

Método 2: $HIVE_HOME/bin/hive --service hiveserver2

Compruebe si HiveServer2 se inicia correctamente

netstat -nl | grep 10000

Inicie hiveserver2 y acceda a la plataforma de administración de Hive

Dirección de acceso predeterminada: http://192.168.43.11:10002/

Captura de pantalla del efecto:

Python se conecta a Hive

Paquetes de bibliotecas de terceros dependientes 

pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive

Recordatorio: el primero es la instalación de pyhive: el paquete pyhive depende de los tres paquetes sasl, thrift y thrift-sasl.

Problemas encontrados al instalar el paquete de tabla de biblioteca Sasl 

La causa del error es:

 saslwrapper.cpp
      C:\Users\zzg\AppData\Local\Temp\pip-install-1vw7hyr4\sasl_05859569d9c14648abbe3a8901ed3627\sasl\saslwrapper.h(22): fatal error C1083: 无法打开包括文件: “sasl/sasl.h”: No such file or directory

 El archivo de encabezado sasl/sasl.h no se puede encontrar en el archivo saslwrapper.cpp.

Soluciones de Google y Baidu

 Descargue el archivo sasl.whl a través de la dirección espejo de la Universidad de California: https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl . Situación: La situación actual es que el sitio web ha sido cerrado.

Descargue el archivo sasl.whl a través de la dirección espejo de la Universidad de Tsinghua: https://pypi.tuna.tsinghua.edu.cn/simple/sasl/  . Situación: No existe ningún paquete de biblioteca para Python-3.10 que admita la arquitectura de Windows 64.

 Recordatorio: la dirección espejo de Tsinghua proporciona contenido sobre sasl.whl, que incluye principalmente:

  • Admite las versiones python-3.5.0 a python-3.9.0 y la arquitectura del sistema solo admite la arquitectura Linux.
  • Proporcionar código fuente de biblioteca de terceros sasl: compatible con 0.1.1 a 0.3.1

Compile el código fuente Sasl-0.3.1 y genere el archivo Sasl.whl

Descargue el código fuente de Sasl a través del espejo de Tsinghua y tome una captura de pantalla del efecto descomprimido:

Cambie al código fuente de Sasl y ejecute el comando: python setup.py bdist_wheel 

El error al compilar el código fuente es el mismo que al instalar la biblioteca sasl con pip.

Aprenda de otras instalaciones de Sasl con éxito 

Descripción ambiental:

La versión de Python es Python 3.10.

cp310: expresado como versión de Python, para Python 3 10

win_amd64: indica que el controlador es un controlador de Windows  de 64 bits

Paquete sasl.whl correspondiente =  sasl-0.3.1-cp310-cp310-win_amd64.whl

Ejecute las siguientes instrucciones:

pip install  sasl-0.3.1-cp310-cp310-win_amd64.whl

instalar ahorro

pip install thrift

Instalar ahorro_sasl

pip install thrift_sasl

 Instalar pyHive

pip install pyhive

Código de Hive de conexión Python 

from pyhive import hive
 
# 读取数据
def select_pyhive(sql):
    # 创建hive连接
    conn = hive.Connection(host='192.168.43.11', port=10000, username='默认', database='user')
    cur = conn.cursor()
    try:
        #c = cur.fetchall()
        df = pd.read_sql(sql, conn)
        return df
    finally:
        if conn:
            conn.close()
 
sql = "show databases"
df = select_pyhive(sql)

Supongo que te gusta

Origin blog.csdn.net/zhouzhiwengang/article/details/132330997
Recomendado
Clasificación