Portada » Hive apache

Hive apache

by Donal Sandro Noblejas Huaman

Hola mi nombre es donal Sandro Noblejas Huamán de Lima Perú 🇵🇪 hoy vengo con otro artículo de  Big Data y como siempre y en cada uno de ellos completamente solo y me agrada porque se aprende, y como siempre sin empresas, personas, familiares, ni el estado ni ningún tipo de ayuda cuidado con los estafadores solo en mis tiempos libres redactando jejeje, bueno ahí vamos.

Hive es un sistema de gestión de bases de datos (DBMS) dentro de la plataforma Hadoop para almacenar y procesar big data en un entorno distribuido. Hive le permite diseñar estructuras de Big Data (tablas, particiones, depósitos) utilizando un lenguaje similar a SQL llamado HiveQL.

QUÉ ES APACHE HIVE: ARQUITECTURA Y PRINCIPIOS DE FUNCIONAMIENTO

Apache Hive es un DBMS para almacenar y procesar big data en un clúster distribuido del ecosistema Hadoop.

El DBMS Apache Hive incluye los siguientes elementos:

  1. HCatalog es un componente de Hive que se encarga de administrar tablas y almacenamiento. Este componente también proporciona a los usuarios varias herramientas de procesamiento de Big Data (incluidos MapReduce y Pig) para facilitar la lectura y escritura de datos.
  2. WebHCat es un componente que le permite realizar operaciones básicas (lectura, escritura y eliminación) con metadatos en la red Hive utilizando la interfaz HTTP (Protocolo de transferencia de hipertexto). WebHCat también se utiliza como servidor para implementar el entorno Hive.

Estructura de colmena

6 BENEFICIOS PRINCIPALES DE APACHE HIVE PARA BIG DATA

Hive tiene las siguientes ventajas al trabajar con big data:

  • indexación de datos: Hive utiliza índices para trabajar con datos más rápido;
  • almacenar metadatos en un DBMS reduce significativamente el tiempo de las comprobaciones semánticas de conformidad de la solicitud con las construcciones del lenguaje durante su ejecución;
  • almacenar datos en todos los nodos del clúster reduce el riesgo de pérdida de información;
  • soporte para operaciones con datos comprimidos almacenados en el ecosistema Hadoop;
  • soporte para un cliente instalado en el lado del usuario. Este cliente interactúa con los servicios de Hive que se ejecutan en el servidor. Este enfoque es muy aplicable a aplicaciones escritas en diferentes lenguajes de programación, incl. JAVA, C++, Python, R. Al utilizar estos lenguajes, el usuario tiene la capacidad de conectarse a la interfaz de Hive para utilizar varios comandos SQL y acceder a bases de datos;
  • La sintaxis similar a SQL en el dialecto HQL reduce la barrera de entrada a la tecnología. Estas consultas similares a SQL se pueden convertir libremente en trabajos MapR educe o Spark , lo que evita que el usuario tenga que realizar pasos innecesarios para transformar los datos de Hive [1].

CÓMO SURGIÓ APACHE HIVE: UNA BREVE HISTORIA

El desarrollo de Hive comenzó en 2008 por los desarrolladores Joydeep Sen Sarma y Ashish Untilu mientras trabajaban en Facebook. La primera versión de Hive se lanzó el 9 de noviembre de 2011. Hive fue creado para implementar la tecnología Hadoop MapReduce, que permite el procesamiento distribuido de datos. Sin embargo, había otro problema acuciante: la imposibilidad de capacitar rápidamente a especialistas y analistas en el uso de Hadoop. Para evitar esto, se decidió utilizar una interfaz similar a SQL como interfaz, ya que es ampliamente utilizada por los científicos de datos. Si bien SQL podía satisfacer la mayoría de los requisitos de análisis, los creadores también decidieron implementar las capacidades de programación de Hadoop para diseñar aplicaciones distribuidas de big data. Así, Hive surgió de dos ideas:

  • un lenguaje declarativo basado en SQL para que analistas e ingenieros de datos puedan crear sus propios scripts para trabajar con big data;
  • capacidad de conectar varios lenguajes de programación (Python, JAVA, Scala, C++) utilizando la interfaz SQL para desarrollar aplicaciones especializadas.

Así, gracias al trabajo distribuido con datos y a la interfaz SQL, Apache Hive es una herramienta muy cómoda y fiable para trabajar con big data. Es por eso que Hive es una parte integral del ecosistema Hadoop, que es una solución universal para organizar el procesamiento de Big Data.

Aprenderá más detalles sobre el uso de Apache Hive en proyectos de análisis de big data en cursos prácticos sobre Hive.

¿Qué es una Hive?

Hive es una herramienta de almacenamiento de datos y ETL construida sobre el sistema de archivos distribuido Hadoop (HDFS). Hive facilita hacer cosas como:

  • Encapsulación de datos
  • Solicitudes especiales
  • Análisis de enormes conjuntos de datos.

¿Dónde se usa?

Apache Hive se utiliza ampliamente en diversos escenarios de análisis y procesamiento de big data. A continuación se muestran algunas áreas en las que se utiliza Apache Hive con mayor frecuencia:

Análisis de grandes datos

Apache Hive y su lenguaje de consulta HiveQL se pueden utilizar para analizar big data almacenados en el sistema de archivos distribuido Hadoop. Por ejemplo, realice consultas analíticas complejas: agregación, filtrado, clasificación y combinación de datos.

Informes y análisis de negocios

Apache Hive brinda la capacidad de crear informes y ejecutar consultas analíticas para obtener información empresarial valiosa. Con la compatibilidad con HiveQL, los usuarios pueden formular consultas fácilmente y obtener resultados en un formato comprensible.

Procesamiento y monitoreo de registros

Con HiveQL en Apache Hive, puede filtrar, agregar y analizar datos de registro para obtener información sobre el rendimiento, los errores o el comportamiento del usuario.

Integración con inteligencia de negocios (BI)

La integración de Apache Hive con herramientas populares de inteligencia empresarial (BI) como Tableau permite a los usuarios crear visualizaciones basadas en datos almacenados en Hive. Pueden crear gráficos, cuadros, paneles y otros tipos de visualizaciones para visualizar y analizar datos de Hive.

Almacenamiento de datos

Las capacidades de Hive le permiten crear y administrar almacenes de datos donde los usuarios pueden estructurar datos en tablas, optimizar e indexar consultas para ejecutar consultas analíticas complejas de manera eficiente. Hive proporciona herramientas para organizar y optimizar el procesamiento de datos, lo que mejora el rendimiento de las operaciones analíticas.

Procesamiento y preprocesamiento de datos.

Hive es adecuado para preprocesar datos antes de analizarlos. Por ejemplo, los usuarios pueden utilizar Apache Hive para leer y transformar datos, filtrar selecciones y agregar y unir datos de diferentes fuentes.

Aprendizaje automático

Apache Hive puede integrarse con herramientas de aprendizaje automático como Apache Spark o TensorFlow. Esto permite a los usuarios procesar y analizar datos como parte del proceso de entrenamiento de modelos de aprendizaje automático.

Características importantes de la colmena

  • En Hive, primero se crean tablas y bases de datos y luego se cargan los datos en estas tablas.
  • Hive como almacén de datos diseñado para gestionar y consultar únicamente datos estructurados almacenados en tablas.
  • Cuando se trabaja con datos estructurados, Map Download no tiene las funciones de optimización y usabilidad como UDF, pero sí en el entorno Hive. La optimización de consultas es una forma eficiente en el rendimiento de ejecutar consultas.
  • El lenguaje basado en SQL de Hive separa al usuario de la calidad de programación de Computer.plex MapReduce. Para facilitar el aprendizaje, reutiliza conceptos familiares del mundo de las bases de datos relacionales, como tablas, filas, columnas, esquemas, etc.
  • La programación de Hadoop funciona con archivos planos. De esta manera, Hive puede utilizar estructuras de directorios para “particionar” datos y mejorar el rendimiento al ejecutar determinadas consultas.
  • Un componente nuevo e importante de Hive, es decir. Metastore se utiliza para almacenar información del esquema. Este Metastore normalmente reside en una base de datos relacional. Podemos interactuar con Hive usando métodos como
    • interfaz web
    • Interfaz de conectividad de base de datos Java (JDBC)
  • La mayoría de las interacciones suelen ocurrir a través de la interfaz de línea de comandos (CLI). Hive proporciona una interfaz de línea de comandos para escribir consultas de Hive utilizando Hive Query Language (HQL).
  • En general, la sintaxis HQL es similar a la sintaxis SQL con la que están familiarizados la mayoría de los analistas de datos. La siguiente consulta de ejemplo muestra todos los registros presentes en la tabla especificada.
    • Solicitud de muestra : Seleccione entre
  • Hive admite cuatro formatos de archivo: ARCHIVO DE TEXTO, ARCHIVO SECUENCIAL, ORC y RCFILE (archivo de registro en columnas).
  • Para almacenar metadatos de un solo usuario, Hive usa una base de datos Derby y para almacenar metadatos de múltiples usuarios o metadatos compartidos, Hive usa MYSQL.

Algunos puntos clave sobre Hive:

  • La principal diferencia entre HQL y SQL es que las consultas de Hive se ejecutan en la infraestructura de Hadoop en lugar de en una base de datos tradicional.
  • Ejecutar una consulta de Hive será como una serie de trabajos de reducción de mapas generados automáticamente.
  • Hive admite los conceptos de particiones y segmentos para facilitar la recuperación de datos cuando un cliente realiza una consulta.
  • Hive admite UDF (funciones definidas por el usuario) especiales para la limpieza y filtrado de datos, etc. Hive UDF se puede definir de acuerdo con los requisitos de los programadores.

Colmena vs bases de datos relacionales

Usando Hive, podemos realizar algunas funciones específicas que no están disponibles en las bases de datos relacionales. Para grandes cantidades de datos, expresadas en petabytes, es importante ejecutar la consulta y obtener resultados en segundos. Y Hive hace esto de manera bastante eficiente, procesa consultas rápidamente y produce resultados en un segundo.

Veamos ahora qué hace que Hive sea tan rápido.

Algunas diferencias clave entre Hive y las bases de datos relacionales son las siguientes.wing;

Las bases de datos relacionales tienen ” esquema en lectura y esquema en escritura “. Primero cree una tabla y luego inserte datos en una tabla específica. Se pueden realizar funciones como inserciones, actualizaciones y modificaciones en tablas de bases de datos relacionales.

The Hive es un ” circuito de solo lectura “. Por lo tanto, funciones como actualización, modificación, etc. no funcionan con esto. Porque una consulta de Hive en un clúster típico se ejecuta en varios nodos de datos. Por lo tanto, no es posible actualizar ni cambiar datos en varios nodos. (Versiones de Hive inferiores a 0.13)

Además, Hive admite el patrón ” LEER Muchos ESCRIBIR UNA VEZ “. Esto significa que una vez que se inserta una tabla, podemos actualizarla en las últimas versiones de Hive.

NOTA : Sin embargo, la nueva versión de Hive tiene funciones actualizadas. Las versiones de Hive (Hive 0.14) incluyen opciones de actualización y eliminación como funciones nuevas.

Arquitectura de colmena

Arquitectura de colmena

La captura de pantalla anterior explica la arquitectura de Apache Hive en detalle.

La colmena consta principalmente de 3 partes principales.

  1. Clientes de la Hive
  2. Servicios de Hive
  3. Almacenamiento y cálculos de Hive.

Clientes de la Hive:

Hive proporciona diferentes controladores para comunicarse con diferentes tipos de aplicaciones. Para aplicaciones basadas en Thrift, proporciona un cliente Thrift para la comunicación.

Para aplicaciones relacionadas con Java , proporciona controladores JDBC. Además de cualquier tipo de aplicación, se proporcionan controladores ODBC. Estos clientes y controladores, a su vez, se comunican nuevamente con el servidor de Hive en los servicios de Hive.

Servicios de Hive:

La interacción del cliente con Hive se puede realizar a través de los Servicios de Hive. Si un cliente desea realizar alguna operación relacionada con consultas en Hive, debe comunicarse a través de los servicios de Hive.

La CLI es una interfaz de línea de comandos que actúa como un servicio de Hive para operaciones DDL (lenguaje de definición de datos). Todos los controladores se comunican con el servidor de Hive y con el controlador principal de los servicios de Hive, como se muestra en el diagrama de arquitectura anterior.

El controlador presente en los servicios de Hive es el controlador principal e interactúa con todo tipo de JDBC, ODBC y otras aplicaciones cliente. El controlador procesará estas solicitudes desde varias aplicaciones al metastore y a los sistemas de campo para su posterior procesamiento.

Almacenamiento y cálculos de Hive:

Los servicios de Hive, como el metastore, el sistema de archivos y el cliente de trabajos, a su vez interactúan con el almacén de Hive y realizan las siguientes acciones: acciones de ala

  • Los metadatos de las tablas creadas en Hive se almacenan en la “Base de datos de almacenamiento de metadatos” de Hive.
  • Los resultados de la consulta y los datos cargados en las tablas se almacenarán en el clúster de Hadoop en HDFS.

Procedimiento para completar la tarea:

Procedimiento para completar la tarea.

En la captura de pantalla anterior, podemos comprender el proceso de ejecución de un trabajo en Hive con Hadoop.

El flujo de datos en Hive se comporta de la siguiente manera.patrón de ala;

  1. Ejecutar una consulta desde la interfaz de usuario (UI)
  2. El controlador interactúa con el compilador para obtener el plan. (Aquí, el plan se refiere a la ejecución de la consulta) y la recopilación de metadatos asociados.
  3. El compilador crea un plan para ejecutar el trabajo. El compilador interactúa con el almacén de metadatos para obtener la solicitud de metadatos.
  4. El almacén de metadatos envía información de metadatos al compilador.
  5. El compilador le dice al conductor el plan propuesto para ejecutar la solicitud.
  6. El controlador envía planes de ejecución al motor de ejecución.
  7. El motor de ejecución (EE) actúa como puente entre Hive y Hadoop para procesar la solicitud. Para operaciones DFS.
  • El EE debe contactar primero con el nodo de nombre y luego con los nodos de datos para recuperar los valores almacenados en las tablas.
  • EE recuperará los registros requeridos de los nodos de datos. Los datos reales de la tabla están solo en el nodo de datos. Mientras que desde el nodo de nombre solo recupera los metadatos de la solicitud.
  • Recopila los datos reales de los nodos de datos asociados con la consulta mencionada.
  • El motor de ejecución (EE) interactúa bidireccionalmente con el meta almacén presente en Hive para realizar operaciones DDL (lenguaje de definición de datos). Aquí es donde se realizan operaciones DDL como CREAR, SOLTAR y ALTERAR tablas y bases de datos. El metastore solo almacenará información sobre el nombre de la base de datos, los nombres de las tablas y los nombres de las columnas. Recuperará los datos asociados a la solicitud mencionada.
  • El motor de ejecución (EE), a su vez, interactúa con los demonios de Hadoop, como el nodo de nombre, los nodos de datos y el rastreador de trabajos, para ejecutar la consulta sobre el sistema de archivos de Hadoop.
  1. Obtener resultados del conductor
  2. Envío de resultados al motor de ejecución. Una vez que se reciben los resultados de los nodos de datos en el EE, los enviará de regreso al controlador y a la interfaz de usuario (UI).

Hive Contacto constante con el sistema de archivos Hadoop y sus demonios a través del motor de ejecución. La flecha punteada en el diagrama de flujo de trabajo muestra la conexión del motor de ejecución a los demonios de Hadoop.

Varios modos de colmena

Hive puede funcionar en dos modos según el tamaño de los nodos de datos en Hadoop.

Estos modos

  • Modo local
  • Modo de alejamiento

Cuándo usar el modo local:

  • Si Hadoop está instalado en modo pseudo con un solo nodo de datos, usamos Hive en este modo.
  • Si el tamaño de los datos es menor porque está limitado a una computadora local, podemos usar este modo.
  • El procesamiento será muy rápido para pequeños conjuntos de datos presentes en la máquina local.

Cuándo utilizar el modo de alejamiento del mapa:

  • Si Hadoop tiene varios nodos de datos y los datos se distribuyen en diferentes nodos, usamos Hive en este modo.
  • Trabajará con una gran cantidad de conjuntos de datos y las consultas se ejecutarán en paralelo.
  • Este modo puede proporcionar procesamiento de grandes conjuntos de datos con mayor rendimiento.

En Hive, podemos configurar esta propiedad para indicar en qué modo se puede ejecutar Hive. De forma predeterminada, funciona en modo de reducción de mapa y para el modo local puede usar el siguiente comando: wing install.

Hive configurado para ejecutarse en modo local

SET mapred.job.tracker=local;

Desde la versión 0.7 de Hive, admite un modo para ejecutar automáticamente trabajos de reducción de mapas en modo local.

¿Qué es Hive Server2 (HS2)?

HiveServer2 (HS2) es una interfaz de servidor que realiza las siguientes funciones .wing:

  • Permite a los clientes remotos consultar Hive.
  • Obtener resultados de las consultas mencionadas

La última versión trae algunas características avanzadas como Thrift RPC;

  • Simultaneidad multicliente
  • Autenticación

Resultados

Hive es una herramienta de almacenamiento de datos y ETL basada en Hadoop. ecosSystem y se utiliza para procesar datos estructurados y semiestructurados.

  • Hive es una base de datos presente en Hadoop. El ecosistema realiza operaciones DDL y DML y también proporciona un lenguaje de consulta flexible como HQL para consultar y procesar datos de manera más eficiente.
  • Proporciona muchas funciones en comparación con RDMS, que tiene ciertas limitaciones.

Para una lógica personalizada específica que cumpla con los requisitos del cliente.

  • Proporciona la capacidad de escribir e implementar scripts personalizados y funciones personalizadas.
  • Además, proporciona particiones y segmentos para una lógica de almacenamiento específica.

pros

Amplia integración

Hive se integra con otras herramientas del ecosistema Hadoop, lo que le permite aprovechar una variedad de recursos de ciencia de datos.

Soporte de datos grandes

Apache Hive es capaz de procesar y analizar volúmenes de datos de varios terabytes y petabytes, lo que lo hace adecuado para trabajar con Big Data.

Facilidad de uso

Hive proporciona una interfaz de alto nivel y un lenguaje de consulta familiar, lo que lo hace accesible incluso para usuarios sin amplios conocimientos de programación.

Desventajas

Retraso de ejecución

El uso de Hive para procesar datos puede resultar lento debido a la necesidad de traducir consultas en tareas de MapReduce y otras operaciones, lo que puede provocar retrasos en la ejecución de las consultas.

Soporte de transacciones limitado

Hive no tiene soporte completo para transacciones, lo que puede resultar problemático cuando se trata de operaciones que requieren atomicidad y coherencia de los datos.

Limitaciones del procesamiento de datos en tiempo real

Debido a sus características de procesamiento distribuido y latencia de ejecución, Hive no es adecuado para procesamiento de datos en tiempo real o cargas de trabajo de baja latencia.

Rocas submarinas

La necesidad de optimizar las consultas.

Lograr un buen rendimiento en Hive a menudo requiere optimizar las consultas y la estructura de datos, especialmente cuando se trabaja con consultas analíticas complejas.

Dificultad para configurar y administrar

Hive requiere ciertos conocimientos para configurar y administrar un clúster, lo que puede resultar un desafío para los principiantes o aquellos sin experiencia con el ecosistema Hadoop.

Demanda de Apache Hive en el mercado

El conocimiento de Apache Hive puede resultar útil para quienes trabajan con grandes cantidades de datos y desean analizar, procesar y agregar estos datos. Sin embargo, si sus necesidades no requieren trabajar con datos distribuidos o consultas analíticas, puede tomarse su tiempo con Apache Hive.

¿Cómo dominarlo?

Para dominar Apache Hive, necesita habilidades de consulta y procesamiento de datos. Necesitará conocimientos de sistemas distribuidos y del ecosistema Hadoop, así como conocimientos de SQL o lenguajes de consulta similares. Aquí hemos reunido algunos recursos útiles para ayudarle a comenzar a usar Hive más rápido.

Leer

Documentación

en Inglés

Autor Donal Sandro Noblejas Huamán

Lima Perú 🇵🇪 

Whatsapp:51924118897 – 51939416004

Sitio web verlista.com

verlista.com

https://pe.linkedin.com/in/donal-sandro-noblejas-huaman

You may also like

Leave a Comment

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00