7 Apache Hive y Apache Impala

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

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

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

<p>OLAP (Online Analytical Processing). (A)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor el concepto de 'schema-on-read' en Apache Hive?

<p>El esquema de los datos se aplica al leer los datos, lo que permite flexibilidad en el formato de los datos almacenados. (C)</p> Signup and view all the answers

¿Qué componentes son necesarios para conectarse al servicio principal de Hive (hiveserver2)?

<p>Cliente Thrift, Driver JDBC y Driver ODBC. (A)</p> Signup and view all the answers

¿Qué ocurre con los datos subyacentes cuando se elimina una tabla gestionada en Hive?

<p>Tanto los metadatos como los datos se eliminan de HDFS. (B)</p> Signup and view all the answers

¿Cuál es la función del metastore en la arquitectura de Hive?

<p>Almacenar los metadatos (esquema, ubicación, etc.) de las tablas. (A)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones describe una característica clave de las tablas externas en Hive?

<p>Los datos residen fuera del directorio de Hive y no se eliminan al eliminar la tabla. (D)</p> Signup and view all the answers

¿Cuál es la función del proceso impalad en Apache Impala?

<p>Coordinar y ejecutar consultas SQL en paralelo. (D)</p> Signup and view all the answers

¿Cuál es la principal diferencia entre Apache Hive y Apache Impala en términos de procesamiento de consultas?

<p>Hive traduce consultas a trabajos MapReduce/Spark/Tez, mientras que Impala utiliza su propio motor de ejecución paralelo. (D)</p> Signup and view all the answers

¿Cuál es el propósito del demonio statestored en la arquitectura de Impala?

<p>Supervisar la salud y disponibilidad de los demonios <code>impalad</code>. (C)</p> Signup and view all the answers

¿Qué función cumple el demonio catalogd en Impala?

<p>Comunicar los cambios en los metadatos a los procesos impalad. (C)</p> Signup and view all the answers

¿Cómo se asegura Impala de que todos los nodos tengan la información más reciente sobre los metadatos?

<p>A través de mensajes de broadcast enviados por el demonio <code>catalogd</code>. (C)</p> Signup and view all the answers

¿Qué sentencias se deben ejecutar manualmente en Impala después de modificar una tabla desde Hive para asegurar que Impala vea los cambios?

<p>REFRESH y INVALIDATE METADATA. (B)</p> Signup and view all the answers

¿Cuál de los siguientes formatos de archivo es compatible tanto con Apache Hive como con Apache Impala?

<p>Avro, Parquet, SequenceFile y RCFile. (C)</p> Signup and view all the answers

¿Qué tipo de aplicaciones son más apropiadas para usar Impala en lugar de Hive?

<p>Análisis interactivo y exploración de datos. (C)</p> Signup and view all the answers

¿Cuál de las siguientes NO es una forma en que las aplicaciones pueden interactuar con Impala?

<p>HWI (Hive Web Interface). (B)</p> Signup and view all the answers

¿Qué lenguaje de consulta utilizan tanto Apache Hive como Apache Impala?

<p>HiveQL. (A)</p> Signup and view all the answers

En la arquitectura de Hive sobre MapReduce, ¿qué componente convierte la consulta en un abstract syntax tree (AST)?

<p>Compilador. (C)</p> Signup and view all the answers

¿Cuál es el repositorio central para los metadatos que necesita Hive?

<p>Metastore. (B)</p> Signup and view all the answers

¿En qué consiste la configuración denominada metastore embebido en Hive?

<p>Utilizar una base de datos Derby como un fichero en disco en la misma JVM que Hive. (A)</p> Signup and view all the answers

¿Por qué es necesario utilizar la configuración de metastore local en Hive en lugar de la de metastore embebido?

<p>Para permitir múltiples sesiones concurrentes a Hive. (D)</p> Signup and view all the answers

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

<p>Motor de ejecución. (A)</p> Signup and view all the answers

¿Cuál de los siguientes lenguajes de programación es necesario dominar para utilizar Apache Hive?

<p>No es necesario dominar ningún lenguaje de programación. (D)</p> Signup and view all the answers

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?

<p>Editar el fichero desde fuera de Hive para cambiar los delimitadores por otros con un único carácter. (C)</p> Signup and view all the answers

¿Cuál es el principal objetivo de Apache Impala?

<p>Ejecución de consultas interactivas de baja latencia sobre datos almacenados en Hadoop. (D)</p> Signup and view all the answers

¿Qué tipo de conexiones son proporcionadas por Apache Impala para que los clientes externos se conecten al servicio?

<p>Interfaz gráfica de administración y Clientes ODBC o JDBC. (C)</p> Signup and view all the answers

¿Qué ocurre si uno de los demonios de Impala cae debido a un fallo en el hardware o en la red?

<p>El demonio informa a todos los demonios de Impala de esta situación, a fin de que no envíen trabajos al nodo inaccesible. (D)</p> Signup and view all the answers

Flashcards

¿Qué es Apache Hive?

Sistema para manejar datos (leer, escribir, ETL, reporting y análisis) mediante SQL en datos distribuidos.

¿Qué es HiveQL?

Lenguaje de consulta utilizado por Apache Hive.

¿Qué es OLAP en Hive?

Análisis en bloque del informacional (datos históricos) de la empresa.

¿Qué es el metastore de Hive?

Almacena datos sobre tablas accesibles por Impala, metadatos de información estructurada existente en HDFS.

Signup and view all the flashcards

¿Qué son tablas gestionadas en Hive?

Hive gestiona los datos, moviéndolos a su directorio. Al eliminar la tabla, los datos se borran.

Signup and view all the flashcards

¿Qué son tablas externas en Hive?

Hive no gestiona los datos, solo los metadatos. Al eliminar la tabla, solo se eliminan los metadatos.

Signup and view all the flashcards

¿Qué es Apache Impala?

Herramienta de procesamiento paralelo para consultas interactivas en lenguaje SQL.

Signup and view all the flashcards

¿Que hace el cliente de Impala?

Proporciona interfaces estandarizadas, se conecta al proceso demonio de Impala en cualquier nodo del clúster.

Signup and view all the flashcards

¿Qué es el demonio de Impala?

Proceso fundamental de Impala que corre en cada datanode del clúster.

Signup and view all the flashcards

¿Qué misión tiene Statestore?

Comprobar que los demonios de Impala estén activos.

Signup and view all the flashcards

¿Qué es Catalog service?

Proceso que comunica los cambios en los metadatos provocados por sentencias SQL.

Signup and view all the flashcards

¿Hive es una base de datos relacional?

No es una base de datos relacional, sino un sistema que traduce peticiones a trabajos MapReduce/Spark/Tez.

Signup and view all the flashcards

¿Cómo se comprueba el esquema en BD tradicionales?

El esquema se comprueba al cargar los datos (schema-on-write).

Signup and view all the flashcards

¿Cómo se comprueba el esquema en Hive?

Los datos no se comprueban al ser escritos, sino al ser consultados (schema-on-read).

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

  1. Un cliente envía una consulta SQL a Impala, que proporciona interfaces estandarizadas para ello.
  2. Impala analiza la consulta y determina las tareas para los demonios impalad.
  3. Los procesos impalad acceden localmente a los servicios de HDFS y HBase.
  4. 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.

Quiz Team

Related Documents

More Like This

Introducción a Apache Hive
16 questions

Introducción a Apache Hive

InvigoratingMolybdenum avatar
InvigoratingMolybdenum
Apache Pig, Hive, and ZooKeeper Overview
45 questions
7 Hive e Impala
10 questions
Use Quizgecko on...
Browser
Browser