¿Cómo poner en marcha una aplicación basada hilo

Para mostrar cómo los distintos HILO (otro negociador de recursos) los componentes trabajan juntos, se puede caminar a través de la ejecución de una aplicación. Por el bien del argumento, que puede ser una aplicación de MapReduce, con la arquitectura JobTracker y TaskTracker.

Sólo recuerde que, con hilados, puede ser cualquier tipo de aplicación para la que no hay un marco de aplicación. La figura muestra las interacciones, y la cuenta de la prosa se establece en la siguiente lista de pasos:

  1. La aplicación cliente envía una solicitud de aplicación del Administrador de recursos.

  2. El Administrador de recursos solicita un Gerente de nodo para crear una instancia Maestro aplicación para esta aplicación. El Administrador de nodo se pone un recipiente para ello y comienza para arriba.

  3. Este nuevo Maestro Aplicación inicializa mediante el registro en sí con el Administrador de recursos.

  4. La aplicación maestra da cuenta de cómo se necesitan muchos recursos de procesamiento para ejecutar toda la aplicación.

    Esto se hace mediante la solicitud de la NameNode los nombres y ubicaciones de los archivos y bloques de datos de las necesidades de la aplicación y el cálculo de cuántas tareas mapa y reducen las tareas son necesarias para procesar todos estos datos.

  5. El Maestro Aplicación solicita entonces los recursos necesarios desde el Administrador de recursos.

    La aplicación Maestro envía mensajes de latido al Administrador de recursos a lo largo de su vida útil, con una lista permanente de los recursos solicitados y los cambios (por ejemplo, una solicitud de matar).

  6. El Administrador de recursos acepta la solicitud de recursos y pone en cola las peticiones específicas de recursos, junto con todas las demás solicitudes de recursos que ya están programadas.

  7. Medida que se disponga de los nodos esclavos los recursos solicitados, el Administrador de recursos otorga los contratos de arrendamiento Máster de aplicación para contenedores en nodos esclavos específicos.

  8. La aplicación Maestro pide al contenedor asignado desde el Administrador de nodo y la envía un contexto Lanzamiento de Contenedores (CLC).

    El CLC incluye todo lo que la tarea de la aplicación necesita para funcionar: variables de entorno, tokens de autenticación, los recursos locales necesarios en tiempo de ejecución (por ejemplo, archivos de datos adicionales, o lógica de la aplicación en el JAR), y la cadena de comandos necesarios para iniciar el proceso real. El Administrador de nodo crea entonces el proceso de contenedores solicitado y lo inicia.

  9. La aplicación se ejecuta mientras que los procesos de contenedor se están ejecutando.

    La aplicación maestra controla su progreso, y en el caso de un fallo contenedor o un fallo de nodo, la tarea se reinicia en la siguiente ranura disponible. Si la misma tarea falla después de cuatro intentos (un valor por defecto que se puede personalizar), todo el trabajo se producirá un error. Durante esta fase, el Maestro de aplicaciones también se comunica directamente con el cliente para responder a las solicitudes de estado.

  10. Además, mientras que los contenedores se están ejecutando, el Administrador de recursos puede enviar una orden de matar al Gerente de nodo para terminar un contenedor específico.

    Esto puede ser como resultado de un cambio de prioridad de programación o una operación normal, tales como la aplicación en sí ya está siendo completado.

  11. En el caso de aplicaciones MapReduce, después de las tareas de mapa hayan terminado, los recursos solicitudes Maestro Aplicación para una ronda de reducir las tareas para procesar los conjuntos de resultados provisionales de las tareas de mapas.

  12. Cuando todas las tareas se han completado, la Aplicación Maestro envía el conjunto de resultados a la aplicación cliente, informa el Administrador de recursos que la aplicación se ha completado con éxito, desregistra sí desde el Administrador de recursos, y se cierra en sí abajo.

    imagen0.jpg

Al igual que los demonios JobTracker y TaskTracker y ranuras de procesamiento en Hadoop 1, todos los demonios de hilados y contenedores son procesos Java que se ejecutan en máquinas virtuales de Java. Con HILO, estás ya no requiere que definir cuántos mapa y reducir ranuras que necesita - sólo tiene que decidir cuánta memoria mapa y reducir las tareas pueden tener. El Administrador de recursos destinará contenedores para el mapa o reducir las tareas en el clúster en función de cómo es la cantidad de memoria disponible.

Cuando usted está escribiendo aplicaciones Hadoop, usted no tiene que preocuparse acerca de la solicitud de recursos y el seguimiento de los contenedores. Cualquiera que sea marco de aplicación que estés usando hace todo eso para usted. Siempre es una buena idea, sin embargo, para entender lo que sucede cuando las aplicaciones se ejecutan en el clúster. Este conocimiento puede ayudar enormemente cuando se va a monitorear el progreso de aplicación o la depuración de una tarea fallida.




» » » » ¿Cómo poner en marcha una aplicación basada hilo