Hadoop papel ecológico de los componentes diferentes, procesos

1, Hadoop diversos procesos y su papel

NameNode: hdfs es el servidor principal, la gestión árbol de directorios del sistema de archivos y el acceso a los archivos de almacenamiento de clúster metadate almacenados, continúe leyendo el estado anfitrión DataNode cúmulo de registros y las condiciones de trabajo.

SecondaryNameNode: NameNode de espera en frío, responsable de esimage consolidación periódica y editslog, menos carga de trabajo NameNode.

DataNode: responsable de la gestión de todos los nodos de almacenamiento, cada nodo tiene un DataNode demonio de almacenamiento de datos.

DFSZKFailoverController: NameNode responsable de la supervisión del estado de, y la información oportuna sobre el estado de la ZK escritura, para obtener el NameNode estado de salud a través de una interfaz específica en un hilo separado para llamar NameNode cíclica, sino también el derecho a elegir quién activo, pero sólo hasta tener dos NameNode, así que seleccione la política es por orden de llegada.

QuorumPeerMain: proceso principal cuidador del zoológico

JournalNode: alta disponibilidad de la caja para el almacenamiento de archivos NameNode editlog (metadatos), es la disponibilidad de múltiples nodos.

Fsimage: archivo de metadatos espejo (sistema de archivos de árbol de directorios). Ediciones: metadatos registro de la operación (sistema de archivos para los cambios realizados registros operativos.

editsLog: Antes de modificar el registro, cuando el archivo del cliente cliente del sistema de escritura, que pondrá los registros en el registro de cambios, la estructura de datos después de NameNode modificar la memoria, se lleva a cabo cada operación de escritura, se sincronizará con editsLog sistema de archivos

2, mapreduce

Combiner: es un especial a reducir, el reductor es un lado realiza mapa, es posible reducir la operación de E / S, reduzca el lado de la carga del reductor, es decir el final de la polimerización el mapa operativo.

3, el hilo

ResourceManager (JobTracker): responsable de la programación de recursos en el DataManager, cada uno tiene una DataNode NodeManager (TaskTracker) para hacer el trabajo real

Gestión de Recursos esclavo nodo: NodeManager

ApplicationMaster: programación de tareas para cualquier tipo de trabajo que desea iniciar en el hilo, tiene que haber una.

Flujo de trabajo: El cliente envía una solicitud al gestor de recursos ResourceManager, todo estado de los ganglios retroalimentación NodeManager al gestor de recursos, ResourceManager a los recursos tarea NodeManager envío más libre, NodeManager crear appMaster (ApplicationMaster), appMaster nodo de tarea a los recursos de la aplicación ResourceManager , ResourceManager abrirá nuevos recursos y el medio ambiente (chispa es ejecutor) en otros nodos. Los resultados calculados por los datos a continuación, se alimenta de nuevo al resultado AppMaster appMaster ResourceManager retroalimentación al proceso, está claro que los nodos tienen los recursos disponibles, donde puede hacerse cargo de la tarea de distribución.

mecanismo de programación hadoop

El envío por defecto de la FIFO: First In First Out

Computar planificador de potencia Capacidad Programador: Soporte para múltiples colas, cada uno se puede configurar un determinado recurso, cada cola usando política de planificación FIFO, estaría de acuerdo en puestos de trabajo comparten recursos presentados por el usuario a fin de evitar una cola de trabajos definido por el usuario de los recursos exclusivos . Calcular una relación entre el número de tareas que se ejecutan en cada cola se deben asignar sus recursos informáticos obtenidos, la selección de una relación mínima de la cola, y de acuerdo con el orden de prioridad de trabajos de selección y hora de presentación, teniendo en cuenta las limitaciones de recursos restringir a un usuario y la memoria .

planificación equitativa de FairScheuler: varios usuarios soportan múltiples colas, cada uno de los recursos de cola se puede configurar para cada puesto de trabajo en el compartimiento de cola equitativa de todos los recursos en la cola.

4, la orden de funcionamiento hadoop

Hadoop dfsadmin -report vista hdfs agrupan uso de espacio de almacenamiento.

hadoop fs -du -h para ver el directorio actual en el directorio de cada archivo de memoria que ocupa     detalles

Hadoop fs -rmr / tmp / aaa borrar un directorio

Hadoop fs -poner hdfs archivo de directorio de archivos cargar un archivo

Hadoop fs hdfs -Obtener Descargar archivo para descargar un directorio de archivos

Hadoop fs directorio de archivos de archivos -moveFromLocal hdfs a cargar un archivo y eliminar el archivo local

Haddop fs HDFS -text contenido del archivo de catálogo

Haddopfs -CAT contenido del archivo de catálogo hdfs

trabajo Hadoop -LIST obtener la lista de tareas

Hadoop trabajo -kill id-trabajo matar a un puesto de trabajo

Hadoop-daemon.sh empezar datanoe la adición de un nuevo nodo

Hadoop mradmin / dfsadmin -refreshnones borrar un nodo

aplicación de hilos -KILL application_ Identificación de tareas: tareas de chispa dejar de correr sobre el hilo, otorgada el ResourceManager

5, proceso de almacenamiento hbase

Una región de una pluralidad de tienda, cada almacenar todos los datos contenidos en una columna del nido. Almacenar en memoria comprende MEMSTORE storefile ubicado en el disco duro.

Cuando el momento de la escritura de datos, primero MEMSTORE escritura, MEMSTORE cuando los datos llegan a un cierto umbral, HRegionServer inicia el proceso de escritura de datos a flushCache a un nuevo storefile, y cuando el número de archivo storefile crece hasta cierto punto el sistema storefile fusión, mezcla y operaciones de borrado versión realizadas, formar más grande storefile. Y cuando storefile siguen unir los archivos, la cantidad de datos excede un cierto umbral de nuevo cuando la región se divide en dos regiones, y hay HMaster asignado a la región en respuesta al servidor, para lograr el equilibrio de carga.

El cliente cuando la recuperación de datos, encontrar datos MEMSTORE ahora, ya no encuentran las palabras storefile.

Hbase adecuado para el análisis de datos madura temas, el modo de consulta se ha establecido, y no es fácil el cambio, las bases de datos relacionales tradicionales han sido incapaces de soportar la carga, la inserción de alta velocidad y un montón de lectura. masa adecuada es también operaciones simples, tales como la forma keyValue.

la familia número de opciones: Si se encuentra aplicaciones off-line, escribir más, así que trate de usar una familia, porque cuando una familia llega a condiciones ras, la región comenzará a toda la familia MEMSTORE pertenece a estar al mismo nivel, aunque otros datos MEMSTORE pocas lo hacen ras y afirmaron que archivos pequeños, fáciles de aumentar la probabilidad de ocurrencia de la compactación, y la compactación es una región como una unidad, que puede conducir fácilmente a disminuir el rendimiento global del sistema. Sin embargo, si la aplicación puede hacer que el conjunto multi-línea de acuerdo con la familia situación real, la carga de cada lectura de datos no es más que una familia, IO menos, y causa la pluralidad de datos se asigna a hfile pluralidad familia, la reducción de la probabilidad de ocurrencia de split, el sistema proporcionará a los servicios en línea más estables.

6, Spark y el papel de cada proceso

proceso maestro: gestionar todos los recursos de clúster, hilo para ResouceManager

El proceso de trabajo: responsable de la gestión de los recursos del nodo, a informar periódicamente al Maestro latidos del corazón, el maestro recibe una orden para iniciar el ejecutor. Hilado por NodeManager

cliente: proceso del cliente, responsable de presentar el trabajo al Maestro. Después de que el modo de hilo-cluster, presentada en la aplicación cliente del Administrador de recursos, generar SparkSubmit proceso, que sólo se utiliza para el lado del cliente, la solicitud presentada al clúster, se eliminará el proceso.

Aplicación: Basado chispa de los programas de usuario, incluyendo el ejecutor y clúster en el programa del controlador

Conductor: Conductor incluye un Trabajo de la chispa se ejecuta un proceso, el proceso es el trabajo principal, el código de trabajo responsable de analizar, de producción y programación de la etapa de tareas para el Ejecutor. Incluyendo DAGScheduler, TaskScheduler. En el modo de hilado-cluster, ResourceManager seleccionará un nonemanager ApplicationManager correr, que se ejecuta el AM controlador simultáneamente.

ClusterManager: acceso de servicios externo a los recursos en un clúster (como independiente, hilo)

Ejecutor: un trabajador en un proceso de solicitud comenzado, es responsable de recibir taskset, la ejecución de tareas, y los datos almacenados en la memoria o en el disco, cada aplicación tiene sus propios ejecutores independientes.

Tarea: nodo fue enviado a trabajar en una cierta ejecutor

Trabajo: la acción y la chispa correspondiente, que comprende muchas tareas de computación paralelas

Etapa: trabajo se divide en una pluralidad de grupos de tareas, cada una se conoce como etapa

DAGScheduler: etapa de construcción basado en DAG, determinar la mejor ubicación de cada tarea; RDD o etapa de grabación que necesita físico-química, y el taskset (un conjunto de tareas) para pasar de la programación TaskScheduler más bajo; volver a ejecutar la etapa de salida perdió aleatoria

TaskScheduler: taskset presentó a la carrera de clúster e informar de los resultados; aleatoria parece ser informe de salida perdida traiga

sparkContext: el contexto de toda la aplicación, controlar el ciclo de vida de la aplicación

SparkConf: responsable de almacenar la información de configuración

error fallado; straggle través de tareas que poner en otro nodo de reintento; mantener un taskSetmanager para cada taskset (propiedad local y la información de seguimiento de errores)

7, Canal de flujo proceso y el papel de

Agente: es un proceso de Java que se ejecuta nodo de recopilación de registros, incluyendo sorce, channle, asambleas fregadero

Fuente: para la recogida de registros, los datos de registro puede manejar una variedad de formatos, incluyendo: Avro / thrigt / exec / jms / spool / directorio / netcat / secuencia

generador / syslog / http / legacy / costumbre, después de la recogida se almacena en el canal

Canal: se utiliza para almacenar temporalmente los datos, se puede colocar en la memoria se borrará / JDBC / archivo / personalizado, el disipador de canal de datos en sólo después de que se ha enviado satisfactoriamente

Sink: medios para transmitir datos al destino, el destino incluyendo hdfs / IPC / archivo logger / Avro / thrigt / / null / hbase / Solr / personalizados

Que fluye en todo el evento de transmisión de datos es, en el caso de que la transacción es nivel garantizado.

8, hbase proceso y el papel de

Cliente: contiene interfaz de acceso hbase y mantiene la memoria caché para acelerar el acceso a la hbase

Zookeeper: Maestro garantizar la unicidad de la dirección almacenada de entrada Región, en línea en tiempo real el seguimiento y la información fuera de línea RegionServer, notificación en tiempo real y el Maestro, un esquema de metadatos y almacenamiento de tablas hbase

HMaster: RegionServer región de asignación, responsable de balanceo de carga RegionServer encontró RegionServer eficacia y reasignar la región en la que las adiciones y supresiones de gestión Yonghui a la búsqueda del cambio sobre la mesa.

HRegionServer: región de Mantenimiento y tramitar las solicitudes de éstos región IO, es responsable de la segmentación durante la operación región más grande.

9, el papel de la máquina kafka proceso

De Agente:

Consumidor: Los consumidores

Broker: kafka clúster de servidores, leer y escribir solicitudes para procesar el mensaje, almacenamiento de mensajes

Tema: la cola de mensajes, la clasificación

Cola: dentro de un modelo productor-consumidor

10, la diferencia entre la chispa y el papel de clientes y los clústeres

(1) cliente

Controlador que se ejecuta en el cliente (inicio en la máquina local).

Aquí conductor será responsable de programar todas las tareas, una comunicación más frecuente en el ejecutor y el grupo (mensaje de inicio de tareas, realizar mensajes estadísticos, los estados de funcionamiento, la salida aleatoria, etc.), un gran número de comunicaciones frecuentes (máquina local general en el clúster no está en una habitación ), conduce a la alta carga de tráfico local. Pero todos los registros se pueden ver en la máquina local, adecuado para su uso durante la prueba.

Chispa standlone-Cliente

Después de que el cliente comienza a ejecutar el programa de puesta directamente controlador trabajos relacionados: DAGScheduler y BlockManagerMaster y así sucesivamente. Controlador de cliente registrado en el Maestro. Trabajador Maestro comenzará Ejecutor, Trabajador de crear un hilo ExecutorRunner, executorRunner inicia el proceso ExecutorBackend. Después de iniciar el registro ExecutorBackend ExecutorBackend de conducir, DAGScheduler de conducir analiza el trabajo y genera una etapa correspondiente, tarea por cada etapa que comprende la ejecución ejecutor TaskScheduler asignado. Por último, después del final de la etapa para llevar a cabo todo el trabajo de acabado

Chispa Hilado-Cliente

El equipo local para presentar la solicitud a la ResourceManager, comenzará directamente en el programa de la máquina Vial local, RM comenzó ApplicationMaster de recursos suficientes un NodeManager, después de AM a ejecutor de aplicaciones RM, contenedor de asignación RM de acuerdo a los recursos de cada nodo, e informar a la mañana, cada NodeManager iniciar ejecutor, después de comenzar cada NodeManager registro inverso al conductor, conductor sabía que estaba en este momento qué recursos se pueden utilizar, a continuación, puede realizar el trabajo, la etapa de división y otras tareas de computación.

Además de sentirse ApplicationMaster el ejecutor aplicación tiene ningún otro efecto.

(2) clúster

Controlador de realizar (en el que uno NodeManager, y ApplicationMaster corren juntos) en el nodo de tarea

Chispa standlone-Cluster

El envío de trabajos al Maestro, Maestro dejó que un trabajador comienza conductor (SchedulerBackend), crear un proceso SchedulerBackend hilos DriverRunner comenzado. Maestro dejó que otro trabajador se inicia Ejecutor (ExecutorBackend) ExecutorRunner crear un hilo, a partir ExecutorBackend proceso. Después ExecutorBackend inicia el registro con SchedulerBackend del conductor, proceso SchedulerBackend contiene DAGScheduler, que va a generar un plan de ejecución basado en la ejecución del programa de usuario y la programación. tarea para cada etapa se almacena en el TaskScheduler cuando executorScheduler a SchedulerBackend informó en la barra de tareas TaskScheduler executorBackend ejecución programada. Finalmente, después de todo, al final de la etapa se queda sin empleo.

Chispa Hilado-Cluster

El equipo local para enviar la solicitud a la ResourceManager, RM comienza recursos suficientes un NodeManager ApplicationMaster, Conductor su comienzo con, después de que el ejecutor de la aplicación RM, contenedor de asignación RM de acuerdo a los recursos de cada nodo, e informar a la mañana, ApplicationManager iniciar el ejecutor a cada NodeManager, después del inicio de cada registro inverso NodeManager a AM, esta vez ApplicationManager (Driver) saben que tienen recursos que pueden ser utilizados, entonces se puede realizar el trabajo, la etapa de división y otras tareas de computación.

(3) Notas

En el modo de standlone, solicitud de registro (aplicaciones en la ejecución) y la programación de tareas se hacen para el conductor.

chispa en el modelo de hilado, el registro de aplicación (aplicación Ejecutor) por AM, la tarea de programación por el conductor, se separa de la

11, proceso de escritura HDFS

(1) HDFS proceso de lectura:

El primer paso: el cliente a través del sistema de archivos distribuido api método abierto;

Segundo paso: método abierto de enviar una solicitud a NameNode, Bloque obtener información de posición (información de posición metadatos sólo se sabe), el retorno de toda la información de posición de bloque para el cliente;

El tercer paso: después de que el cliente final recibe la posición de inicio de la lectura del bloque leído por el método de lectura de FSDataInputStream la API;

Paso cuatro: FSDataInputStream leído por cada uno de los concurrente Bloquear api, es decir, leer juntos, en el curso de la lectura de un sólo lectura copia de la cual puede estar basada en la prioridad de lectura desde el mismo bastidor;

Paso cinco: se apaga, y el cliente para formar un documento unificado.

proceso de escritura (2) HDFS

El primer paso: el cliente puede tomar un archivo creado por el api método create llama al sistema de archivos distribuido;

Paso dos: Nameode lo que puede recibir el nombre de archivo, los usuarios de tamaño de archivo que, NameNode determinan el número de bloque y datenode necesidad de almacenamiento;

El tercer paso: el cliente empezó a leer los datos, escritura por el FSDataInputStream método de escritura;

Paso cuatro: el método sólo un databode escrito bloque, para crear un hilo por el DataNode actual, para asumir otra DataNode copiar otras copias de copias de acuerdo con las normas actuales;

Paso cinco: de nuevo a devolver un mensaje que indica que la carga esté completa

Paso seis: Apagar, e informó a la información cargada en un NameNode

12, chispa en el hilo y mapreduce por diferencia de hilo

(1) mapreduce utiliza varios procesos para ejecutar tareas independiente múltiple, para facilitar recursos de grano fino ocupado por un valor nulo para cada tarea, pero consumirá más tiempo de puesta en marcha, de baja latencia tipo no es adecuado para los trabajos en ejecución; ejecutor chispa usando varios procesos, cada uno una tarea con varios subprocesos para ejecutar de baja latencia tipo de trabajo.

(2) de chispa a favor de la memoria compartida, todas las tareas se ejecutan en un solo proceso, para tareas que requieren mucha memoria (como la necesidad de cargar un gran número de aplicaciones de diccionario), la aplicación de ejecutor de recursos puede ser reutilizado tareas múltiples lotes. MapReduce solicitud por separado para cada tarea los recursos liberados exhausto, 2.0 no es compatible con las capacidades de reutilización JVM.

(3) chispa puede causar graves contención de recursos, es difícil un control preciso de la cantidad de recursos para cada tarea, y la huella de los recursos de control mapreduce es propicio para las grandes operaciones funcionando sin problemas.

(4) mapreduce: cada tarea se ejecuta en un proceso JVM separada; memoria de apoyo, asignación de CPU de dos recursos; tarea se ejecuta a cabo sobre la liberación de los recursos

(5) chispa: cada nodo uno correr o más servicios ejecutor, cada ejecutor con un cierto número de ranura, lo que indica que el ejecutor o cuántas reduceTask shufflemaptask se pueden ejecutar simultáneamente. Cada ejecutor se ejecuta en un proceso de JVM, cada tarea es ejecutar un ejecutor sub-proceso de; el mismo ejecutor de tareas de memoria interna compartida (como variable de radio), ejecutor, una vez iniciado continuará funcionando tarea de recursos ha sido multiplexados , programa de chispa de complicidad se termina de ejecutar antes del lanzamiento de salida.

 
  
 



Autor: lápices de colores pequeña Xin ningún problema
enlace: https://www.jianshu.com/p/37b04eeedc6d
Fuente: libros de Jane
tienen derechos de autor por el autor. reimpresión comercial póngase en contacto con el autor autorizada, reimpresión no comercial por favor indique la fuente.

Supongo que te gusta

Origin www.cnblogs.com/whywy/p/12519016.html
Recomendado
Clasificación