Podcast
Questions and Answers
¿Cuál de las siguientes opciones describe mejor el propósito principal de Apache Hive?
¿Cuál de las siguientes opciones describe mejor el propósito principal de Apache Hive?
- Permitir consultas SQL sobre datos distribuidos en entornos Hadoop. (correct)
- Proporcionar una interfaz para la manipulación directa de datos en HDFS.
- Gestionar la infraestructura de red en clústeres de computadoras.
- Ejecutar aplicaciones Java directamente sobre datos masivos.
¿Cuál es la principal función de HiveQL en el contexto de Apache Hive?
¿Cuál es la principal función de HiveQL en el contexto de Apache Hive?
- Controlar el acceso y la seguridad de los datos.
- Permitir la ejecución de consultas SQL-like para el análisis de datos. (correct)
- Gestionar la asignación de recursos del clúster.
- Definir la estructura interna de los archivos de datos.
¿Cuál de los siguientes motores de ejecución puede utilizar Apache Hive para procesar consultas?
¿Cuál de los siguientes motores de ejecución puede utilizar Apache Hive para procesar consultas?
- Solo Spark o Tez.
- MapReduce y Hadoop.
- Únicamente MapReduce.
- MapReduce, Spark y Tez. (correct)
¿Qué tipo de procesamiento es más adecuado para Apache Hive?
¿Qué tipo de procesamiento es más adecuado para Apache Hive?
¿Cuál de las siguientes opciones describe mejor el concepto de 'schema-on-read' en Apache Hive?
¿Cuál de las siguientes opciones describe mejor el concepto de 'schema-on-read' en Apache Hive?
¿Qué componentes son necesarios para conectarse al servicio principal de Hive (hiveserver2)?
¿Qué componentes son necesarios para conectarse al servicio principal de Hive (hiveserver2)?
¿Qué ocurre con los datos subyacentes cuando se elimina una tabla gestionada en Hive?
¿Qué ocurre con los datos subyacentes cuando se elimina una tabla gestionada en Hive?
¿Cuál es la función del metastore en la arquitectura de Hive?
¿Cuál es la función del metastore en la arquitectura de Hive?
¿Cuál de las siguientes afirmaciones describe una característica clave de las tablas externas en Hive?
¿Cuál de las siguientes afirmaciones describe una característica clave de las tablas externas en Hive?
¿Cuál es la función del proceso impalad
en Apache Impala?
¿Cuál es la función del proceso impalad
en Apache Impala?
¿Cuál es la principal diferencia entre Apache Hive y Apache Impala en términos de procesamiento de consultas?
¿Cuál es la principal diferencia entre Apache Hive y Apache Impala en términos de procesamiento de consultas?
¿Cuál es el propósito del demonio statestored
en la arquitectura de Impala?
¿Cuál es el propósito del demonio statestored
en la arquitectura de Impala?
¿Qué función cumple el demonio catalogd
en Impala?
¿Qué función cumple el demonio catalogd
en Impala?
¿Cómo se asegura Impala de que todos los nodos tengan la información más reciente sobre los metadatos?
¿Cómo se asegura Impala de que todos los nodos tengan la información más reciente sobre los metadatos?
¿Qué sentencias se deben ejecutar manualmente en Impala después de modificar una tabla desde Hive para asegurar que Impala vea los cambios?
¿Qué sentencias se deben ejecutar manualmente en Impala después de modificar una tabla desde Hive para asegurar que Impala vea los cambios?
¿Cuál de los siguientes formatos de archivo es compatible tanto con Apache Hive como con Apache Impala?
¿Cuál de los siguientes formatos de archivo es compatible tanto con Apache Hive como con Apache Impala?
¿Qué tipo de aplicaciones son más apropiadas para usar Impala en lugar de Hive?
¿Qué tipo de aplicaciones son más apropiadas para usar Impala en lugar de Hive?
¿Cuál de las siguientes NO es una forma en que las aplicaciones pueden interactuar con Impala?
¿Cuál de las siguientes NO es una forma en que las aplicaciones pueden interactuar con Impala?
¿Qué lenguaje de consulta utilizan tanto Apache Hive como Apache Impala?
¿Qué lenguaje de consulta utilizan tanto Apache Hive como Apache Impala?
En la arquitectura de Hive sobre MapReduce, ¿qué componente convierte la consulta en un abstract syntax tree (AST)?
En la arquitectura de Hive sobre MapReduce, ¿qué componente convierte la consulta en un abstract syntax tree (AST)?
¿Cuál es el repositorio central para los metadatos que necesita Hive?
¿Cuál es el repositorio central para los metadatos que necesita Hive?
¿En qué consiste la configuración denominada metastore embebido
en Hive?
¿En qué consiste la configuración denominada metastore embebido
en Hive?
¿Por qué es necesario utilizar la configuración de metastore local
en Hive en lugar de la de metastore embebido
?
¿Por qué es necesario utilizar la configuración de metastore local
en Hive en lugar de la de metastore embebido
?
¿Qué componente de Hive se encarga de enviar el plan de trabajos al clúster de Hadoop y de actualizar el metastore
si es necesario?
¿Qué componente de Hive se encarga de enviar el plan de trabajos al clúster de Hadoop y de actualizar el metastore
si es necesario?
¿Cuál de los siguientes lenguajes de programación es necesario dominar para utilizar Apache Hive?
¿Cuál de los siguientes lenguajes de programación es necesario dominar para utilizar Apache Hive?
Si se tiene un fichero de datos con delimitadores de más de un carácter, ¿qué se debe hacer antes de crear la tabla en Hive?
Si se tiene un fichero de datos con delimitadores de más de un carácter, ¿qué se debe hacer antes de crear la tabla en Hive?
¿Cuál es el principal objetivo de Apache Impala?
¿Cuál es el principal objetivo de Apache Impala?
¿Qué tipo de conexiones son proporcionadas por Apache Impala para que los clientes externos se conecten al servicio?
¿Qué tipo de conexiones son proporcionadas por Apache Impala para que los clientes externos se conecten al servicio?
¿Qué ocurre si uno de los demonios de Impala cae debido a un fallo en el hardware o en la red?
¿Qué ocurre si uno de los demonios de Impala cae debido a un fallo en el hardware o en la red?
Flashcards
¿Qué es Apache Hive?
¿Qué es Apache Hive?
Sistema para manejar datos (leer, escribir, ETL, reporting y análisis) mediante SQL en datos distribuidos.
¿Qué es HiveQL?
¿Qué es HiveQL?
Lenguaje de consulta utilizado por Apache Hive.
¿Qué es OLAP en Hive?
¿Qué es OLAP en Hive?
Análisis en bloque del informacional (datos históricos) de la empresa.
¿Qué es el metastore de Hive?
¿Qué es el metastore de Hive?
Signup and view all the flashcards
¿Qué son tablas gestionadas en Hive?
¿Qué son tablas gestionadas en Hive?
Signup and view all the flashcards
¿Qué son tablas externas en Hive?
¿Qué son tablas externas en Hive?
Signup and view all the flashcards
¿Qué es Apache Impala?
¿Qué es Apache Impala?
Signup and view all the flashcards
¿Que hace el cliente de Impala?
¿Que hace el cliente de Impala?
Signup and view all the flashcards
¿Qué es el demonio de Impala?
¿Qué es el demonio de Impala?
Signup and view all the flashcards
¿Qué misión tiene Statestore?
¿Qué misión tiene Statestore?
Signup and view all the flashcards
¿Qué es Catalog service?
¿Qué es Catalog service?
Signup and view all the flashcards
¿Hive es una base de datos relacional?
¿Hive es una base de datos relacional?
Signup and view all the flashcards
¿Cómo se comprueba el esquema en BD tradicionales?
¿Cómo se comprueba el esquema en BD tradicionales?
Signup and view all the flashcards
¿Cómo se comprueba el esquema en Hive?
¿Cómo se comprueba el esquema en Hive?
Signup and view all the flashcards
Study Notes
Introducción y objetivos
- El capítulo se enfoca en Apache Hive y Apache Impala, dos herramientas importantes en el ecosistema big data, ambas herramientas de código abierto apoyadas por ASF.
- Apache Hive permite realizar consultas SQL sobre datos distribuidos en el ecosistema Hadoop, utilizando motores como MapReduce, Spark o Tez.
- Apache Impala facilita el acceso uniforme a diversas fuentes de datos distribuidas mediante SQL.
- El capítulo explorará las similitudes entre estas herramientas, con especial énfasis en sus diferencias.
- Entre los objetivos se encuentran comprender la potencia de Apache Hive y Apache Impala y sus aplicaciones.
Apache Hive
- Tecnologías como MapReduce o Spark posibilitan el procesamiento de grandes cantidades de datos, ofreciendo flexibilidad y escalabilidad.
- Apache Hive permite consultar grandes volúmenes de datos a través de un lenguaje conocido como SQL, en lugar de lenguajes de programación más complejos.
- Apache Hive es un sistema de data warehouse para lectura, escritura, ETL, reporting y análisis de datos almacenados de manera distribuida, desarrollado por Facebook y donado a la Apache Software Foundation.
- Apache Hive proporciona una estructura SQL para manejar datos estructurados en fuentes como HDFS, HBase y Amazon S3.
- Se facilita el acceso a los datos mediante SQL, enfocado a analistas de inteligencia de negocio sin experiencia en Java.
- El lenguaje de consulta de Apache Hive, HiveQL, permite ejecutar sentencias SQL estándar e incluye soporte para funciones definidas por el usuario (UDF) y tipos de datos complejos.
- Apache Hive se emplea principalmente en modo OLAP, para análisis en bloque de datos históricos, no siendo adecuado para OLTP debido a su falta de interactividad con respuestas rápidas.
Ejemplo de uso de Apache Hive
- Para consultar datos almacenados en un clúster Hadoop, se utiliza un lenguaje similar a SQL; por ejemplo, examinando un archivo flights.csv almacenado en HDFS.
- Hive organiza los datos en tablas, similar a una base de datos relacional.
- Para gestionar datos de vuelos, se crea una tabla especificando el nombre, tipo de datos de cada columna (year, month, day, origin, dest), y el formato de los campos.
- Para cargar datos en la tabla, se utiliza la sentencia
LOAD DATA INPATH
, que coloca el fichero en el directorio donde Hive almacena los datos. - Hive coloca los ficheros en una estructura de directorios para facilitar su consulta, almacenándolos verbatim, sin modificación.
- Se pueden realizar consultas como la contabilización de vuelos por aeropuerto de destino usando SQL, sin necesidad de programar.
- Hive transforma la consulta en un trabajo para MapReduce, Tez o Spark, devolviendo el resultado al analista.
- El motor de ejecución puede ser MapReduce, Apache Spark o Apache Tez, siendo este último el predeterminado, la consulta SQL se traduce a un job.
- Apache Tez es un motor de ejecución similar a Spark, orientado a la ejecución de DAG de tareas y utilizado en aplicaciones Hadoop como Hive o Pig.
Funcionamiento de Hive
- Hay distintas formas de usar Hive, se interactúa por medio de diferentes clientes (aplicaciones).
Componentes de Hive
- Hiveserver2 es un proceso demonio que se ejecuta en segundo plano y escucha peticiones en lenguaje HiveQL.
- CLI (command line interface) es una línea de comandos con conexión directa al driver, eliminado en versiones más recientes.
- HWI (Hive web interface) es una interfaz web alternativa a la línea de comandos.
Formas de conectarse al servicio principal, hiveserver2
- Cliente Thrift, que permite interactuar usando lenguajes de programación que soporten la definición de interfaz Thrift, como Python o Ruby.
- Driver JDBC, que permite a aplicaciones Java conectarse a Hive utilizando una dirección JDBC.
- Driver ODBC, que permite a aplicaciones compatibles con el protocolo ODBC, como Tableau o PowerBI, conectarse a Hive.
Arquitectura de Hive sobre MapReduce
- Es importante examinar la arquitectura original de Hive, cuando las consultas se traducían a trabajos de MapReduce, pero actualmente, lo habitual es que el motor de ejecución sea Spark o Tez.
Módulos de la arquitectura de Hive
- Driver, que recibe sentencias SQL, coordina la ejecución, recoge resultados y los devuelve a la interfaz.
- Compilador, que transforma la consulta en un árbol de sintaxis abstracta (AST) y lo optimiza para el motor de ejecución.
- Metastore, que almacena los metadatos necesarios para Hive, como la estructura de las tablas, los metadatos puede ser embebido o local.
- Motor de ejecución, que envía el plan de trabajos al clúster de Hadoop y gestiona el metastore.
- Interface, que puede ser una CLI o una aplicación de business intelligence remota.
Diferencias entre Hive y las bases de datos tradicionales
- Hive no es una base de datos relacional, sino un sistema que traduce peticiones a trabajos MapReduce/Spark/Tez.
- Hive sigue un modelo schema-on-read, donde los datos se validan al ser consultados, a diferencia de las bases de datos tradicionales que usan schema-on-write.
- Hive carece de transacciones, updates e índices, aunque versiones recientes han introducido cambios para soportar inserciones y actualizaciones en el contexto de transacciones.
Gestión de tablas en Hive
- Una tabla en Hive comprende datos (en HDFS, disco local o AWS S3) y metadatos gestionados por el metastore.
- Existen dos tipos de tablas: gestionadas por Hive y externas.
Tablas Gestionadas por Hive
- Los datos se almacenan por defecto y se mueven al directorio de Hive, al ser eliminadas, también se eliminan los datos.
Tablas Externas
- Hive gestiona solo los metadatos y mantiene los datos en su ubicación original. Al eliminar la tabla, solo se eliminan los metadatos.
- Se utiliza LOCATION, o el directorio '/user/hive/warehouse/nombre_tabla' por defecto.
Formatos de ficheros de datos en Hive
- Es muy variada, pero el más habitual es el de fichero de texto plano (TEXTFILE).
- Los delimitadores que soporta Hive son de un único carácter.
- Hive también soporta otros formatos de fichero como Avro, Parquet, RCFiles, ORCFiles y Sequence.
Ejecución de una consulta en un clúster de Hive
- Se utilizan las tablas simplificadas flights.csv y airport-codes.csv, almacenadas ambas en /user/data.
- Se carga el primero tabla como tabla externa y el segundo como tabla gestionada por Hive.
- El objetivo final a ser obtener los diez aeropuertos de destino que han recibido un número mayor vuelos y mostrar un resultado ordenado.
Apache Impala
- Apache Impala es una herramienta de procesamiento paralelo masivo (MPP) para ejecutar consultas interactivas en lenguaje SQL.
- Impala permite acceder a datos en HDFS, HBase o Amazon S3, e integra con Apache Kudu.
- Utiliza el mismo driver ODBC que Apache Hive.
- Utiliza el lenguaje HiveQL.
- Soporta formatos de archivo comunes como texto delimitado, Parquet, Avro o RCFile.
- Impala fue creado por Cloudera en 2012 y se distingue de Hive por su estructura, diseñada para consultas rápidas e interactivas sobre grandes cantidades de memoria.
- A diferencia de Hive, Impala no utiliza motores como MapReduce o Spark; usa su propia arquitectura para acceder directamente a los datos de HDFS.
- La diferencia fundamental es que Impala fue creado para trabajar en memoria, pero Hive no es bueno para ejecutar consultas en vivo.
Ejecución de consultas en un clúster de Impala
- Los clientes de Impala incluyen Hue, clientes ODBC/JDBC y la shell de Impala.
- El metastore de Hive contiene información sobre los datos estructurados accesibles por Impala, que pueden ser modificados mediante SQL.
- Tanto Hive como Impala definen tablas externas sin mover datos.
- El proceso Impala se ejecuta en cada datanode coordinando y ejecutando las consultas SQL distribuyéndose para ejecutar fragmentos de la misma en paralelo.
Pasos para ejecutar una consulta en Impala
- Un cliente envía una consulta SQL a Impala, que proporciona interfaces estandarizadas para ello.
- Impala analiza la consulta y determina las tareas para los demonios impalad.
- Los procesos impalad acceden localmente a los servicios de HDFS y HBase.
- Cada uno envía los resultados parciales al coordinador, el cual devuelve el resultado final.
Arquitectura de Impala
- El demonio de Impala es el componente fundamental que corre en cada datanode.
- El Statestore comprueba que los demonios están activos.
- Catalog service comunica los cambios en los metadatos provocados por sentencias SQL.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.