Compartir tecnología

Introducción a Hive y su arquitectura.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

¿Qué es la colmena?

  • Un almacén de datos basado en Hadoop, adecuado para algunas aplicaciones de alta latencia (desarrollo fuera de línea), puede asignar archivos de datos estructurados y semiestructurados almacenados en archivos Hadoop en una tabla de base de datos y proporcionar datos similares a SQL basados ​​en la tabla. modelo, llamado Hive Query Language (HQL), para acceder y analizar grandes conjuntos de datos almacenados en archivos Hadoop;
  • El núcleo de Hive es convertir HQL en un programa MapReduce y luego enviar el programa al clúster de Hadoop para su ejecución;
  • Hive en sí no almacena ni calcula datos. Se basa completamente en HDFS y MapReduce. Las tablas de Hive son tablas puramente lógicas.

¿Qué es un almacén de datos?

  • El almacén de datos en sí no "produce" ningún dato y sus datos provienen de diferentes sistemas externos;
  • Al mismo tiempo, el almacén de datos en sí no necesita "consumir" ningún dato y los resultados están abiertos a varias aplicaciones externas;
  • Por eso se le llama "almacén" y no "fábrica";

Arquitectura y componentes de Hive.

Insertar descripción de la imagen aquí

  • Tienda meta: Generalmente se almacena en bases de datos relacionales como Mysql/derby. Los metadatos en Hive incluyen el nombre de la tabla, las columnas y particiones de la tabla y sus atributos, los atributos de la tabla (si es una tabla externa, etc.). el directorio donde se encuentran los datos de la tabla, etc.;
  • Conductor : Controlador, que incluye analizador de sintaxis, compilador de planes, optimizador y ejecutor. Complete las declaraciones de consulta HQL a partir de análisis léxico, análisis de sintaxis, compilación, optimización y generación de planes de consulta. El plan de consulta generado se almacena en HDFS y posteriormente se ejecuta mediante la llamada del motor de ejecución;
    • Analizador (analizador SQL): Convierta cadenas SQL en un árbol de sintaxis abstracta AST y realice análisis de sintaxis en el AST, como si la semántica de SQL es correcta, si la tabla existe y si los campos existen;
    • Compilador (Plan físico): Compile AST para generar un plan de ejecución lógico (DAG);
    • Optimizador (Optimizador de consultas): Optimice el plan de ejecución lógico;
    • Ejecución: Convierta el plan de ejecución lógico en un plan físico ejecutable, que es un programa MapReduce/Spark;

Proceso de ejecución HQL

Insertar descripción de la imagen aquí

  1. Haga una solicitud: Iniciar una solicitud de ejecución desde la interfaz de usuario al controlador;
  2. Obtener plan de ejecución: El controlador envía la solicitud del usuario al compilador para obtener el plan de ejecución;
  3. Obtener metadatos: El compilador obtiene metadatos relevantes del Meta store en función de la tabla relevante y la información de partición en la declaración SQL;
  4. Metadatos de devolución: Meta store devuelve los metadatos correspondientes al compilador;
  5. Plan de ejecución de devolución: Analice y optimice SQL basándose en metadatos de tablas y particiones para generar planes de ejecución lógicos. El plan es un gráfico DAG y cada etapa corresponde a un mapa MapReduce o operación de reducción;
  6. Ejecute el plan de ejecución: Envíe el plan de ejecución al motor de ejecución, que enviará el plan de ejecución lógico a Hadoop para su ejecución en forma de MapReduce;
  7. Los resultados de ejecución se obtienen: El controlador recopila los resultados de la ejecución y los envía a la interfaz de usuario;