El ecosistema de Hadoop se refiere a una serie de herramientas y software de código abierto formados en torno a la plataforma de procesamiento de big data de Hadoop para respaldar escenarios de aplicaciones como procesamiento, almacenamiento, administración, análisis y visualización de datos a gran escala. Divide temporalmente sus tecnologías principales en 9 categorías:
- Marco técnico de adquisición de datos: Flume, Logstash, FileBeat; Sqoop y Datax; Cannal y Maxwell
- Marco de tecnología de almacenamiento de datos: HDFS, HBase, Kudu, Kafka
- Marco de gestión de recursos distribuidos: YARN, Kubernetes y Mesos
- Marco de tecnología de computación de datos
- Informática de datos fuera de línea: MapReduce, Tez, Spark
- Cómputo de datos en tiempo real: SparkStreaming en Storm, Flink, Spark
- Marco técnico de análisis de datos: Hive, Impala, Kylin, Clickhouse, Druid, Doris
- Marco técnico de programación de tareas: Azkaban, Ooize, DolphinScheduler
- El marco técnico subyacente de big data: Zookeeper
- Marco tecnológico de recuperación de datos: Lucene, Solr y Elasticsearch
- Marco de gestión de instalación de clúster de big data: HDP, CDH, CDP
La ecología de Hadoop comúnmente utilizada actualmente incluye:
- HDFS: el sistema de archivos distribuidos de Hadoop (HDFS) es el sistema de archivos distribuidos de Hadoop para almacenar conjuntos de datos a gran escala, lo que proporciona alta tolerancia a fallas y acceso a datos de alto rendimiento.
- MapReduce: el marco de computación distribuida de Hadoop para procesar conjuntos de datos a gran escala, lo que permite tareas como la computación distribuida, la limpieza de datos y el procesamiento por lotes.
- YARN: Yet Another Resource Negotiator (YARN) es el marco de gestión de recursos de Hadoop, que se utiliza para separar la informática y el almacenamiento y realizar una gestión y programación unificadas de los recursos del clúster.
- Hive: una herramienta de almacenamiento de datos en Hadoop, similar a una base de datos SQL tradicional, que puede realizar operaciones de almacenamiento, consulta y análisis de datos a través de HiveQL.
- HBase: base de datos distribuida en Hadoop, basada en HDFS, admite consultas de alta velocidad y lectura y escritura aleatorias.
- Pig: Pig es un lenguaje de flujo de datos basado en Hadoop para realizar tareas complejas de procesamiento de datos en la plataforma Hadoop.
- Sqoop: la herramienta de importación y exportación de datos de Hadoop para la transferencia de datos entre la plataforma Hadoop y las bases de datos relacionales.
- Flume: la herramienta de recopilación y agregación de datos de Hadoop para recopilar datos de múltiples fuentes en Hadoop para su procesamiento.
- Spark: aunque Spark no forma parte de Hadoop, está estrechamente integrado con el ecosistema de Hadoop. Spark proporciona capacidades de procesamiento y análisis de datos más rápidas, con funciones como procesamiento por lotes, procesamiento de flujo, aprendizaje automático y computación gráfica.
- Zeppelin: la herramienta de visualización y análisis de datos de Hadoop, que agrega almacenamiento de datos, consulta, análisis, visualización y otras funciones en un cuaderno interactivo.
Comparemos brevemente las diferencias de cada pila de tecnología en estos 9 tipos de tecnologías.
1. Marco técnico de recopilación de datos
La premisa del análisis de datos es recopilar datos primero, por lo que la recopilación de datos es la base de los grandes datos.
El marco técnico para la recopilación de datos es el siguiente:
1.1 Flume, Logstash y FileBeat se usan comúnmente para el monitoreo y la recopilación de datos de registro en tiempo real
elemento de comparación | Canal artificial | almacenamiento de registros | Filebeat |
---|---|---|---|
fuente | apache | Elástico | Elástico |
lenguaje de desarrollo | Java | jruby | ir |
consumo de memoria | alto | alto | Bajo |
Consumo de CPU | alto | alto | Bajo |
Tolerancia a fallos | Alto, Mecanismo de Asuntos Internos | cola persistente interna alta | ninguno |
balanceo de carga | apoyo | apoyo | apoyo |
enchufar | Complementos de entrada y salida enriquecidos | Complementos de entrada y salida enriquecidos | Solo admite la recopilación de datos de archivos |
filtrado de datos | proporcionar interceptor | Gran capacidad de filtrado | débil capacidad de filtrado |
desarrollo secundario | fácil para los programadores de java | Desastre | Desastre |
1.2 Sqoop y Datax se usan comúnmente para la recopilación de datos fuera de línea de bases de datos relacionales
elemento de comparación | Sqoop | DatosX |
---|---|---|
fuente | apache | Ali |
lenguaje de desarrollo | Java | Java |
modo operativo | Mapa reducido | proceso único multiproceso |
repartido | apoyo | no apoyo |
eficacia | alto | medio |
tipo de fuente de datos | Solo admite bases de datos relacionales y sistemas de almacenamiento relacionados con Hadoop | Admite más de 20 tipos |
Escalabilidad | generalmente | alto |
1.3 Cannal y Maxwell se utilizan a menudo para la adquisición de datos en tiempo real de bases de datos relacionales
elemento de comparación | canal | Maxwell |
---|---|---|
fuente | Ali | zendesk |
lenguaje de desarrollo | Java | Java |
Formato de datos | gratis | formato json |
JA | apoyo | no apoyo |
oreja | no apoyo | apoyo |
Dividir | apoyo | apoyo |
lectura aleatoria | apoyo | apoyo |
2. Marco técnico de almacenamiento de datos
El marco de tecnología de almacenamiento de datos incluye HDFS, HBase, Kudu, Kafka, etc.
- HDFS: resuelve el problema del almacenamiento masivo de datos, pero no admite la modificación de datos
- HBase: es una base de datos NoSQL distribuida basada en HDFS, que puede utilizar la capacidad de almacenamiento de datos masivos de HDFS y admitir operaciones de modificación.
- Kudu: un componente técnico entre HDFS y HBase, que admite la modificación de datos y el análisis de datos basado en SQL. Por lo tanto, su posicionamiento es bastante vergonzoso, es una solución de compromiso y su aplicación práctica es limitada.
- Kafka: se usa comúnmente como un almacenamiento de búfer temporal de datos masivos, proporcionando capacidades de lectura y escritura de alto rendimiento al mundo exterior.
3. Marco de gestión de recursos distribuidos
Los recursos del servidor empresarial (memoria, CPU, etc.) son limitados y fijos. Sin embargo, los escenarios de aplicación del servidor son flexibles y cambiantes.Con el advenimiento de la era de los grandes datos, la demanda de tareas temporales ha aumentado considerablemente, y estas tareas a menudo requieren una gran cantidad de recursos del servidor. Por lo tanto, la asignación de los recursos del servidor y la participación accionaria dependen completamente de la conexión manual del personal de operación y mantenimiento, que requiere demasiado tiempo y mano de obra. Por lo tanto, se requiere un sistema de gestión de recursos distribuidos, y los comunes son YARN, Kubernetes y Mesos.
- Principales aplicaciones y campos de big data de YARN
- Aplicaciones principales de Kubernetes y campos de computación en la nube
- Aplicación principal de Mesos y campo de computación en la nube
4. Marco de tecnología de computación de datos
El cálculo de datos se divide en cálculo de datos fuera de línea y cálculo de datos en tiempo real
4.1 Cálculo de datos fuera de línea
- MapReduce, la primera generación de motor de computación de datos fuera de línea en la industria de big data, se utiliza principalmente para resolver la computación paralela distribuida de conjuntos de datos a gran escala. Abstrae la lógica de cálculo en dos etapas de mapa y reducción para su procesamiento.
- El motor informático Tez rara vez se usa en el ecosistema de big data
- La característica más importante de Spark es la computación en memoria. Los resultados intermedios de la fase de ejecución de tareas se almacenan en la memoria y no hay necesidad de leer y escribir discos, lo que mejora el rendimiento informático de los datos. Y Spark proporciona muchas funciones de orden superior, que pueden realizar cálculos iterativos de varias lógicas complejas, y es adecuado para el cálculo rápido y complejo de datos masivos.
4.2 Cálculo de datos en tiempo real
- Storm aplica y realiza principalmente computación distribuida de datos en tiempo real, adecuada para proyectos pequeños e independientes en tiempo real
- Flink es una nueva generación de motor de cómputo distribuido de datos en tiempo real, con mejor desempeño de cómputo y ecosistema que Storm, alto rendimiento y baja latencia.
- El componente SparkStreaming de Spark también puede proporcionar computación distribuida de datos en tiempo real de segundo nivel.
artículo de comparación | tormenta | SparkStreaming | Considerable |
---|---|---|---|
modelo computacional | Nativo | Micro-lote | Nativo |
tipo de API | Modular | Declarativo | Declarativo |
nivel semántico | Al menos una vez | Exactamente una vez | Exactamente una vez |
mecanismo de tolerancia a fallas | reconocer | Control | control |
administración del Estado | ninguno | tener | tener |
5. Marco técnico de análisis de datos
Marco técnico de análisis de datos que incluye Hive, Impala, Kylin, Clickhouse, Druid, Drois, etc.
Hive, Impala y Kylin pertenecen a motores de análisis de datos OLAP fuera de línea:
- La eficiencia de ejecución de Hive es promedio, pero su estabilidad es extremadamente alta
- Impala puede proporcionar una alta eficiencia de ejecución basada en la memoria, pero la estabilidad es promedio
- Kylin puede proporcionar una respuesta de nivel de ms de datos de nivel de PB mediante precálculo
artículo de comparación | Colmena | Impala | Kylin |
---|---|---|---|
motor de computación | Mapa reducido | aplicación de desarrollo propio | MapaReduce/Spark |
rendimiento informático | medio | alto | alto |
estabilidad | alto | Bajo | alto |
tamaño de datos | nivel de tuberculosis | nivel de tuberculosis | TB, nivel de PB |
Compatibilidad con SQL | HQL |
Compatible con HQL | SQL estándar |
Clickhouse, Druid, Doris son motores de análisis de datos OLAP en tiempo real:
- Druid admite alta simultaneidad, la compatibilidad con SQL es limitada y la madurez actual es relativamente alta
- Clickhouse tiene capacidades de concurrencia limitadas y admite SQL no estándar. Actualmente alta madurez
- Doris admite alta concurrencia, admite SQL estándar y aún se encuentra en la etapa de desarrollo rápido
artículo de comparación | druida | ClickHouse | doris |
---|---|---|---|
rendimiento de consultas | alto | alto | alto |
alta concurrencia | alto | Bajo | alto |
inserción de datos en tiempo real | apoyo | apoyo | apoyo |
actualización de datos en tiempo real | no apoyo | débil | medio |
unirse a la operación | limitado | limitado | apoyo |
Compatibilidad con SQL | limitado | SQL no estándar | mejor |
Madurez | alto | alto | medio |
Complejidad de operación y mantenimiento | medio | alto | Bajo |
6. Marco técnico de programación de tareas:
El marco técnico de programación de tareas incluye Azkaban, ooiz, DolPhinScheduler, etc. Es principalmente adecuado para la ejecución de tareas programadas ordinarias y la programación de tareas de varios niveles con dependencias complejas. Admite distribución y garantiza el rendimiento y la estabilidad del sistema de programación.
artículo de comparación | En Azka | Ewe | DolphinScheduler |
---|---|---|---|
tipo de tarea | Shell scripts y tareas de big data | Shell scripts y tareas de big data | Shell scripts y tareas de big data |
configuración de tareas | Configuración de sintaxis DSL personalizada | Configuración de archivos XML | Configuración de arrastrar y soltar de página |
pausa de tarea | no apoyo | apoyo | apoyo |
Alta disponibilidad (HA) | Apoyado por DB | Apoyado por DB | Soporte (multi-maestro multi-trabajador) |
multiusuario | no apoyo | no apoyo | apoyo |
alerta de correo | apoyo | apoyo | apoyo |
control de acceso | Grano grueso | Grano grueso | de grano fino |
Madurez | alto | alto | medio |
facilidad de uso | alto | medio | alto |
Empresa filial | Nubeeara | Análisis de China |
7. El marco técnico subyacente de big data
El marco técnico subyacente de los grandes datos solo se refiere al cuidador del zoológico.
La operación de hadoop, HBase, Kafka y otros componentes técnicos en el ecosistema de big data utilizará zookeeper, que proporciona principalmente funciones básicas, tales como: espacio de nombres, servicios de configuración, etc.
8. Marco técnico de recuperación de datos
La tecnología principal para la recuperación de datos es Elasticsearch, y otras tecnologías incluyen Lucene y Solr.
elemento de comparación | Lucena | Solr | Elasticsearch |
---|---|---|---|
facilidad de uso | Bajo | alto | alto |
Escalabilidad | Bajo | medio | alto |
estabilidad | medio | alto | alto |
Dificultad de operación y mantenimiento del clúster | Los clústeres no son compatibles | alto | Bajo |
Integración de proyectos | alto | Bajo | Bajo |
Actividad comunitaria | medio | medio | alto |
9. Marco de gestión de instalación de clúster de big data
Si una empresa quiere pasar del procesamiento de datos tradicional al procesamiento de big data, lo primero que debe hacer es construir una plataforma de big data estable y confiable. Una plataforma completa de big data incluye recopilación de datos, almacenamiento de datos, computación de datos, análisis de datos, monitoreo de clústeres, etc. Estos componentes deben implementarse en cientos o incluso miles de máquinas. Si confía completamente en el personal de operación y mantenimiento para realizar un seguimiento de la instalación, la carga de trabajo será demasiado grande y habrá problemas de coincidencia de versiones entre las diversas pilas de tecnología.
En base a los problemas anteriores, nació la herramienta de gestión de instalación de clústeres de big data. Actualmente, los más comunes incluyen CDH, HDP y CDP, que encapsulan componentes de big data y proporcionan una plataforma de big data integrada que puede instalar rápidamente componentes de big data.
- HDP, el nombre completo de Hortonworks Data Platform, está encapsulado en base a Hadoop, proporciona instalación y gestión basadas en interfaz con la ayuda de la herramienta Ambari e integra componentes comunes de big data, que pueden proporcionar una gestión de clústeres integral. Es completamente de código abierto y gratuito, sin servicios comerciales, pero ha dejado de actualizarse desde la versión 3.x.
- CDH significa Distribución de Cloudera, incluido Apache Hadoop. Con la ayuda de la herramienta Cloudera Manager para proporcionar una instalación y gestión basadas en la interfaz, e integrar la mayoría de los componentes de big data, puede proporcionar una gestión de clústeres integral. Es una plataforma comercial de big data de pago y dejará de actualizarse después de la versión 6.x.
- CDP, Cloudera Data Center y CDH provienen de la misma empresa y su número de versión continúa con el número de versión del CDH anterior. A partir de 7.0, CDP es compatible con Private Cloud (nube privada) y Hybrid Cloud (nube híbrida). CDP integra los componentes relativamente buenos de HDP y CDH, y agrega algunos componentes nuevos.
El artículo se reimprime de, con algunas modificaciones y adiciones: Un artículo para comprender el sistema de conocimiento completo del ecosistema de big data