Saga de la Fundación de Desarrollo de Hadoop Big Data: 1, un conocido hadoop

Estructura de directorios

1.Hadoop general

    Aproximadamente 1,1 Hadoop

    1.2 Historia del desarrollo de Hadoop

    1.3 Características de Hadoop

núcleo 2.Hadoop

    --HDFS del sistema de archivos distribuido 2.1

    marcos informáticos distribuidos --MapReduce 2.2

    2.3 cúmulo administrador de recursos --YARN

ecosistema 3.Hadoop

4.Hadoop escenarios

5. Resumen


A, Hadoop Introducción

1.Hadoop general

Dos núcleo : HDFS y MapReduce

Marco para la programación de tareas y recursos : HILO

    Aproximadamente 1,1 Hadoop

        Hadoop es una fundación Apache desarrolló una infraestructura de sistema distribuido . Los usuarios pueden distribuido sin conocer los detalles fundamentales del desarrollo de aplicaciones distribuidas. Aprovechar al máximo el poder de un grupo de cálculo y almacenamiento de alta velocidad. Su propósito es extender desde un único servidor a miles de máquinas, el clúster se desplegará en varias máquinas, cada máquina de ofrecer un computo local y de almacenamiento, y los datos de copia de seguridad se almacena en una pluralidad de nodos, mejorando así el clúster la disponibilidad, en lugar de por la actualización de hardware, cuando una máquina se cae, el otro nodo todavía puede proporcionar datos de copia de seguridad y servicios de computación, el núcleo del marco está diseñado para HDFS y Hadoop MapReduce.

    1.2 Historia del desarrollo de Hadoop (Transferencia de Baidu Enciclopedia)

        Hadoop era originalmente del modelo de programación de Google MapReduce llamado un paquete. marco MapReduce de Google puede poner una aplicación en muchos de cómputo de instrucciones en paralelo, a través de un gran número de nodos de computación corriendo muy grandes conjuntos de datos. Los ejemplos típicos del uso de un algoritmo de búsqueda de trama se ejecutan en los datos de la red. Mapa del sitio Hadoop y relacionados en un principio, se desarrollaron rápidamente en una plataforma líder para el análisis de grandes volúmenes de datos.

        Hay muchas empresas comenzaron a ofrecer software de negocios, soporte, servicio y formación basada en Hadoop. Cloudera es una empresa de software con sede en EE.UU., que en 2008 comenzó a ofrecer software y servicios basados ​​en Hadoop. GoGrid es una compañía de infraestructura de computación en la nube, en 2012, la empresa aceleró el ritmo de cooperación con la adopción de Cloudera Empresa de aplicaciones basadas en Hadoop. Dataguise es una empresa de seguridad de datos, también en 2012, la compañía introdujo una protección y evaluación de riesgos de datos de software para el Hadoop.

    1.3 Características de Hadoop

        Hadoop es un marco que permite a los usuarios fácilmente plataforma de computación distribuida y el uso. Los usuarios pueden fácilmente desarrollar y ejecutar aplicaciones manejo de grandes cantidades de datos en Hadoop. Sus ventajas , principalmente en lo siguiente:

        (1) Alta fiabilidad: porque se supone que los elementos de computación y almacenamiento pueden fallar, por lo que mantiene múltiples copias de datos para el trabajo, asegúrese de que el proceso de redistribución para el nodo que ha fallado.

        (2) alta escalabilidad: los nodos de clúster puede ser fácilmente extendido para expandir el clúster.

        (3) la eficiencia: Hadoop se mueven dinámicamente datos entre nodos, el nodo en el que los datos en el procesamiento en paralelo, y para asegurar el equilibrio dinámico de los respectivos nodos, por lo tanto la velocidad de procesamiento es muy rápido.

        (4) alta tolerancia a fallos: HDFS se copia de seguridad al almacenar archivos en múltiples máquinas o varios nodos a almacenar archivos, para asegurar el programa se ejecuta sin problemas. Si se inicia una tarea falla, Hadoop va a ejecutar la tarea o activar otras tareas a parte completa de esta tarea no se ha completado.

        (5) bajo coste: Hadoop es de código abierto.

        (6) se puede construir en una máquina de bajo costo, el marco básico es Hadoop java preparado.

núcleo 2.Hadoop

    2.1 Sistema de archivos distribuido --HDFS (Hadoop Distributed File System)

        2.1.1 HDFS arquitectura e Introducción

            HDFS es un sistema de archivos distribuido para el almacenamiento, es el principal responsable de un grupo de almacenamiento y recuperación de datos. HDFS es una arquitectura maestro / esclavo (maestro / esclavo) del sistema de archivos distribuido. HDFS apoya la organización jerárquica tradicional estructura de archivos, el usuario o aplicación puede crear un directorio, y luego guardar el archivo en estos directorios se puede realizar a través de una ruta de acceso al archivo para crear, leer, actualizar o operación de eliminación. Sin embargo, debido a la naturaleza de almacenamiento distribuido, y que tiene un sistema de archivos tradicional es significativamente diferente.

            HDFS arquitectura básica diagrama:

           

sistema de archivos HDFS incluye un NameNode, un NameNode secundaria y más DataNode.

            (1) los metadatos (metadatos)

            Los metadatos no es el contenido específico del archivo, hay tres partes importantes: ① archivos y directorios sus atributos, tales como nombre de archivo, nombre de directorio, la información del directorio padre de familia, tamaño de archivo, fecha de creación, fecha de modificación; ② grabar material de archivo almacenado relevante información, como el bloqueo de archivo, el número de copias, cada una DataNode información de copia ubicada; ③ para registrar toda la información para la gestión de HDFS DataNode DataNode

            (2) NameNode

           NameNode para almacenar metadatos, y una solicitud de procesamiento enviado por el cliente. Meta-información almacenada en el archivo es el archivo fsimage NameNode. Durante el funcionamiento del sistema, todas las operaciones estarán en los metadatos almacenados en la memoria y el almacenamiento persistente está en otro ediciones de archivo (log), cuando inicio NameNode, fsimage se carga en la memoria y la memoria de datos de realizar operaciones ediciones grabadas, con el fin de garantizar que la memoria de datos reservados fecha.

            (3) NameNode Secundaria

            NameNode secundaria para los datos de copia de seguridad se fusionó NameNode periódicamente edita el archivo en el archivo local y el sub fsimage el archivo para almacenar la nueva NameNode fsimage, fsimage originales sustituido, eliminado el archivo de ediciones. Crear un nuevo ediciones modifican el estado de funcionamiento y continúan para almacenar archivos.

            (4) DataNode

            DataNode es verdaderamente un lugar para almacenar datos. En DataNode, el archivo se almacena en forma de bloques de datos. Cuando al final del archivo de bloque de 128 MB de archivos de datos a HDFS cortará, cada bloque de datos se almacena en el mismo o diferentes y DataNode copia de seguridad, tres por defecto general, el NameNode responsable del registro de bloque de archivo de información, para asegurar que se pueden encontrar e integrar todo el bloque al leer el archivo.

            (5) un bloque de datos (bloque)

            HDFS archivos subidos al tamaño de bloque de archivo predeterminado se divide en un sistema de archivos de acuerdo a los bloques de datos. Hadoop predeterminado 2.xa 128MB un bloque de datos, tales como el tamaño de almacenamiento de archivos es 129MB, se divide en dos bloques fueron almacenados. se almacenarán los bloques de datos en cada nodo, una copia de seguridad de cada bloque de datos será.

        2.1.2 HDFS principio distribuido

            ¿Qué es un sistema distribuido? El sistema se distribuye en una pluralidad de módulos o subsistemas, cada uno que se ejecuta en una máquina diferente, entre los subsistemas o módulos de comunicarse a través de una red de colaborar para lograr la función global final. El uso de múltiples nodos de trabajar juntos para completar el sistema o funciones de negocio más específico es un sistema distribuido.

            Sistema de archivos distribuido es un subconjunto de los sistemas distribuidos para resolver su problema es el almacenamiento de datos. En otras palabras, es a través de los sistemas de almacenamiento en varios equipos. Los datos almacenados en el archivo distribuido distribuyen automáticamente a través de los diferentes nodos.

            HDFS como un sistema de archivos distribuido, principalmente en los siguientes tres aspectos:

            (1) HDFS no es un sistema de archivos independiente, que es un sistema de archivos distribuidos en varios nodos de un clúster. Colaborar a través de la comunicación de red entre los nodos, los nodos proporcionan más información de archivo, de modo que cada usuario puede ver el sistema de archivos. Permitir que varios usuarios en varios equipos a compartir archivos y espacio de almacenamiento.

            (2) Cuando el archivo se almacena en la pluralidad de nodos distribuidos, los conceptos en el presente documento se refiere a un bloque de datos, un archivo de almacenamiento de datos por no se almacenan, pero un archivo en bloques de uno o más datos almacenados. Cuando el almacenamiento de bloques de datos no se almacenan en un nodo, pero se distribuye y se almacenan en cada nodo, y una copia del bloque de datos se almacena en otro nodo.

            (3) los datos leídos de la pluralidad de nodos. Al leer un archivo, la pluralidad de nodos para encontrar el bloque de datos del archivo, lea la distribución de todos los bloques de datos, hasta que el último bloque de datos ha sido leído.

        2.1.3 HDFS abajo Proceso

            Los datos almacenados en el sistema de archivos, si un nodo se cae, es fácil de pérdida de información, HDFS proporciona protección frente a este problema:

            (1) la redundancia

            Durante el almacenamiento de datos para cada bloque de datos se hacen de procesamiento redundante, el número de copias puede establecer su propio.

            (2) una copia del depósito

            Estrategia de Uso: Un ejemplo dfs.replication, dos nodos en la misma máquina de una copia de seguridad de cada uno, a continuación, poner una copia en un nodo en otra máquina, el primero es para prevenir nodo se cae, el último todo el tiempo de inactividad de la máquina es prevenir la pérdida de datos.

            (3) hacia abajo procesamiento

            ①DataNode enviar periódicamente información de latido a NameNode (3s por defecto una vez). Si NameNode no recibe un mensaje de latido dentro de un tiempo predeterminado (10 minutos por defecto), pensaría problema DataNode, que se retira de la agrupación. HDFS luego detecta el número de copias de bloques de datos en el disco duro inferior a la necesaria, entonces el número de copias no cumple con los requisitos para crear una copia de los bloques de datos necesarios para lograr los requisitos pre-establecidos. DataNode puede ser debido a un fallo de hardware, fallo de la placa, apagones y otros problemas de envejecimiento y las hojas de la red de clústeres.

            ② Cuando HDFS para leer un bloque de datos, si el nodo está en el abajo, el cliente al nodo de almacenamiento de los otros bloques de datos leídos, HDFS también detecta el número de copias del bloque de datos no cumple con los requisitos de la re-fill copia completa.

            ③ Cuando almacenar datos HDFS, para ser almacenados si el nodo va hacia abajo, un nodo HDFS reasignado a un bloque de datos, a continuación, de vuelta por el nodo de datos.

        2.1.4 HDFS características

            (1) las ventajas de:

            Alta tolerancia a fallos para grandes procesamiento de datos de transmisión de datos de acceso (escribir una vez, leer muchas; archivo una vez escrita, no se puede modificar, sólo aumenta, se puede garantizar la consistencia de los datos)

            (2) Desventajas:

            No es adecuado para el acceso a datos de baja latencia, no se puede almacenar eficientemente grandes cantidades de archivos pequeños, que no soporta multi-usuario escribir y modificar cualquier archivo (operación de escritura sólo se puede hacer al final del archivo, sólo puede realizar operaciones adicionales)

    marcos informáticos distribuidos --MapReduce 2.2

        2.2.1 Introducción MapReduce

            MapReduce es Hadoop núcleo marco de cálculo, para grandes conjuntos de datos (mayor de 1 TB) modelo de programación de computación en paralelo, incluyendo mapa (cartografía) y reducir (reducción) en dos partes. Al iniciar la tarea de MapReduce, Mapa del terminal leerá los datos sobre el HDFS, los datos se asigna al valor de la clave requerida para el tipo y pasó a Reducir final. Reducir Mapa terminal del lado recibe datos transmitidos sobre el tipo de clave, en función del paquete, cada grupo de teclas de la misma los datos se procesan para obtener un nuevo par clave-valor y de salida a los HDFS, la idea central de esto es MapReduce.

        2.2.2 trabajos de MapReduce

            (1) MapReduce flujo de ejecución (de entrada, rebanadas, fase de procesamiento Mapa de datos, la etapa Reducir de procesamiento de datos, las fases de salida de datos)

            Reducen la charla énfasis sobre las etapas de: Reducir la tarea puede tener múltiples, de acuerdo con la decisión de las particiones de datos (del tipo de partición de datos de claves) Mapa escenario, una partición es un procesamiento de datos Reducir. Para cada tarea Reducir, Reducir recibirán diferentes datos de la tarea del mapa, y se ordena procedentes cada Los datos del mapa. Cada vez que un proceso de reducir las tareas son las mismas para todos los datos clave, reducción de datos, un nuevo pares de valores clave de salida a HDFS.

            (2) MapReduce naturaleza:

            (3) para ayudar a las pequeñas ejemplo para entender el mapa y reducir los procesos de:

 

    2.3 cúmulo administrador de recursos --YARN

        Introducción 2.3.1 HILO

            HILO proporciona una gestión de recursos más general y un marco de aplicaciones distribuidas, el propósito es hacer que la potencia de procesamiento de datos Hadoop. En este marco, los usuarios pueden lograr el procesamiento de datos de aplicaciones personalizadas para satisfacer sus necesidades. MapReduce es también una aplicación en el hilo. Otro de los objetivos es ampliar HILO Hadoop, MapReduce cálculo hace que no sólo apoya, pero también es fácil de manejar, tales como la colmena, HBase, cerdo, Spark y otras aplicaciones. Por hilado, varias aplicaciones pueden ejecutarse sin molestar a los demás en el mismo sistema Hadoop, todo el clúster a compartir recursos.

        2.3.2 HILO arquitectura básica y el flujo de tareas

            Las estructuras básicas (1) a los hilados de

            En general, el hilo o la arquitectura maestro / esclavo, ResourceManager como Mater, NodeManager es esclavo, ResourceManager responsable de los recursos en cada gestión y programación NodeManager unificado. Cuando un usuario envía una aplicación necesita para proporcionar una ApplicationMaster para el seguimiento y la gestión de este programa, que es responsable de los recursos de la aplicación ResourceManager, y requieren iniciar NodeManager la tarea puede tardar hasta ciertos recursos. Desde diferente ApplicationMaster se distribuyen a los diferentes nodos, por lo que no se afectan entre sí (es decir, algunas aplicaciones puede estar ejecutando simultáneamente).

            ①RM (ResourceManager): consta de dos componentes (planificador, planificador; ASM Gestor de aplicaciones)

            ResourceManager parte de los recursos individuales (cálculo, memoria, ancho de banda, etc.) para elaborar la base NodeManager (HILO cada agente de nodo). ResourceManager también asignar recursos y ApplicationMaster juntos, iniciar y supervisar su aplicación con base NodeManager. En este contexto, ApplicationMaster soportar algo de la anterior función de TaskTracker, ResourceManager tomó papel JobTracker.

            El programador responsable de la ejecución de aplicaciones asignan los recursos, que no se involucra en cualquier trabajo relacionado con la aplicación específica.

            ASM es responsable de manejar el envío de trabajos del cliente y la negociación de un contenedor (Object Packager recursos) para ApplicationMaster en marcha, y reiniciarlo cuando el fracaso ApplicationMaster.

            ②NM (NodeManager):

            Recursos y administrador de tareas en cada nodo. En un aspecto, se informará periódicamente el uso de recursos y el estado operativo de cada nodo Contenedor de acuerdo con el nodo RM; por el contrario, recibe y procesa Container ApplicationMaster de la solicitud de inicio / parada y similares.

            contenedor de hilo está en la abstracción de los recursos que encapsula los recursos multidimensionales en un nodo, como la memoria, CPU, disco, red y similares. Cuando solicitar recursos ApplicationMaster RM, de recursos RM es devuelto por el paquete de contenedores. Hilo para cada tarea asignada un contenedor, y la tarea sólo puede utilizar los recursos del recipiente descrito.

            ③AM (ApplicationMaster): equivalente a una aplicación está configurada con una pequeña Mayordomo

            Cuando cada solicitud presentada por el usuario, el sistema generará un AM y se incluye en el programa presentado, las características principales son: RM en consulta con el planificador de recursos adquieren (expresadas en contenedor); la tarea resultante se subdivide a los procedimientos internos; NM comunicarse con los servicios de arranque / parada; monitorear el estado de funcionamiento de todas las tareas, y cuando la tarea no puede volver a solicitar fondos para la misión para reiniciar la tarea.

            ④CA (Aplicación de Cliente): Aplicación de Cliente

            La aplicación cliente se presentará a la RM, primero crea un objeto Aplicación de archivo de arriba y abajo, y establecer los recursos necesarios para información de solicitud de AM, y después se sometió a la RM.

            (2) flujo de trabajo HILO

                HILO de descripción detallada de todo el flujo de trabajo desde el envío de trabajos de finalización de la tarea:

                ① un usuario envía a la aplicación cliente mediante el procesamiento del hilo, en el que el programa comprende una AM, AM comando de inicio, el programa de usuario y similares.

                Las solicitudes para la primera asignación ②RM recipiente, y se comunica con la aplicación de localización de contenedores NodeManager ubicación asignada requiere que se inicia mañana en este contenedor. La AM y AM Recipiente para iniciar un comando posterior.

                Después ③AM inicio Xianxiang RM registrado, por lo que los usuarios pueden ver el estado de funcionamiento directamente a través de la aplicación RM, y luego comenzó a aplicar recursos para implementar las diversas tareas de la solicitud presentada por la necesidad, y vigilar su estado de funcionamiento, conocer el final de la carrera. (Es decir, realizado repetidamente ④ - ⑦)

                ④AM se turnan utilizando el protocolo RPC pidiendo a la manera de la RM solicitado y obtenido recursos y supervisar su estado de funcionamiento, por lo que cuando múltiples solicitudes presentadas, no necesariamente los primeros en realizar.

                ⑤ Una vez que la aplicación de AM a los recursos, que nm recursos de comunicación correspondiente, pidiendo que se inicie la tarea de asignación de recursos.

                Después ⑥NM configurar el entorno operativo para la tarea, el comando de inicio de la tarea escribe un guión, y empezar la tarea ejecutando el script.

                ⑦ se inició la tarea comenzó a ejecutar cada tarea de informar de su estado y el progreso de la mañana a través de un protocolo RPC para permitir AM a seguir corriendo cada tarea, que puede volver a iniciar la tarea si falla la tarea. En la aplicación se está ejecutando, el usuario puede, en cualquier momento el estado de funcionamiento actual de la aplicación consulta AM RPC.

                ⑧ Después de la finalización de la aplicación se está ejecutando, cancelación ApplicationMaster de los suyos para RM.

                ⑨ cerrar el cliente y AM.

ecosistema 3.Hadoop

    Después de Hadoop disponibles, se han desarrollado una gran cantidad de componentes que juntos proporcionan servicios a los proyectos Hadoop-relacionados, y poco a poco formó una serie de componentes del sistema, llamado ecosistema de Hadoop   

    (1) HBase

        Hadoop base de datos, es un, alto rendimiento, sistema de almacenamiento de alta fiabilidad orientada a columnas escalable, distribuido, usando estructuras de almacenamiento de tecnología HBase erigidas en gran escala bajo costo PC Servidor

    (2) Colmena

        Colmena se basa en la infraestructura de almacenamiento de datos Hadoop. Proporciona una variedad de herramientas que pueden utilizarse para la carga de transformación de extracción de datos (ETL), que es una tienda, consulta, y mecanismos de datos a gran escala almacenados en Análisis Hadoop.

    (3) Pig

        Cerdo es un gran escala plataforma de datos basados ​​en Hadoop de análisis, el lenguaje similar a SQL que proporciona llama latín de cerdo, el compilador escriba la solicitud de análisis de datos lenguaje SQL en una serie de procesamiento optimizado de las operaciones de MapReduce.

    (4) Sqoop

        Sqoop es una herramienta de código abierto, usado principalmente en la base de datos convencional (MySQL, PostgreSQL ...) entre Hadoop (Colmena) para transferencia de datos, los datos pueden ser convertidos en una base de datos relacional para los HDFS en Hadoop , los datos de HDFS pueden convertirse en una base de datos relacional.

                                    

    (5) Canal de flujo

        Canal de flujo Cloudera se proporciona a una alta disponibilidad, altamente fiable, distribuido gran colección de registro, la agregación y sistemas de transmisión, para soportar varios tipos de sistema de registro de remitente de datos personalizado Canal de flujo para la recogida de datos; simultáneamente, proporcionando Flume la capacidad de realizar el procesamiento de datos simple, y los datos grabados a varios destinatarios (adaptable) de

    (6) Oozie

         planificador basado en Hadoop oozie, el proceso de programación para escribir la forma XML puede ser programado sr, cerdo, colmena, concha, tarea frasco y así sucesivamente.

Las características principales son

        * Flujo de trabajo: orden de ejecución del nodo, tenedor de apoyo (múltiples nodos rama), el Join (combinarse como una pluralidad de nodos)

        * Coordinador, disparo temporal del flujo de trabajo

        * Paquete de Trabajo, se unen coordinador de múltiples

    (7) ZooKeeper

        ZooKeeper es una, de código abierto del servicio de coordinación distribuida para aplicaciones distribuidas, es una implementación de código abierto del rechoncha de Google, es un componente clave de Hadoop y hbase. Es para proporcionar un servicio consistente para aplicaciones distribuidas, proporciona características incluyen: mantenimiento de la configuración, el servicio de nombres de dominio, la sincronización distribuida, los servicios de grupos.

                     

    (8) Mahout

         Mahout es la Apache Software Foundation (ASF) 'es un proyecto de código abierto, algunos alcanzan el aprendizaje de máquina escalable algoritmo clásico, diseñado para desarrolladores de ayuda más rápida y fácilmente crear aplicaciones inteligentes. Mahout contiene muchas implementaciones, incluyendo clustering, clasificación, filtración recomendación, la minería niño frecuente. Además, usando una biblioteca Apache Hadoop, Mahout se puede extender de manera efectiva a la nube.

4.Hadoop escenarios

    Diez escenarios : (1) En línea (2) Los datos móviles (3) Comercio electrónico (4) Procesamiento de Imágenes (5) la extracción de energía 

                            (6) Detección de Fraude (7) de seguridad de TI (8) Salud (9) Motores de Búsqueda (10) plataforma social

5. Resumen

    Este documento presenta los conceptos básicos de la teoría de Hadoop, Hadoop características para comprender la idea central de Hadoop, entender los HDFS, MapReduce, hilado tres marco básico importante, la comprensión en profundidad de la estructura general de Hadoop, basta con entender la Hadoop eco-sistema y algunos escenarios de aplicación.

 

6. Referencias

    En este documento, la referencia a "desarrollo Hadoop gran base de datos", un libro, el autor Yu Minghui, Zhang Liangjun

Publicado 18 artículos originales · ganado elogios 0 · Vistas 454

Estructura de directorios

Supongo que te gusta

Origin blog.csdn.net/weixin_45678149/article/details/104937915
Recomendado
Clasificación