1 ¿Qué es la colmena?
- Introducción a la colmena
colmena: una herramienta de estadísticas de datos de código abierto de Facebook para resolver registros estructurados masivos.
Hive es una herramienta de almacenamiento de datos basada en Hadoop que puede mapear archivos de datos estructurados en una tabla y proporcionar funciones de consulta similares a SQL.
- La esencia de Hive: convertir HQL en programa MapReduce
Los datos procesados por Hive se almacenan en HDFS
La implementación subyacente de los datos de análisis de Hive es MapReduce
Ejecutando el programa en Yarn
2 Ventajas y desventajas de Hive
2.1 Ventajas
- La interfaz de operación adopta una sintaxis similar a SQL, que brinda la capacidad de un desarrollo rápido (simple y fácil de usar).
- Evita escribir MapReduce y reduce el costo de aprendizaje de los desarrolladores.
- El retraso de ejecución de Hive es relativamente alto, por lo que Hive se usa a menudo para el análisis de datos y ocasiones que no requieren un alto rendimiento en tiempo real.
- La ventaja de Hive radica en el procesamiento de datos grandes, pero no tiene ninguna ventaja en el procesamiento de datos pequeños, porque Hive tiene un retraso de ejecución relativamente alto.
- Hive admite funciones definidas por el usuario, y los usuarios pueden implementar sus propias funciones según sus necesidades.
2.2 Desventajas
- La expresividad de HQL de Hive es limitada
- Los algoritmos iterativos no pueden expresar
- No soy bueno en la minería de datos. Debido a la limitación del flujo de procesamiento de datos de MapReduce, no se pueden realizar algoritmos más eficientes.
- Hive es menos eficiente
- El trabajo de MapReduce generado automáticamente por Hive generalmente no es lo suficientemente inteligente
- El ajuste de la colmena es difícil y la granularidad es gruesa
3 principios de la arquitectura Hive
-
Metadatos: Metastore
CLI (interfaz de línea de comandos), JDBC/ODBC (sección de acceso jdbc), WEBUI (sección de acceso del navegador)
-
Metadatos: Metastore
Los metadatos incluyen: nombre de la tabla, base de datos a la que pertenece la tabla (el valor predeterminado es predeterminado), propietario de la tabla, campo de columna/partición, tipo de tabla (si es una tabla externa), el directorio donde residen los datos de la tabla, etc.; el valor predeterminado se almacena en la base de datos derby incorporada, se recomienda usar MySQL para almacenar el metastore.
-
Hadoop
Use HDFS para el almacenamiento y MapReduce para el cálculo.
-
Conducir: Conductor
Analizador (SQL Parser): convierta cadenas SQL en un árbol de sintaxis abstracto AST, este paso generalmente se realiza con bibliotecas de herramientas de terceros, como antlr; realice análisis gramaticales en AST, como si la tabla existe, si el campo existe, si la semántica de SQL está equivocada.
Compilador (plan físico): compila AST para generar un plan de ejecución lógico.
Optimizer (Query Optimizer): optimizar el plan de ejecución lógica.
Ejecución: Convierta el plan de ejecución lógico en un plan físico que se pueda ejecutar. Para Hive, es MR/Spark.
A través de una serie de interfaces interactivas proporcionadas a los usuarios, Hive recibe instrucciones del usuario (SQL), utiliza su propio controlador, combina metadatos (MetaStore), traduce estas instrucciones a MapReduce, las envía a Hadoop para su ejecución y finalmente devuelve la ejecución. Los resultados son salida a la interfaz de usuario.