Está en la página 1de 12

8.

HIVE
¿Qué es Apache Hive?
Hive es una tecnología distribuida diseñada y construida sobre
Hadoop. Permite hacer consultas y analizar grandes cantidades de
datos almacenados en HDFS, en la escala de petabytes. Tiene un
lenguaje de consulta llamado HiveQL o HQL que internamente
transforma las consultas SQL en trabajos MapReduce que ejecutan
en Hadoop. El lenguaje de consulta HQL es un dialecto de SQL, que
no sigue el estándar ANSI SQL, sin embargo es muy similar.

HIVE 2
Antecedentes
El proyecto comenzó en el 2008 y fue desarrollado por Facebook para hacer que
Hadoop se comportara de una manera más parecida a un data warehouse
tradicional. La tecnología Hadoop es altamente escalable, sin embargo tiene dos
problemas principales:
- Dificultad de uso: La API de Java es complicada de usar y se necesita
experiencia específica para tratar con diferentes formatos de ficheros y sistemas
de almacenamiento.
- Orientado a operaciones Batch: No soporta operaciones de acceso aleatorio y
no está optimizado para gestionar ficheros pequeños.

DATA LAKE 3
¿Cómo gestiona los datos Hive?
Los datos gestionados por Hive son datos estructurados almacenados
en HDFS. Así, optimiza de forma automática el plan de ejecución y usa
particionado de tablas en determinadas consultas. También soporta
diferentes formatos de ficheros, codificaciones y fuentes de datos
como HBase.
Una consulta típica en Hive ejecuta en varios data nodes en paralelo,
con trabajos MapReduce asociados. Estas operaciones son de tipo
batch, por lo que la latencia es más alta que en otros tipos de bases de
datos. Además, hay que considerar el retraso producido por la
inicialización de los trabajos, sobre todo en el caso de consultar
pequeños datasets.

HIVE 4
Estructura de datos en Hive
Hive proporciona una estructura basada en tablas sobre HDFS.
Soporta tres tipos de estructuras: Tablas, particiones y buckets. Las
tablas se corresponden con directorios de HDFS, las particiones son las
divisiones de las tablas y los buckets son las divisiones de las
particiones.
Hive permite crear tablas externas, similares a las tablas en una Base
de datos, pero a la que se les proporciona una ubicación. En este caso,
cuando se elimina la tabla externa, los datos continúan en HDFS.
Las particiones en Hive consisten en dividir las tablas en varios
subdirectorios. Esta estructura permite aumentar el rendimiento de
las consultas en el caso de usar filtros con cláusula WHERE.

HIVE 5
Buckets
Son particiones hasheadas, en las que los datos se distribuyen en
función de su valor hash. Los Buckets pueden acelerar las operaciones
de tipo JOIN sí las claves de particionado y de JOIN coinciden. Debido a
los beneficios de las particiones, se deben considerar siempre que
puedan optimizar el rendimiento de las consultas realizadas.

HIVE 6
Estructura de datos en Hive
Hive también permite una operación de sampling sobre una tabla, por
la que se obtienen valores aleatorios o una «muestra» sobre la que
realizar analítica o transformaciones sin tener que tratar el dataset
completo, que en ocasiones es inviable.

La política del esquema es schema-on-read, de forma que solo se


obliga en las operaciones de lectura. Esta propiedad permite a Hive ser
más flexible en la lectura de los datos: un mismo dato se puede ajustar
a varios esquemas, uno en cada lectura. Los sistemas RDBMS tienen
una política schema-on-write, que obliga a las escrituras a cumplir un
esquema. En este caso acelera las lecturas.

HIVE 7
Arquitectura de Apache Hive:
Componentes

HIVE 8
Arquitectura de Apache Hive:

HIVE 9
Hive LLAP
Hive LLAP (Low Latency Analytical Processing) fue añadido como
motor a Hive 2.0. Requiere Tez como motor de ejecución y aporta
funcionalidades de caché de datos y metadatos en memoria,
acelerando mucho algunos tipos de consulta. Es especialmente
significativo en consultas repetitivas para las que ofrece tiempos de
respuesta menores al segundo.

LLAP se compone de un conjunto de demonios que ejecutan partes de


consultas Hive. Las tareas de los ejecutores, por tanto, se encuentran
dentro de los demonios y no en los contenedores. En este caso, la
sesión Tez tendrá solamente un contenedor, que corresponde al
coordinador de consultas.

HIVE 10
Esquema de Arquitectura en Hive LLAP

HIVE 11
Ventajas y Desventajas de Hive
Ventajas
- Reduce la complejidad de la programación MapReduce al usar HQL como lenguaje de
consulta (dialecto de SQL).
- Está orientado a aplicaciones de tipo Data Warehouse, con datos estáticos, poco
cambiantes y sin requisitos de tiempos de respuesta rápidos.
- Permite a los usuarios despreocuparse de en qué formato y dónde se almacenan los
datos.
- Incorpora Beeline: una herramienta por línea de comandos para realizar consultas con
HQL.
Desventajas
- Hive no es la mejor opción para consultas en tiempo real o de tipo OLTP (Online
Transaction Processing).
- Hive no está diseñado para usarse con actualizaciones de valores a nivel de registro.
————————————- o————————————

HIVE 12

También podría gustarte