Podcast
Questions and Answers
¿Cuál de los siguientes es un ejemplo ideal de alguien que puede utilizar Hive?
¿Cuál de los siguientes es un ejemplo ideal de alguien que puede utilizar Hive?
- Una persona de negocios, con alto conocimiento de Excel, que quiere consultar rápidamente datos masivos guardados en una base de datos relacional como MySQL.
- Un analista con conocimientos de SQL que quiere consultar datos estructurados almacenados en HDFS. (correct)
- Un programador con conocimientos de MapReduce que quiere consultar imágenes y vídeos.
- Los tres casos anteriores son buenos casos de uso.
¿Cuál de las siguientes afirmaciones sobre Apache Hive es correcta?
¿Cuál de las siguientes afirmaciones sobre Apache Hive es correcta?
- Permite consultar archivos almacenados en HDFS utilizando lenguaje SQL. (correct)
- Requiere poseer una base de datos relacional que funcione como respaldo.
- Existen versiones libres y de pago.
- Solo se puede usar como parte de la distribución de Cloudera.
¿Cómo se define Hive?
¿Cómo se define Hive?
- Una base de datos NoSQL distribuida.
- Un motor de ejecución distribuido para consultas SQL.
- Un traductor de consultas SQL a trabajos de procesado distribuidos. (correct)
- Una base de datos SQL distribuida.
¿Cuál es la forma correcta de usar Hive?
¿Cuál es la forma correcta de usar Hive?
¿Cuál de las siguientes afirmaciones sobre Hive es correcta en relación con la sentencia DROP
?
¿Cuál de las siguientes afirmaciones sobre Hive es correcta en relación con la sentencia DROP
?
¿Cuál de las siguientes afirmaciones sobre Hive es correcta?
¿Cuál de las siguientes afirmaciones sobre Hive es correcta?
Señala la respuesta correcta con respecto a Hive e Impala:
Señala la respuesta correcta con respecto a Hive e Impala:
¿Cuál de las siguientes afirmaciones sobre Impala es correcta?
¿Cuál de las siguientes afirmaciones sobre Impala es correcta?
¿Cuál es el proceso de Impala que se encarga de ejecutar las consultas del usuario?
¿Cuál es el proceso de Impala que se encarga de ejecutar las consultas del usuario?
¿Cómo se ejecuta Impala en un clúster de ordenadores?
¿Cómo se ejecuta Impala en un clúster de ordenadores?
Flashcards
¿Qué es Apache Hive?
¿Qué es Apache Hive?
Un sistema de data warehouse para manejar datos distribuidos mediante SQL.
¿Función principal de Hive?
¿Función principal de Hive?
Transforma consultas SQL en trabajos para motores de procesamiento distribuido.
¿Motores de ejecución de Hive?
¿Motores de ejecución de Hive?
MapReduce, Apache Spark o Apache Tez.
¿Qué es Hiveserver2?
¿Qué es Hiveserver2?
Signup and view all the flashcards
¿Qué hace el compilador de Hive?
¿Qué hace el compilador de Hive?
Signup and view all the flashcards
¿Qué es el Metastore de Hive?
¿Qué es el Metastore de Hive?
Signup and view all the flashcards
¿Función del motor de ejecución en Hive?
¿Función del motor de ejecución en Hive?
Signup and view all the flashcards
¿Qué es 'schema-on-read' en Hive?
¿Qué es 'schema-on-read' en Hive?
Signup and view all the flashcards
¿Qué son las tablas gestionadas por Hive?
¿Qué son las tablas gestionadas por Hive?
Signup and view all the flashcards
¿Qué son las tablas externas en Hive?
¿Qué son las tablas externas en Hive?
Signup and view all the flashcards
¿Qué indica 'LOCATION'?
¿Qué indica 'LOCATION'?
Signup and view all the flashcards
¿Qué es TEXTFILE?
¿Qué es TEXTFILE?
Signup and view all the flashcards
¿Qué es Apache Impala?
¿Qué es Apache Impala?
Signup and view all the flashcards
¿Integración de Impala con ecosistema Hadoop?
¿Integración de Impala con ecosistema Hadoop?
Signup and view all the flashcards
¿Motor de ejecución de Impala?
¿Motor de ejecución de Impala?
Signup and view all the flashcards
¿Qué son los 'clientes' de Impala?
¿Qué son los 'clientes' de Impala?
Signup and view all the flashcards
¿Qué es el demonio 'impalad'?
¿Qué es el demonio 'impalad'?
Signup and view all the flashcards
¿Misión de Statestore?
¿Misión de Statestore?
Signup and view all the flashcards
¿Función del 'catalog service'?
¿Función del 'catalog service'?
Signup and view all the flashcards
¿Ejemplo ideal para usar Hive?
¿Ejemplo ideal para usar Hive?
Signup and view all the flashcards
¿Qué permite Apache Hive?
¿Qué permite Apache Hive?
Signup and view all the flashcards
¿Cómo se define Hive?
¿Cómo se define Hive?
Signup and view all the flashcards
¿Cómo se puede usar Hive?
¿Cómo se puede usar Hive?
Signup and view all the flashcards
¿Qué ocurre al ejecutar DROP en Hive?
¿Qué ocurre al ejecutar DROP en Hive?
Signup and view all the flashcards
¿Qué es correcto sobre Hive?
¿Qué es correcto sobre Hive?
Signup and view all the flashcards
¿Diferencia clave: Impala vs. Hive?
¿Diferencia clave: Impala vs. Hive?
Signup and view all the flashcards
¿Motor de ejecución de Impala?
¿Motor de ejecución de Impala?
Signup and view all the flashcards
¿Proceso para ejecutar consultas en Impala?
¿Proceso para ejecutar consultas en Impala?
Signup and view all the flashcards
¿Cómo ejecuta Impala en un clúster?
¿Cómo ejecuta Impala en un clúster?
Signup and view all the flashcards
¿Qué optimizaciones usa Impala para ser veloz?
¿Qué optimizaciones usa Impala para ser veloz?
Signup and view all the flashcards
Study Notes
Hive e Impala
- Apache Hive y Apache Impala son dos herramientas del ecosistema big data de software libre, respaldadas por la Apache Software Foundation (ASF).
- Apache Hive facilita consultas SQL sobre datos distribuidos en Hadoop, utilizando MapReduce, Spark o Tez como motor de ejecución.
- Apache Impala permite el acceso uniforme a diversas fuentes de datos distribuidas mediante lenguaje SQL.
Introducción y objetivos
- Se busca concienciar sobre el potencial de Apache Hive y su aplicación en inteligencia de negocio.
- Se busca comprender la utilidad práctica de Apache Impala y las necesidades que cubre.
Apache Hive
- Permite analizar información almacenada en grandes volúmenes usando un lenguaje similar a SQL, facilitando el trabajo de analistas.
- Desarrollado inicialmente por Facebook en 2007, fue donado a la Apache Software Foundation en 2010 como proyecto open source.
- proporciona una interfaz SQL para manejar datos estructurados en diversas fuentes, como HDFS, HBase y Amazon S3.
- Principalmente destinado a analistas de inteligencia de negocio sin dominio de Java.
- El lenguaje de consulta utilizado es HiveQL admitiendo sentencias SQL estándar así como funciones definidas por el usuario (UDF).
- Se usa principalmente en modo OLAP para análisis en bloque pero no es adecuado para OLTP o manejo interactivo.
Ejemplo de uso de Hive
- Para consultar datos almacenados en un clúster Hadoop usando un lenguaje similar a SQL.
- Hive organiza los datos en tablas siendo muy similar a una base de datos relacional
- Hive es capaz de transformar una consulta SQL en un trabajo de procesamiento (MapReduce, Tez o Spark) sobre los datos almacenados, sin necesidad de programación.
- Apache Tez es un motor de ejecución similar a Spark, optimizado para la ejecución de DAG de tareas y utilizado en aplicaciones de Hadoop como Hive o Pig.
Funcionamiento de Hive
- Los clientes y servicios interactúan de diversas maneras
- Hiveserver2 es un proceso que escucha peticiones en HiveQL, actuando como interfaz y comunicándose con el driver.
- HWI es una interfaz web alternativa a la línea de comandos.
- Cliente Thrift: interactúa con código en lenguajes como Python y Ruby través de un servicio Thrift
- Driver JDBC: Conexión a Hive mediante aplicaciones Java utilizando una dirección JDBC específica.
- Driver ODBC: Conexión a Hive mediante aplicaciones compatibles con el protocolo ODBC (Tableau, Microstrategy, PowerBI, QlikSense).
Arquitectura de Hive sobre MapReduce
- El controlador recibe sentencias SQL (HiveQL), coordina el ciclo de ejecución, y envía resultados.
- El compilador convierte la consulta a un árbol de sintaxis abstracta (AST), validando con metadatos y optimizando para el motor de ejecución.
- El metastore almacena los metadatos siendo como respositorio central.
- El metastore incluye un servicio de recuperación de metadatos y una plataforma de almacenamiento
- Por defecto el metastore se ejecuta en la misma máquina virtual de Java
- Existen las configuraciones embebidas y locales.
Diferencias entre Hive y las bases de datos tradicionales
- Hive no es una base de datos relacional
- Hive traduce peticiones a trabajos MapReduce/Spark/Tez para consultar datos en ficheros distribuidos.
- Las bases de datos tradicionales verifican el esquema al cargar datos (schema-on-write).
- Hive aplica el esquema al consultar los datos (schema-on-read), permitiendo una carga de datos más rápida.
- Las transacciones, actualizaciones e índices en Hive han aparecido hasta versiones muy recientes.
- Los cambios resultantes de inserciones, actualizaciones y eliminaciones se guardan como ficheros de cambios y funcionan en el contexto de transacciones.
Gestión de tablas en Hive
- Una tabla en Hive está compuesta por los datos almacenados en HDFS, disco local o AWS S3 y metadatos.
- Existen tablas gestionadas por Hive (managed tables) y tablas externas.
- Al eliminar una tabla gestionada y todos sus datos.
- Al eliminar solo una tabla externa se eliminan solo los metadatos.
- Hive soporta gran de variedad de formatos incluyendo texto plano, Avro, Parquet, RCFiles, ORCFiles y Sequence.
Apache Impala
- Es una herramienta de procesamiento paralelo para realizar consultas interactivas en SQL sobre datos distribuidos en HDFS, HBase o Amazon S3.
- Es capaz de escribir en tablas de Apache Kudu.
- Puede conectarse a herramientas de BI mediante el mismo driver ODBC que Hive
- Utiliza un lenguaje de consulta (HiveQL) y formato de metadatos similares a Hive.
- La principal diferencia con Hive es que este último esta principalmente diseñado para trabajos en batch
- Impala fue creado por Cloudera en 2012, ahora es un proyecto oficial de Apache.
- A diferencia de Hive, Impala tiene su propia arquitectura que optimiza la velocidad y la eficiencia.
Conexión de Impala
- Se denomina cliente a las aplicaciones externas
- Hue interfaz gráfica de administración que incluye un editor gráfico de consultas SQL
- Impala permite la definición de tablas externas como Hive.
Proceso de ejecución de Impala
- Un cliente envía una consulta SQL a Impala que se conecta al proceso demonio (impalad).
- Impala analiza la consulta y planifica tareas para los demonios impalad en el clúster.
- Los demonios impalad acceden a servicios de HDFS y HBase y obtienen una consulta
- Los procesos regresan un resultado final al cliente
- Durante el desarrollo de la aplicación se recomienda que los datos fluyan en la misma máquina
- Impala no proporciona un mecanismo automático para el balanceo de carga ni tampoco para alta disponibilidad
Arquitectura de Impala
- Proceso fundamental en cada datanode que coordina y ejecuta consultas SQL.
- Los demonios están en constante comunicación con el Statestore
- El Statestore es un proceso demonio que comprueba que los demonios de Impala están activos
Catolog Service
- Proceso demonio cuya misión es comunicar a los procesos impalad los cambios que ha habido en los metadatos provocados por sentencias SQL.
- Si se modifica una tabla desde Hive ,es necesario ejecutar manualmente las sentencias REFRESH e INVALIDATE METADATA en un nodo de Impala
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Aprende sobre Apache Hive e Impala, dos herramientas de código abierto para big data respaldadas por la Apache Software Foundation (ASF). Hive facilita las consultas SQL sobre datos distribuidos, mientras que Impala permite el acceso uniforme a diversas fuentes de datos distribuidas mediante SQL.