Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-14 GMT+08:00

Principios básicos de Hive

Hive es una infraestructura de almacenamiento de datos basada en Hadoop. Proporciona una serie de herramientas para extraer, transformar y cargar (ETL) datos. Hive es un mecanismo que puede almacenar, consultar y analizar datos masivos almacenados en Hadoop. Hive define un lenguaje de consulta simple similar a SQL, que se conoce como HiveQL. Permite a los usuarios familiarizados con SQL consultar datos. El cálculo de datos de Hive depende de MapReduce, Spark, y Tez.

El nuevo motor de ejecución Tez se utiliza para reemplazar el MapReduce original, mejorando significativamente el rendimiento. Tez puede convertir varios trabajos dependientes en un trabajo, por lo que solo una vez que se requiere la escritura HDFS y se necesitan menos nodos de tránsito, lo que mejora enormemente el rendimiento de los trabajos DAG.

Hive proporciona las siguientes funciones:

  • Analiza datos estructurados masivos y resume los resultados del análisis.
  • Permite compilar trabajos complejos de MapReduce en lenguajes SQL.
  • Soporta formatos flexibles de almacenamiento de datos, incluidos JavaScript object notation (JSON), comma separated values (CSV), TextFile, RCFile, SequenceFile, y ORC (Optimized Row Columnar).

Estructura del sistema de Hive:

  • Interfaz de usuario: Hay tres interfaces de usuario disponibles, es decir, CLI, Client y WUI. CLI es la interfaz de usuario más utilizada. Se inicia una transcripción de Hive cuando se inicia CLI. Client hace referencia a un cliente de Hive y un usuario de cliente se conecta a Hive Server. Al entrar en el modo cliente, debe especificar el nodo donde reside el servidor Hive e iniciar el servidor Hive en este nodo. La web UI se utiliza para acceder a Hive a través de un navegador. MRS solo puede acceder a Hive en modo cliente. Para obtener más información, consulte Uso de Hive desde ScratchPara obtener más información sobre cómo desarrollar aplicaciones Hive, consulte Desarrollo de aplicaciones de Hive.
  • Almacenamiento de metadatos: Hive almacena metadatos en bases de datos, por ejemplo, MySQL y Derby. Los metadatos de Hive incluyen un nombre de tabla, columnas y particiones de tabla y sus propiedades, propiedades de tabla (que indican si una tabla es una tabla externa) y el directorio donde se almacenan los datos de la tabla.

Marco de Hive

Hive es un proceso de servicio de instancia única que proporciona servicios al traducir HQL en trabajos de MapReduce u operaciones HDFS relacionadas. Figura 1 muestra cómo Hive está conectado a otros componentes.

Figura 1 Marco de Hive
Tabla 1 Descripción del módulo

Módulo

Descripción

HiveServer

Se pueden implementar varias HiveServers en un clúster para compartir cargas. HiveServer proporciona servicios de base de datos Hive externamente, traduce sentencias HQL en tareas YARN u operaciones HDFS relacionadas para completar la extracción, conversión y análisis de datos.

MetaStore

  • Se pueden desplegar varias MetaStores en un clúster para compartir cargas. MetaStore proporciona servicios de metadatos de Hive, así como lee, escribe, mantiene y modifica la estructura y las propiedades de las tablas de Hive.
  • MetaStore proporciona API de Thrift para HiveServer, Spark, WebHCat y otros clientes de MetaStore para acceder y operar metadatos.

WebHCat

Se pueden desplegar varios WebHCats en un clúster para compartir cargas. WebHCat proporciona las API de REST y ejecuta los comandos Hive a través de las API de REST para enviar trabajos de MapReduce.

Hive client

El cliente de Hive incluye la interfaz de línea de comandos de hombre-máquina (CLI) Beeline, controlador JDBC para aplicaciones de JDBC, controlador Python para aplicaciones de Python y archivos de HCatalog JAR para MapReduce.

ZooKeeper cluster

Como nodo temporal, ZooKeeper registra la lista de direcciones IP de cada instancia de HiveServer. El controlador de cliente se conecta a ZooKeeper para obtener la lista y selecciona las instancias de HiveServer correspondientes en función del mecanismo de enrutamiento.

HDFS/HBase cluster

El clúster de HDFS almacena los datos de la tabla Hive.

MapReduce/YARN cluster

Proporciona servicios informáticos distribuidos. La mayoría de las operaciones de datos de Hive dependen de MapReduce. La función principal de HiveServer es traducir declaraciones HQL en trabajos MapReduce para procesar datos masivos.

HCatalog se basa en Hive Metastore e incorpora la capacidad de DDL de Hive. HCatalog también es una capa de gestión de almacenamiento y tablas basada en Hadoop que permite la lectura y escritura de datos convenientes en tablas de HDFS mediante el uso de diferentes herramientas de procesamiento de datos como Pig y MapReduce. Además, HCatalog también proporciona API de lectura/escritura para estas herramientas y utiliza una CLI de Hive para publicar comandos para definir datos y consultar metadatos. Después de encapsular estos comandos, WebHCat Server puede proporcionar las API de RESTful, como se muestra en Figura 2.

Figura 2 Arquitectura lógica de WebHCat

Principios

Hive funciona como un almacén de datos basado en la arquitectura de HDFS y MapReduce y traduce las sentencias HQL en trabajos de MapReduce u operaciones de HDFS. Para obtener más información sobre Hive y HQL, consulte Manual de lenguaje de HiveQL.

Figura 3 muestra la estructura de Hive.

  • Metastore: lee, escribe y actualiza metadatos como tablas, columnas y particiones. Su capa inferior son las bases de datos relacionales.
  • Driver: gestiona el ciclo de vida de la ejecución de HiveQL y participa en toda la ejecución del trabajo de Hive.
  • Compiler: traduce sentencias HQL en una serie de trabajos de Map o Reduce interdependientes.
  • Optimizer: se clasifica en optimizador lógico y optimizador físico para optimizar los planes de ejecución de HQL y los trabajos de MapReduce respectivamente.
  • Executor: ejecuta trabajajos de Map o Reduce en función de las dependencias del trabajo.
  • ThriftServer: funciona como los servidores de JDBC, proporciona API de Thrift y se integra con Hive y otras aplicaciones.
  • Clients: incluyen las API de WebUI y JDBC y proporciona API para el acceso de los usuarios.
Figura 3 Marco de Hive