Índice del contenido[Esconder][Espectáculo]
Hive es una herramienta de análisis de Big Data ampliamente utilizada en el negocio, y es un lugar fantástico para comenzar si es nuevo en Big Data. Esta lección de Apache Hive repasa los fundamentos de Apache Hive, por qué es necesaria una colmena, sus características y todo lo demás que debe saber.
Primero comprendamos el marco Hadoop sobre el que se basa Apache Hive.
Apache Hadoop
Apache Hadoop es un programa gratuito y De código abierto plataforma para almacenar y procesar grandes conjuntos de datos que varían en tamaño desde gigabytes hasta petabytes. Hadoop permite agrupar numerosas computadoras para analizar enormes conjuntos de datos en paralelo, en lugar de requerir una sola computadora grande para almacenar y analizar los datos.
MapReduce y Hadoop Distributed File System son dos de los componentes:
- MapReduce – MapReduce es una técnica de programación paralela para manejar grandes volúmenes de datos organizados, semiestructurados y no estructurados en clústeres de hardware básicos.
- HDFS – HDFS (Sistema de archivos distribuidos de Hadoop) es un componente del marco de Hadoop que almacena y procesa datos. Es un sistema de archivos tolerante a fallas que se ejecuta en hardware estándar
Se utilizan diferentes subproyectos (herramientas) en el ecosistema de Hadoop, incluidos Sqoop, Pig y Hive, para ayudar a los módulos de Hadoop.
- Colmena – Hive es un marco para escribir secuencias de comandos de estilo SQL que realizan cálculos de MapReduce.
- Cerdo – Pig es un lenguaje de programación procedimental que se puede utilizar para crear un script para los procesos de MapReduce.
- sqoop – Sqoop es una herramienta para importar y exportar datos entre HDFS y RDBMS.
Que es Colmena Apache?
Apache Hive es un código abierto almacenamiento de datos programa para leer, escribir y administrar grandes conjuntos de datos almacenados directamente en el sistema de archivos distribuido Apache Hadoop (HDFS) u otros sistemas de almacenamiento de datos como Apache HBase.
Los desarrolladores de SQL pueden usar Hive para crear declaraciones Hive Query Language (HQL) para la consulta y el análisis de datos que son comparables a las declaraciones SQL regulares. Fue creado para facilitar la programación de MapReduce al eliminar la necesidad de aprender y escribir código Java extenso. En su lugar, puede escribir sus consultas en HQL y Hive creará el mapa y reducirá las funciones por usted.
La interfaz similar a SQL de Apache Hive se ha convertido en el estándar de oro para realizar búsquedas ad-hoc, resumir y analizar datos de Hadoop. Cuando se incluye en la nube redes informáticas, esta solución es especialmente rentable y escalable, razón por la cual muchas empresas, incluidas Netflix y Amazon, continúan desarrollando y mejorando Apache Hive.
Historia
Durante su tiempo en Facebook, Joydeep Sen Sarma y Ashishthusoo co-crearon Apache Hive. Ambos reconocieron que para aprovechar al máximo Hadoop, tendrían que crear algunas tareas Java Map-Reduce bastante complicadas. Reconocieron que no podrían educar a sus equipos analíticos y de ingeniería en rápida expansión sobre las habilidades que necesitarían para aprovechar Hadoop en toda la empresa. Los ingenieros y analistas utilizaban con frecuencia SQL como interfaz de usuario.
Si bien SQL podría satisfacer la mayoría de las necesidades de análisis, los desarrolladores también tenían la intención de incorporar la capacidad de programación de Hadoop. Apache Hive surgió de estos dos objetivos: un lenguaje declarativo basado en SQL que también permitía a los desarrolladores incorporar sus propios scripts y programas cuando SQL no era suficiente.
También se desarrolló para almacenar metadatos centralizados (basados en Hadoop) sobre todos los conjuntos de datos de la empresa para facilitar la construcción de organizaciones basadas en datos.
¿Cómo funciona Apache Hive?
En pocas palabras, Apache Hive convierte un programa de entrada escrito en el lenguaje HiveQL (similar a SQL) en una o más tareas Java MapReduce, Tez o Spark. (Todos estos motores de ejecución son compatibles con Hadoop YARN). Después de eso, Apache Hive organiza los datos en tablas para el sistema de archivos distribuido de Hadoop (HDFS) y realiza las tareas en un clúster para obtener una respuesta.
Datos
Las tablas de Apache Hive están organizadas de la misma manera que las tablas de una base de datos relacional, con unidades de datos que varían en tamaño de mayor a menor. Las bases de datos se componen de tablas que se dividen en divisiones, que a su vez se dividen en cubos. HiveQL (Hive Query Language) se utiliza para acceder a los datos, que se pueden modificar o agregar. Los datos de la tabla se serializan dentro de cada base de datos y cada tabla tiene su propio directorio HDFS.
Arquitectura
Ahora hablaremos sobre el aspecto más importante de Hive Architecture. Los componentes de Apache Hive son los siguientes:
Metatienda — Realiza un seguimiento de la información sobre cada mesa, como su estructura y ubicación. Los metadatos de la partición también se incluyen en Hive. Esto permite que el controlador realice un seguimiento del progreso de diferentes conjuntos de datos repartidos por el clúster. Los datos se almacenan en un formato RDBMS convencional. Los metadatos de Hive son extremadamente importantes para que el controlador realice un seguimiento de los datos. El servidor de respaldo duplica los datos regularmente para que puedan recuperarse en caso de pérdida de datos.
Destornillador – Las declaraciones de HiveQL son recibidas por un controlador, que funciona como un controlador. Al establecer sesiones, el controlador inicia la ejecución de la sentencia. Realiza un seguimiento de la vida útil y el progreso del ejecutivo. Durante la ejecución de una instrucción HiveQL, el controlador guarda los metadatos necesarios. También sirve como punto de recogida de datos o resultados de consultas tras el proceso Reducir.
Compilador – Ejecuta la compilación de consultas de HiveQL. La consulta ahora se convierte en un plan de ejecución. Las tareas se enumeran en el plan. También incluye los pasos que debe realizar MapReduce para obtener el resultado traducido por la consulta. El compilador de Hive (AST) convierte la consulta en un árbol de sintaxis abstracta. Convierte el AST en un gráfico acíclico dirigido después de verificar la compatibilidad y las fallas en tiempo de compilación (DAG).
Optimizador – Optimiza DAG realizando diferentes cambios en el plan de ejecución. Combina transformaciones para mejorar la eficiencia, como convertir una canalización de uniones en una única unión. Para mejorar la velocidad, el optimizador puede dividir actividades, como aplicar una transformación a los datos antes de realizar una operación de reducción.
Ejecutor – El ejecutor ejecuta las tareas cuando finaliza la compilación y la optimización. Los trabajos son canalizados por el Ejecutor.
CLI, interfaz de usuario y servidor Thrift – La interfaz de línea de comandos (CLI) es una interfaz de usuario que permite que un usuario externo se comunique con Hive. El servidor de ahorro de Hive, similar a los protocolos JDBC u ODBC, permite que los clientes externos se comuniquen con Hive a través de una red.
Seguridad
Apache Hive está integrado con la seguridad de Hadoop, que utiliza Kerberos para la autenticación mutua cliente-servidor. El HDFS dicta permisos para los archivos recién generados en Apache Hive, lo que le permite aprobarlos por parte del usuario, el grupo y otros.
Características principales
- Hive admite tablas externas, que le permiten procesar datos sin almacenarlos en HDFS.
- También permite la segmentación de datos a nivel de tabla para aumentar la velocidad.
- Apache Hive satisface de forma excelente la necesidad de interfaz de bajo nivel de Hadoop.
- Hive facilita el resumen, la consulta y el análisis de datos.
- HiveQL no requiere conocimientos de programación; una simple comprensión de las consultas SQL es suficiente.
- También podemos usar Hive para realizar consultas ad-hoc para el análisis de datos.
- Es escalable, familiar y adaptable.
- HiveQL no requiere conocimientos de programación; una simple comprensión de las consultas SQL es suficiente.
Beneficios
Apache Hive permite informes al final del día, evaluaciones de transacciones diarias, búsquedas ad-hoc y análisis de datos. Los conocimientos completos proporcionados por Apache Hive brindan importantes ventajas competitivas y le facilitan responder a las demandas del mercado.
Estos son algunos de los beneficios de tener dicha información fácilmente disponible:
- Facilidad de uso – Con su lenguaje similar a SQL, la consulta de datos es fácil de entender.
- Inserción de datos acelerada — Debido a que Apache Hive lee el esquema sin verificar el tipo de tabla o la definición del esquema, los datos no tienen que leerse, analizarse y serializarse en el disco en el formato interno de la base de datos. Por el contrario, en una base de datos convencional, los datos deben validarse cada vez que se agregan.
- Escalabilidad, flexibilidad y rentabilidad superiores – Debido a que los datos se almacenan en HDFS, Apache Hive puede contener cientos de petabytes de datos, lo que la convierte en una opción mucho más escalable que una base de datos típica. Apache Hive, como un servicio de Hadoop basado en la nube, permite a los clientes activar y desactivar rápidamente servidores virtuales para cumplir con las cargas de trabajo cambiantes.
- Amplia capacidad de trabajo – Grandes conjuntos de datos pueden gestionar hasta 100,000 XNUMX consultas por hora.
Limitaciones
- En general, las consultas de Apache Hive tienen una latencia muy alta.
- El soporte de subconsultas es limitado.
- Las consultas en tiempo real y los cambios a nivel de fila no están disponibles en Apache Hive.
- No hay soporte para vistas materializadas.
- En la colmena, no se admiten las acciones de actualización y eliminación.
- No está diseñado para OLTP (proceso de transición en línea).
Primeros pasos con Apache Hive
Apache Hive es un sólido socio de Hadoop que simplifica y agiliza sus flujos de trabajo. Para aprovechar al máximo Apache Hive, la integración perfecta es esencial. El primer paso es ir a la página web.
1. Colmena de instalación desde una versión estable
Comience por descargar la versión estable más reciente de Hive desde uno de los espejos de descarga de Apache (consulte Lanzamientos de colmena). A continuación, se debe desempaquetar el tarball. Esto creará una subcarpeta llamada hive-xyz (donde xyz es el número de versión):
Configure la variable de entorno HIVE_HOME para que apunte al directorio de instalación:
Finalmente, agregue $HIVE_HOME/bin a su PATH
:
2. Colmena corriendo
Hive usa Hadoop, entonces:
- debe tener Hadoop en su camino O
3. Operación DLL
Creación de una tabla Hive
genera una tabla llamada pokes con dos columnas, la primera de las cuales es un número entero y la segunda es una cadena.
Navegación a través de tablas
Listado de todas las tablas
Alteración y eliminación de tablas
Los nombres de las tablas se pueden cambiar y las columnas se pueden agregar o reemplazar:
Vale la pena señalar que REEMPLAZAR COLUMNAS reemplaza todas las columnas existentes y solo cambia la estructura de la tabla y no los datos. Se debe utilizar un SerDe nativo en la tabla. REEMPLAZAR COLUMNAS también se puede usar para eliminar columnas del esquema de una tabla:
Eliminación de tablas
Hay muchas operaciones y características adicionales en Apache Hive que puede conocer visitando el sitio web oficial.
Conclusión
La definición de Hive es una interfaz de programa de datos para consultar y analizar grandes conjuntos de datos que se construyen sobre Apache Hadoop. Los profesionales lo eligen sobre otros programas, herramientas y software, ya que está diseñado principalmente para datos extensos de Hive y es fácil de usar.
Espero que este tutorial lo ayude a comenzar con Apache Hive y hacer que sus flujos de trabajo sean más eficientes. Háganos saber en los comentarios.
Deje un comentario