Hadoop de la arquitectura de Internet de las cosas

Hadoop de la arquitectura de Internet de las cosas

1. ¿Qué son los grandes datos?

    Big data se refiere a la recopilación de grandes cantidades de datos que no pueden ser capturados, administrados y procesados ​​por herramientas de software convencionales dentro de un cierto período de tiempo Tasa de crecimiento y diversificación de datos de activos de información.
La gran cantidad de datos es la característica más destacada de los grandes datos de la siguiente manera:
    (1) El tamaño de los datos es enorme, alcanzando el nivel PB o incluso EB.
    (2) Hay varios tipos de datos de big data, principalmente datos no estructurados.
    (3) Densidad de valor bajo. Los datos valiosos solo representan una parte relativamente pequeña del total de datos.
    (4) La velocidad de generación y procesamiento de solicitudes es rápida. Esto también requiere
    Los tecnólogos poseen la capacidad de obtener rápidamente información valiosa de varios tipos de datos.

2. Descripción general de Hadoop

    Hadoop es un software de código abierto que implementa un sistema de archivos distribuido (Hadoop Distributed File System, HDFS) Un sistema distribuido es un sistema de software que se ejecuta en múltiples hosts.
HDFS tiene las siguientes características:
    Alta tolerancia a fallas: puede guardar automáticamente múltiples copias de datos y reasignar automáticamente tareas fallidas.
    Bajo costo: implementado en una plataforma de hardware económica de uso general para formar un clúster.
    Alta expansión: proporciona una forma intercambiable en caliente para agregar nuevos nodos para expandirse al clúster
    Eficiencia:

3. Arquitectura Hadoop

(1) La composición central de hadoop

    HDFS y MapReduce son los dos núcleos de Hadoop. El soporte subyacente para la distribución se realiza a través de HDFS, logrando una lectura y escritura paralelas de alta velocidad y una expansión de almacenamiento de gran capacidad. Obtenga soporte para programas de procesamiento de tareas paralelas distribuidas a través de MapReduce para garantizar un análisis y procesamiento de datos de alta velocidad. HDFS proporciona soporte para la operación y el almacenamiento de archivos en el proceso de procesamiento de tareas de MapReduce. MapReduce implementa la distribución, el seguimiento, la ejecución, etc. de tareas sobre la base de HDFS, y recopila los resultados. La interacción entre los dos completa la tarea principal del clúster distribuido de Hadoop.
    ¿Por qué MapReduce? Para el cálculo de grandes cantidades de datos, el método de procesamiento generalmente adoptado es la computación paralela. Esto requiere la capacidad de descomponer problemas informáticos grandes y complejos en subtareas y asignarlos a múltiples recursos informáticos para realizar cálculos al mismo tiempo. Su característica notable es que lleva menos tiempo que los cálculos con un solo recurso informático. Para la mayoría de los desarrolladores, la computación paralela sigue siendo algo extraño y complicado, especialmente cuando se trata de problemas distribuidos, será aún más difícil. MapReduce es un tipo de programación que implementa la computación paralela. Proporciona una interfaz para los usuarios y protege muchos detalles de la computación paralela, especialmente el procesamiento distribuido, de modo que los desarrolladores que no tienen mucha experiencia en computación paralela puedan desarrollar fácilmente aplicaciones paralelas. La computación paralela se refiere a múltiples servidores (distribuidos) que trabajan al mismo tiempo, escribiendo datos en bloques al mismo tiempo. MapReduce es una combinación de dos conceptos: map (mapeo) y reduce (reducción). map es responsable de descomponer las tareas en múltiples tareas, y reduce es responsable de resumir los resultados del procesamiento de las tareas múltiples descompuestas.

4. Descripción general de MapReduce

    En Hadoop, el desarrollo de aplicaciones paralelas se basa en el modelo de programación MapReduce, según el cual las tareas se pueden distribuir a grupos que consisten en miles de máquinas comerciales para realizar la función de procesamiento de tareas paralelas de Hadoop.

5.. Diseño del marco MapReduce

    Entonces, ¿cómo funciona el programa MapReduce? Cuando el programa MapReduce está escrito y configurado como un trabajo de MapReduce (Trabajo). El "trabajo" aquí se puede entender como: Después de escribir un programa de MapReduce para una tarea informática distribuida, envíe el programa al marco de ejecución de MapReduce y ejecútelo. Cuando el cliente envía el trabajo a JobTracker. Desde la entrada hasta la salida final, pasa por las siguientes cinco etapas:
(1) entrada: JobTracker crea el trabajo y la división de entrada (División de entrada) se calcula de acuerdo con la entrada del trabajo. Aquí se requiere que el conjunto de datos a procesar se descomponga en muchos conjuntos de datos pequeños, y cada conjunto de datos pequeños se puede procesar completamente en paralelo. La cantidad de archivos en el directorio de entrada determina la cantidad de fragmentos, y si se excede el tamaño de bloque predeterminado de HDFS (64 MB) para un solo archivo, se dividirá por tamaño de bloque.
(2) dividir: el programador de trabajo obtiene la información de fragmentación de entrada del trabajo y analiza los registros en la fragmentación de entrada en pares clave-valor de acuerdo con ciertas reglas. La "clave" (clave) es la posición inicial de cada línea, expresado en bytes Unidad, "value" (valor) es el contenido de texto de esta línea. Finalmente, cada fragmento crea una MapTask y la asigna a un TaskTracker.
(3) mapa: TaskTracker comienza a ejecutar MapTask y procesa cada par clave-valor de entrada. Cómo manejarlo depende del código del programa en esta etapa.Una vez que se completa el procesamiento, se genera y almacena localmente un nuevo par clave-valor.
(4) barajar: barajar. La salida de MapTask se usa efectivamente como el proceso de entrada de ReduceTask. En la figura se puede ver que el proceso intercambiará datos entre los nodos TaskTracker y los agrupará por clave.
(5) reducir: lea la salida de la etapa de barajado, comience a ejecutar ReduceTask y procese cada entrada de par clave-valor. Nuevamente, cómo se maneja esto depende del código del programa en esa etapa. Finalmente salida el resultado final. En Hadoop, cada tarea informática de MapReduce se inicializará como un trabajo. Hay principalmente dos etapas de procesamiento: etapa de mapa y etapa de reducción. Ambas etapas son pares clave-valor
(1) yarn-env.sh: agregue la ruta JDK.
(2) mapred-site.xml: especifique mapreduce.framework.name como hilo.
(3) yarn-site.xml: información de configuración específica de YARN, detallada
(1) El marco MapReduce recibe el trabajo enviado por el usuario, le asigna una nueva ID de aplicación, empaqueta y carga la definición de la aplicación en el directorio de caché de la aplicación del usuario en HDFS y luego envía la aplicación al administrador de aplicaciones.
(2) El administrador de la aplicación negocia con el planificador para obtener el primer contenedor de recursos necesario para ejecutar el cuerpo de la aplicación.
(3) El administrador de la aplicación ejecuta el cuerpo de la aplicación en el contenedor de recursos adquirido.
(4) El sujeto de la aplicación calcula los recursos requeridos por la aplicación y envía solicitudes de recursos al programador.
(5) El planificador asigna contenedores de recursos apropiados al sujeto de la aplicación de acuerdo con el estado de los recursos disponibles de sus propias estadísticas y la solicitud de recursos del sujeto de la aplicación.
(6) El sujeto de la aplicación se comunica con el administrador de nodos del contenedor asignado y envía el estado del trabajo y las instrucciones de uso de los recursos.
(7) El administrador de nodos habilita el contenedor y ejecuta la tarea.
(8) El sujeto de la aplicación supervisa la ejecución de tareas en el contenedor.
Hadoop tiene tres modos de funcionamiento: modo autónomo, pseudodistribuido y totalmente distribuido:
    Modo independiente: no se requiere configuración y Hadoop se considera un proceso Java independiente que se ejecuta en modo no distribuido.
    Pseudo-distribuido: un clúster con un solo nodo. Este nodo es a la vez un Maestro (nodo maestro, servidor maestro) y un Esclavo (nodo esclavo, servidor esclavo). Se pueden usar diferentes procesos Java para simular varios nodos en la distribución en este nodo único. .
    Totalmente distribuido: para Hadoop, diferentes sistemas tienen diferentes métodos de división de nodos. Desde la perspectiva de HDFS, se divide en NameNode (administrador) y DataNode (trabajador), de los cuales solo hay un NameNode, y puede haber múltiples DataNodes; desde la perspectiva de MapReduce, los nodos se dividen en JobTracker (programador de trabajos). ) y TaskTracker (ejecutor de tareas), donde solo hay un JobTracker y puede haber varios TaskTrackers. NameNode y JobTracker se pueden implementar en diferentes máquinas o en la misma máquina. La máquina donde se despliegan NameNode y JobTracker es Maestra, y el resto de máquinas son Esclavas.
Tanto el modo independiente como el modo pseudodistribuido no pueden reflejar las ventajas de la computación en la nube y, por lo general, se usan para probar y depurar programas.

Supongo que te gusta

Origin blog.csdn.net/qq_53195102/article/details/115624497
Recomendado
Clasificación