Hadoop-1-Introducción

Hadoop-1-Introducción

1. Introducción

La biblioteca de software Apache Hadoop es un marco que utiliza un modelo de programación simple para procesar grandes conjuntos de datos a través de clústeres de computadoras distribuidos .

Su objetivo es expandirse de un solo servidor a miles de computadoras, mientras que cada computadora puede proporcionar funciones de almacenamiento y computación local .

Todas las computadoras pueden fallar. Hadoop en sí no depende del hardware para brindar alta disponibilidad, sino que está diseñado para detectar y manejar fallas en la capa de aplicación, asegurando así que todo el grupo de computadoras pueda brindar servicios de alta disponibilidad .

2. Historia de desarrollo

Doug Cutting, el padre de Hadoop, también es el fundador del proyecto Lucene.

Lucene proporciona tecnología de recuperación de texto completo basada en Java.

Nutch es un rastreador web (motor de búsqueda) desarrollado por Lucene.

Al mismo tiempo, Google ha publicado tres artículos :

Octubre de 2003: GFS (el sistema de archivos de Google)

2004 年 12 月 : MapReduce (MapReduce: procesamiento de datos simplificado en grandes clústeres)

2006 年 11 月 : Bigtable (Bigtable: un sistema de almacenamiento distribuido para datos estructurados)

A partir de la versión de lanzamiento 0.8 de Nutch (25 de julio de 2006), Nutch comenzó a basarse en la arquitectura Hadoop. Doug Cutting separa el sistema de archivos distribuido en Nutch y el código que implementa el algoritmo MapReduce para formar un nuevo proyecto de código abierto, que es Hadoop.

3. Tres versiones de lanzamiento principales

1) Apache

Esta es la versión más primitiva y básica, adecuada para el aprendizaje introductorio.

2) Cloudera

CDH es la versión de lanzamiento de Cloudera Hadoop, es completamente de código abierto y tiene una compatibilidad, estabilidad y seguridad mejoradas en comparación con Apache Hadoop.

3) Hortonworks

HDP (Hortonworks Data Platform), completamente de código abierto, también proporciona un sistema de instalación y gestión de código abierto

4. Características

1) alta fiabilidad

Hadoop mantiene varias copias de los datos de trabajo y, cuando falla el clúster, redistribuye los nodos fallidos.

2) alta escalabilidad

Asignar datos de tareas entre clústeres, que pueden expandir fácilmente miles de nodos

3) alta eficiencia

Ejecute tareas en paralelo para mejorar la velocidad de procesamiento de las tareas.

5. Composición

1, Hadoop común

Módulos de herramientas comunes que admiten otros módulos de Hadoop

2, Sistema de archivos distribuido Hadoop (HDFS ™)

Un sistema de archivos distribuido que proporciona acceso de alto rendimiento a los datos de la aplicación.

3) Hadoop Hilado

Marco para la programación de trabajos y la gestión de recursos del clúster

4) Hadoop MapReduce

Sistema basado en YARN que procesa grandes cantidades de datos en paralelo

5) Hadoop Ozono

Almacenamiento de objetos Hadoop

6) Submarino Hadoop

Motor de aprendizaje automático de Hadoop

6 、 HDFS

HDFS, utilizado para el almacenamiento de datos. Consta principalmente de tres partes:

  1. NameNode (NN), que almacena metadatos del archivo, como el nombre del archivo, la estructura del directorio del archivo, los atributos del archivo (incluida la hora de creación, los permisos del archivo y el número de copias), la lista de bloqueo de cada archivo y el DataNode donde se encuentra la lista de bloqueo, etc.
  2. DataNode (DN), que almacena datos de bloques de archivos en el sistema de archivos local y la suma de comprobación de los datos de bloques
  3. Secondary NameNode (2NN), un programa auxiliar en segundo plano que se utiliza para monitorear el estado de HDFS, obtendrá instantáneas de metadatos de HDFS (NN) a intervalos regulares

7 、 HILO

YARN, utilizado para la programación de recursos. Consta principalmente de cuatro partes:

  1. Resource Manager, utilizado para procesar solicitudes de clientes, asignación y programación de recursos, iniciar y monitorear Application Master y monitorear Node Manager
  2. Node Manager, gestión de recursos en un solo nodo, responsable de procesar los comandos de Resource Manager y Application Master
  3. Maestro de aplicaciones, responsable de la segmentación de datos y asignación de tareas, monitoreo y tolerancia a fallas, y aplicación de recursos para aplicaciones
  4. El contenedor, una abstracción del entorno operativo de la tarea, encapsula la información relacionada con la operación de la tarea, como la CPU, la memoria y otros recursos multidimensionales, así como las variables de entorno y los comandos de inicio (tecnología de contenedor).

8 、 MapReduce

MapReduce, utilizado para el cálculo. Procesar los datos de entrada (par clave-valor clave / valor) y generar el resultado final (par clave-valor clave / valor)

El proceso de cálculo consta de dos partes:

  1. Mapa, cada tarea que convierte los datos de entrada en registros intermedios, los registros intermedios convertidos no necesitan ser consistentes con el tipo de datos de entrada. Cada par clave-valor de entrada se puede asignar a cero o más pares clave-valor de salida
  2. Reducir, resumir los resultados del mapeo y finalmente formar el resultado de salida. Tiene 3 etapas principales: barajar, ordenar y reducir

Los tipos de entrada y salida de un trabajo MapReduce:

(entrada) <k1, v1> -> mapa -> <k2, v2> -> combinar -> <k2, v2> -> reducir -> <k3, v3> (salida)

Documento de Google:

mapa (k1, v1) → lista (k2, v2)
reducir (k2, lista (v2)) → lista (v2)

Supongo que te gusta

Origin blog.csdn.net/adsl624153/article/details/94360038
Recomendado
Clasificación