7 Hive e Impala
10 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿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?

  • 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?

  • 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?

<p>Es posible usarlo desde herramientas de BI que dispongan de conector ODBC. (D)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre Hive es correcta en relación con la sentencia DROP?

<p>Cuando se ejecuta la sentencia <code>DROP</code> sobre una tabla, Hive siempre borra los metadatos relacionados con dicha tabla. (C)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre Hive es correcta?

<p>MySQL puede funcionar como metastore de Hive. (B)</p> Signup and view all the answers

Señala la respuesta correcta con respecto a Hive e Impala:

<p>Impala está dirigido a peticiones interactivas, mientras que Hive está pensado para procesados en bloque (batch). (C)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre Impala es correcta?

<p>Ninguna de las opciones anteriores es correcta. (B)</p> Signup and view all the answers

¿Cuál es el proceso de Impala que se encarga de ejecutar las consultas del usuario?

<p>El proceso impalad. (A)</p> Signup and view all the answers

¿Cómo se ejecuta Impala en un clúster de ordenadores?

<p>Mediante un proceso que está corriendo en cada máquina y accede directamente a los datos de HDFS de ese nodo. (A)</p> Signup and view all the answers

Flashcards

¿Qué es Apache Hive?

Un sistema de data warehouse para manejar datos distribuidos mediante SQL.

¿Función principal de Hive?

Transforma consultas SQL en trabajos para motores de procesamiento distribuido.

¿Motores de ejecución de Hive?

MapReduce, Apache Spark o Apache Tez.

¿Qué es Hiveserver2?

Un proceso demonio que escucha peticiones HiveQL y se comunica con el driver.

Signup and view all the flashcards

¿Qué hace el compilador de Hive?

Convierte consultas en un árbol de sintaxis abstracta (AST) y lo optimiza para el motor de ejecución.

Signup and view all the flashcards

¿Qué es el Metastore de Hive?

El repositorio central de metadatos que necesita Hive.

Signup and view all the flashcards

¿Función del motor de ejecución en Hive?

Envía el plan de trabajos al clúster de Hadoop.

Signup and view all the flashcards

¿Qué es 'schema-on-read' en Hive?

El esquema se comprueba al leer los datos, no al escribirlos.

Signup and view all the flashcards

¿Qué son las tablas gestionadas por Hive?

Hive gestiona los datos y los mueve a su directorio.

Signup and view all the flashcards

¿Qué son las tablas externas en Hive?

Hive solo gestiona los metadatos; los datos residen externamente.

Signup and view all the flashcards

¿Qué indica 'LOCATION'?

Indica a Hive dónde buscar los ficheros de datos de la tabla.

Signup and view all the flashcards

¿Qué es TEXTFILE?

Un formato de fichero de texto plano donde campos y filas están delimitados por separadores.

Signup and view all the flashcards

¿Qué es Apache Impala?

Herramienta de procesamiento masivamente paralelo (MPP) para consultas SQL interactivas.

Signup and view all the flashcards

¿Integración de Impala con ecosistema Hadoop?

Utiliza el mismo driver ODBC y puede acceder al catálogo de metadatos de Hive.

Signup and view all the flashcards

¿Motor de ejecución de Impala?

No utiliza MapReduce, Spark o Tez; tiene su propia arquitectura de demonios.

Signup and view all the flashcards

¿Qué son los 'clientes' de Impala?

Las aplicaciones externas que requieren consultas a Impala.

Signup and view all the flashcards

¿Qué es el demonio 'impalad'?

Proceso que se ejecuta en cada datanode y coordina las consultas SQL.

Signup and view all the flashcards

¿Misión de Statestore?

Comprobar que los demonios de Impala están activos.

Signup and view all the flashcards

¿Función del 'catalog service'?

Comunicar a los procesos impalad los cambios en los metadatos.

Signup and view all the flashcards

¿Ejemplo ideal para usar Hive?

Analistas con conocimientos de SQL consultando datos estructurados en HDFS.

Signup and view all the flashcards

¿Qué permite Apache Hive?

Consultar archivos en HDFS usando SQL.

Signup and view all the flashcards

¿Cómo se define Hive?

Un traductor de consultas SQL a trabajos de procesado distribuidos.

Signup and view all the flashcards

¿Cómo se puede usar Hive?

Desde herramientas de BI con conector ODBC.

Signup and view all the flashcards

¿Qué ocurre al ejecutar DROP en Hive?

Depende del tipo de tabla (gestionada o externa).

Signup and view all the flashcards

¿Qué es correcto sobre Hive?

MySQL puede actuar como metastore.

Signup and view all the flashcards

¿Diferencia clave: Impala vs. Hive?

Impala: peticiones interactivas; Hive: procesados en bloque.

Signup and view all the flashcards

¿Motor de ejecución de Impala?

Impala no usa Spark ni Tez; tiene su propio motor.

Signup and view all the flashcards

¿Proceso para ejecutar consultas en Impala?

El proceso 'impalad'.

Signup and view all the flashcards

¿Cómo ejecuta Impala en un clúster?

Un proceso en cada máquina que accede directamente a los datos HDFS de ese nodo.

Signup and view all the flashcards

¿Qué optimizaciones usa Impala para ser veloz?

Procesamiento en memoria y paralelización masiva.

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.

Quiz Team

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.

More Like This

Use Quizgecko on...
Browser
Browser