logo

Arquitectura de la colmena

La siguiente arquitectura explica el flujo de envío de consultas a Hive.

Arquitectura de la colmena

Cliente de colmena

Hive permite escribir aplicaciones en varios lenguajes, incluidos Java, Python y C++. Admite diferentes tipos de clientes como: -

  • Thrift Server: es una plataforma de proveedor de servicios en varios idiomas que atiende solicitudes de todos aquellos lenguajes de programación que admiten Thrift.
  • Controlador JDBC: se utiliza para establecer una conexión entre las aplicaciones Hive y Java. El controlador JDBC está presente en la clase org.apache.hadoop.hive.jdbc.HiveDriver.
  • Controlador ODBC: permite que las aplicaciones que admiten el protocolo ODBC se conecten a Hive.

Servicios de colmena

Los siguientes son los servicios proporcionados por Hive: -

  • CLI de Hive: la CLI de Hive (interfaz de línea de comandos) es un shell donde podemos ejecutar consultas y comandos de Hive.
  • Interfaz de usuario web de Hive: la interfaz de usuario web de Hive es solo una alternativa a la CLI de Hive. Proporciona una GUI basada en web para ejecutar consultas y comandos de Hive.
  • Hive MetaStore: es un repositorio central que almacena toda la información estructural de varias tablas y particiones en el almacén. También incluye metadatos de columna y su tipo de información, los serializadores y deserializadores que se utilizan para leer y escribir datos y los archivos HDFS correspondientes donde se almacenan los datos.
  • Servidor Hive: se lo conoce como servidor Apache Thrift. Acepta la solicitud de diferentes clientes y se la proporciona a Hive Driver.
  • Controlador Hive: recibe consultas de diferentes fuentes, como la interfaz de usuario web, CLI, Thrift y el controlador JDBC/ODBC. Transfiere las consultas al compilador.
  • Compilador de Hive: el propósito del compilador es analizar la consulta y realizar un análisis semántico de los diferentes bloques y expresiones de consulta. Convierte declaraciones de HiveQL en trabajos de MapReduce.
  • Hive Execution Engine: el optimizador genera el plan lógico en forma de DAG de tareas de reducción de mapas y tareas HDFS. Al final, el motor de ejecución ejecuta las tareas entrantes en el orden de sus dependencias.