Arquitectura de big data: introducción a la herramienta de análisis, procesamiento y recopilación de datos hadoop

Hadoop es una plataforma informática distribuida de código abierto bajo Apache, que puede ejecutarse en grupos de computadoras y proporcionar funciones informáticas distribuidas confiables y escalables. En el corazón de Hadoop se encuentran el sistema de archivos distribuido (HDFS) y el marco de programación paralelo MapReduce.

historia

Hadoop es inseparable de tres artículos:

  • En 2003, Google publicó un artículo sobre el sistema de archivos distribuido GFS, que puede utilizarse para resolver el problema del almacenamiento masivo de datos.
  • En 2004, Google publicó un artículo sobre MapReduce, que puede utilizarse para resolver problemas de computación de datos masivos.
  • En 2006, Google publicó un artículo sobre BigTable, que es un sistema de almacenamiento distribuido basado en GFS como almacenamiento de datos subyacente.

GFS, MapReduce y BigTable son lo que a menudo llamamos los "tres vagones". La relación entre Hadoop y estos tres artículos es la siguiente:

  • HDFS en Hadoop es una implementación de código abierto de GFS;
  • MapReduce en Hadoop es una implementación de código abierto de MapReduce de Google;
  • HBase en Hadoop es una implementación de código abierto de BigTable de Google.

Funciones de Hadoop

Las características de Hadoop son:

  • Multiplataforma: hadoop se desarrolla en base al lenguaje Java, tiene una buena multiplataforma y puede ejecutarse en la plataforma Linux;
  • Alta confiabilidad: HDFS en Hadoop es un sistema de archivos distribuido que puede distribuir y almacenar datos masivos de manera redundante en diferentes nodos de la máquina. Incluso si una copia de la máquina falla, otras copias de la máquina aún pueden ejecutarse normalmente;
  • Alta tolerancia a fallas: HDFS distribuye y almacena archivos en muchos nodos de máquinas diferentes y puede guardar automáticamente varias copias, de modo que cuando falla una tarea en un nodo, también se puede redistribuir automáticamente;
  • Eficiencia: los componentes principales de Hadoop, HDFS y MapReduce, uno es responsable del almacenamiento distribuido y el otro es responsable del procesamiento distribuido, capaz de procesar datos a nivel de PB;
  • Bajo costo y alta expansión: Hadoop puede ejecutarse en grupos de computadoras económicos, por lo que el costo es relativamente bajo y se puede extender a miles de nodos de computadora para completar el almacenamiento y cálculo de datos masivos.

Componentes del ecosistema

artículos relacionados

El ecosistema de Hadoop incluye muchos subsistemas. A continuación se muestran algunos subsistemas comunes, como se muestra a continuación:

HDFS: sistema de archivos distribuido

HDFS es el sistema de archivos distribuido de Hadoop, uno de los proyectos centrales del ecosistema de Hadoop y la base de la gestión del almacenamiento de datos en la informática distribuida. HDFS tiene un mecanismo de copia de seguridad de datos altamente tolerante a fallas, que puede detectar fallas de hardware y responder a ellas, y se ejecuta en hardware de uso general de bajo costo. Además, HDFS tiene funciones de acceso a datos de transmisión, proporciona funciones de acceso a datos de aplicaciones de alto rendimiento y es adecuado para aplicaciones con grandes conjuntos de datos.

MapReduce: marco de computación distribuida

MapReduce es un modelo informático para la computación paralela de conjuntos de datos a gran escala (más de 1 TB). "Mapa" realiza operaciones específicas en elementos independientes del conjunto de datos para generar resultados intermedios en forma de pares clave-valor; "Reducir" reduce todos los "valores" de la misma "clave" en los resultados intermedios para obtener el resultado final. La idea de "divide y vencerás" de MapReduce facilita enormemente a los programadores ejecutar sus programas en sistemas distribuidos sin programación paralela distribuida.

Yarn: un marco de gestión de recursos

Yarn (Yet Another Resource Negotiator) es un administrador de recursos en Hadoop 2.0 que puede proporcionar administración y programación de recursos unificadas para aplicaciones de capa superior.

Sqoop: herramienta de migración de datos

Sqoop es una herramienta de importación y exportación de datos de código abierto, que se utiliza principalmente para la conversión de datos entre Hadoop y bases de datos tradicionales. Puede importar datos de bases de datos relacionales (como MySQL, Oracle, etc.) al HDFS de Hadoop. Los datos HDFS también pueden exportarse a una base de datos relacional, lo que hace que la migración de datos sea muy conveniente.

Mahout: una biblioteca de algoritmos de minería de datos

Mahout es un proyecto de código abierto bajo Apache que proporciona algunas implementaciones escalables de algoritmos clásicos en el campo del aprendizaje automático, con el objetivo de ayudar a los desarrolladores a crear aplicaciones inteligentes de manera más conveniente y rápida. Mahout contiene muchas implementaciones, incluida la agrupación, clasificación, filtrado de recomendaciones y extracción frecuente de subelementos. Además, Mahout se puede escalar eficientemente a la nube utilizando la biblioteca Apache Hadoop.

Hbase: sistema de almacenamiento distribuido

HBase es un clon de Google Bigtable, que es una base de datos de esquema dinámico escalable, altamente confiable, de alto rendimiento, distribuida y orientada a columnas para datos estructurados. A diferencia de las bases de datos relacionales tradicionales, HBase adopta el modelo de datos de BigTable: una tabla de mapeo ordenada dispersa mejorada (Clave/Valor), donde la clave consta de palabras clave de fila, palabras clave de columna y marcas de tiempo. HBase proporciona acceso aleatorio de lectura y escritura en tiempo real a datos a gran escala. Al mismo tiempo, los datos almacenados en HBase se pueden procesar utilizando MapReduce, que combina perfectamente el almacenamiento de datos y la computación paralela.

Zookeeper: servicio de colaboración distribuida

Zookeeper es un servicio distribuido de coordinación de aplicaciones distribuidas de código abierto, una implementación de código abierto de Chubby de Google y un componente importante de Hadoop y HBase. Es un software que brinda servicios consistentes para aplicaciones distribuidas, sus funciones incluyen: mantenimiento de configuración, servicio de nombres de dominio, sincronización distribuida, servicio grupal, etc.

Hive: almacén de datos basado en Hadoop

Hive es una herramienta de almacenamiento de datos distribuido basada en Hadoop que puede asignar archivos de datos estructurados a una tabla de base de datos y convertir declaraciones SQL en tareas de MapReduce para su ejecución. Sus ventajas son operación simple, bajo costo de aprendizaje, estadísticas simples de MapReduce que se pueden realizar rápidamente a través de declaraciones similares a SQL, sin necesidad de desarrollar aplicaciones especiales de MapReduce y es muy adecuado para el análisis estadístico de almacenes de datos.

Flume: una herramienta de recopilación de registros

Flume es un sistema de recopilación, agregación y transmisión de registros masivos distribuido, altamente confiable y altamente disponible proporcionado por Cloudera. Flume admite la personalización de varios remitentes de datos en el sistema de registro para la recopilación de datos; al mismo tiempo, Flume brinda soporte para La capacidad de simplemente procese datos y escriba en varios destinatarios de datos (personalizable).

Pig: una abstracción para MapReduce

Todas las operaciones de procesamiento de datos se pueden realizar en Hadoop utilizando Apache Pig. Para escribir programas de análisis de datos, Pig proporciona un lenguaje de alto nivel llamado Pig Latin. El lenguaje proporciona varios operadores con los que los programadores pueden desarrollar sus propias funciones para leer, escribir y manipular datos. Permite a los programadores que no son muy buenos escribiendo programas Java analizar y procesar big data.

Spark: un motor informático general

Spark no depende de MapReduce, utiliza su propio marco de procesamiento de datos. Spark usa memoria para los cálculos y es mucho más rápido. Spark en sí es un ecosistema. Además de la API central, el ecosistema Spark también incluye otras bibliotecas adicionales que pueden proporcionar más capacidades en el campo del análisis de big data y el aprendizaje automático, como Spark SQL, Spark Streaming, Spark MLlib, Spark GraphX. , BlinkDB, Taquión, etc.

Impala: un nuevo sistema de consulta

Impala es un nuevo sistema de consulta desarrollado por Cloudera, que proporciona semántica SQL y puede consultar big data de nivel PB almacenados en HDFS y HBase de Hadoop. Aunque el sistema Hive existente también proporciona semántica SQL, debido a que la ejecución subyacente de Hive utiliza el motor MapReduce, sigue siendo un proceso por lotes y es difícil satisfacer la naturaleza interactiva de las consultas. Por el contrario, la característica más importante y el mayor atractivo comercial del Impala es su velocidad. Impala se puede usar en combinación con Hive y puede usar directamente la base de datos de metadatos de Hive.

Kafka: cola de mensajes distribuidos

Kafka es un sistema de mensajes distribuido, basado en publicación/suscripción, similar a la función de una cola de mensajes, que puede recibir datos de los productores (como servicios web, archivos, hdfs, hbase, etc.), almacenarlos en caché y luego enviarlos. para los consumidores (igual que el anterior) desempeñan el papel de amortiguador y adaptación.

Ambari: sistema de gestión de clústeres de big data

Ambari es un sistema de administración de clústeres de big data de código abierto que se puede utilizar para crear, administrar y monitorear clústeres de Hadoop y proporciona una interfaz visual WEB para que los usuarios la administren.

Oozie: motor de programación de flujo de trabajo

Oozie es un motor de programación de flujo de trabajo de código abierto para la plataforma Hadoop. Se utiliza para gestionar trabajos de Hadoop. Pertenece a la aplicación web y consta de dos componentes: cliente Oozie y servidor Oozie. Oozie Server es un programa web que se ejecuta en un contenedor Java Servlet (Tomcat).

Supongo que te gusta

Origin blog.csdn.net/weixin_29403917/article/details/128111987
Recomendado
Clasificación