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)