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.