Hive - Introducción

El término 'Big Data' se usa para colecciones de grandes conjuntos de datos que incluyen un gran volumen, alta velocidad y una variedad de datos que aumentan día a día. Al utilizar sistemas de gestión de datos tradicionales, es difícil procesar Big Data. Por lo tanto, Apache Software Foundation introdujo un marco llamado Hadoop para resolver los desafíos de procesamiento y gestión de Big Data.

Hadoop

Hadoop es un marco de código abierto para almacenar y procesar Big Data en un entorno distribuido. Contiene dos módulos, uno es MapReduce y otro es Hadoop Distributed File System (HDFS).

  • MapReduce: Es un modelo de programación paralelo para procesar grandes cantidades de datos estructurados, semiestructurados y no estructurados en grandes grupos de hardware básico.

  • HDFS:El sistema de archivos distribuido de Hadoop es parte del marco de trabajo de Hadoop, que se utiliza para almacenar y procesar los conjuntos de datos. Proporciona un sistema de archivos tolerante a fallos para ejecutarse en hardware básico.

El ecosistema de Hadoop contiene diferentes subproyectos (herramientas) como Sqoop, Pig y Hive que se utilizan para ayudar a los módulos de Hadoop.

  • Sqoop: Se utiliza para importar y exportar datos ay desde HDFS y RDBMS.

  • Pig: Es una plataforma de lenguaje procedimental que se utiliza para desarrollar un script para las operaciones de MapReduce.

  • Hive: Es una plataforma utilizada para desarrollar scripts de tipo SQL para realizar operaciones MapReduce.

Note: Hay varias formas de ejecutar operaciones MapReduce:

  • El enfoque tradicional que utiliza el programa Java MapReduce para datos estructurados, semiestructurados y no estructurados.
  • El enfoque de scripting para MapReduce para procesar datos estructurados y semiestructurados usando Pig.
  • El lenguaje de consulta Hive (HiveQL o HQL) para MapReduce para procesar datos estructurados utilizando Hive.

Que es Hive

Hive es una herramienta de infraestructura de almacenamiento de datos para procesar datos estructurados en Hadoop. Reside sobre Hadoop para resumir Big Data y facilita la consulta y el análisis.

Inicialmente, Hive fue desarrollado por Facebook, luego la Apache Software Foundation lo tomó y lo desarrolló aún más como código abierto con el nombre de Apache Hive. Es utilizado por diferentes empresas. Por ejemplo, Amazon lo usa en Amazon Elastic MapReduce.

Hive no es

  • Una base de datos relacional
  • Un diseño para procesamiento de transacciones en línea (OLTP)
  • Un idioma para consultas en tiempo real y actualizaciones a nivel de fila

Características de Hive

  • Almacena el esquema en una base de datos y procesa los datos en HDFS.
  • Está diseñado para OLAP.
  • Proporciona un lenguaje de tipo SQL para consultas llamado HiveQL o HQL.
  • Es familiar, rápido, escalable y extensible.

Arquitectura de Hive

El siguiente diagrama de componentes muestra la arquitectura de Hive:

Este diagrama de componentes contiene diferentes unidades. La siguiente tabla describe cada unidad:

Nombre de la unidad Operación
Interfaz de usuario Hive es un software de infraestructura de almacenamiento de datos que puede crear interacción entre el usuario y HDFS. Las interfaces de usuario que admite Hive son la interfaz de usuario web de Hive, la línea de comandos de Hive y Hive HD Insight (en el servidor de Windows).
Meta tienda Hive elige los respectivos servidores de bases de datos para almacenar el esquema o metadatos de tablas, bases de datos, columnas en una tabla, sus tipos de datos y mapeo HDFS.
Motor de proceso HiveQL HiveQL es similar a SQL para realizar consultas sobre la información del esquema en Metastore. Es uno de los reemplazos del enfoque tradicional del programa MapReduce. En lugar de escribir el programa MapReduce en Java, podemos escribir una consulta para el trabajo MapReduce y procesarlo.
Motor de ejecución La parte conjunta de HiveQL Process Engine y MapReduce es Hive Execution Engine. El motor de ejecución procesa la consulta y genera los mismos resultados que los de MapReduce. Utiliza el sabor de MapReduce.
HDFS o HBASE El sistema de archivos distribuido Hadoop o HBASE son las técnicas de almacenamiento de datos para almacenar datos en el sistema de archivos.

Trabajo de Hive

El siguiente diagrama muestra el flujo de trabajo entre Hive y Hadoop.

La siguiente tabla define cómo Hive interactúa con el marco de Hadoop:

Paso No. Operación
1 Execute Query

La interfaz de Hive, como la línea de comandos o la interfaz de usuario web, envía una consulta al controlador (cualquier controlador de base de datos como JDBC, ODBC, etc.) para que se ejecute.

2 Get Plan

El controlador toma la ayuda del compilador de consultas que analiza la consulta para verificar la sintaxis y el plan de consulta o el requisito de consulta.

3 Get Metadata

El compilador envía una solicitud de metadatos a Metastore (cualquier base de datos).

4 Send Metadata

Metastore envía metadatos como respuesta al compilador.

5 Send Plan

El compilador verifica el requisito y reenvía el plan al controlador. Hasta aquí, el análisis y la compilación de una consulta están completos.

6 Execute Plan

El controlador envía el plan de ejecución al motor de ejecución.

7 Execute Job

Internamente, el proceso de trabajo de ejecución es un trabajo de MapReduce. El motor de ejecución envía el trabajo a JobTracker, que está en el nodo Nombre y asigna este trabajo a TaskTracker, que está en el nodo Datos. Aquí, la consulta ejecuta el trabajo MapReduce.

7.1 Metadata Ops

Mientras tanto, en ejecución, el motor de ejecución puede ejecutar operaciones de metadatos con Metastore.

8 Fetch Result

El motor de ejecución recibe los resultados de los nodos de datos.

9 Send Results

El motor de ejecución envía esos valores resultantes al controlador.

10 Send Results

El controlador envía los resultados a las interfaces de Hive.