descargar - Aplicaciones MapReduce 2 frente a YARN
hdfs hadoop (3)
YARN es solo un administrador de clúster.
Estoy un poco confundido acerca de cómo las nuevas aplicaciones de MapReduce2 deberían desarrollarse para trabajar con YARN y lo que sucede con las anteriores.
Actualmente tengo aplicaciones MapReduce1 que básicamente consisten en:
- Controladores que configuran los trabajos que se enviarán al clúster (JobTracker anterior y ahora el ResourceManager).
- Mappers + Reductores
Por un lado, veo que las aplicaciones codificadas en MapReduce1 son compatibles en MapReduce2 / YARN, con algunas advertencias, simplemente recompilando con nuevas bibliotecas CDH5 (trabajo con la distribución de Cloudera).
Pero desde otro lado veo información sobre cómo escribir aplicaciones de YARN de una manera diferente a las de MapReduce (usando YarnClient, ApplicationMaster, etc.):
http://hadoop.apache.org/docs/r2.7.0/hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html
Pero para mí, YARN es solo la arquitectura y cómo el clúster administra su aplicación de MR.
Mis preguntas son:
- ¿
YARN
aplicaciones deYARN
incluyen las aplicaciones deMapReduce
? - ¿Debería escribir mi código como una aplicación
YARN
, olvidando los controladores y creando clientes de hilo,ApplicationMasters
, etc.? - ¿Puedo desarrollar las clases de cliente con drivers + configuración de trabajo? ¿Los
MapReduce1
(compilado con bibliotecas MR2) son administrados porYARN
de la misma manera que las aplicaciones YARN? - ¿Qué diferencias existen entre las aplicaciones
MapReduce1
yYARN
aplicacionesYARN
respecto a la forma en queYARN
gestionará internamente?
Gracias por adelantado
HADOOP versión 1
El JobTracker es responsable de la administración de los recursos --- administrar los nodos esclavos --- las principales funciones involucran
- seguimiento del consumo / disponibilidad de recursos
- gestión del ciclo de vida del trabajo --- programar tareas individuales del trabajo, seguir el progreso, proporcionar tolerancia a fallas para las tareas.
Problemas con Hadoop v1 JobTracker es responsable de todas las aplicaciones de MR engendradas, es un punto único de falla --- Si JobTracker falla, todas las aplicaciones en el clúster mueren. Además, si el clúster tiene una gran cantidad de aplicaciones, JobTracker se convierte en el cuello de botella de rendimiento, para abordar los problemas de escalabilidad y administración de trabajos. Se lanzó Hadoop v2.
Hadoop v2
La idea fundamental de YARN es dividir las dos responsabilidades principales del Rastreador de trabajos, es decir, la gestión de recursos y la programación / supervisión de trabajos, en daemons separados: un ResourceManager global y un ApplicationMaster (AM) por aplicación. ResourceManager y el esclavo por nodo, el NodeManager (NM), forman el nuevo y genérico sistema operativo para administrar aplicaciones de forma distribuida.
Para interactuar con el nuevo resourceManagement and Scheduling, se desarrolla una aplicación Hadoop YARN mapReduce --- MRv2 no tiene nada que ver con la API de programación mapReduce
Los programadores de aplicaciones no verán ninguna diferencia entre MRv1 y MRv2, MRv2 es completamente compatible con versiones anteriores --- Sí, una aplicación de MR (.jar), se puede ejecutar en ambos marcos sin ningún cambio en el código.
El Hadoop 2.x ya contiene el código para MR Client y AppMaster, el programador solo necesita enfocarse en sus aplicaciones de MapReduce.
MapReduce se integró previamente en Hadoop Core, la única API para interactuar con datos en HDFS. Ahora, en Hadoop v2 se ejecuta como una aplicación independiente, Hadoop v2 permite que otros marcos de programación de aplicaciones, por ejemplo, MPI, procesen datos HDFS.
Consulte la página de documentación de Apache en la arquitectura YARN y las publicaciones relacionadas de SE:
¿Las aplicaciones de YARN incluyen las aplicaciones de MapReduce?
YARN admite Mapreduce
aplicaciones Mapreduce
. También ejecuta trabajos Spark a diferencia de Hadoop 1.x.
¿Debería escribir mi código como una aplicación YARN, olvidando los controladores y creando clientes de hilo, ApplicationMasters, etc.?
Sí. Debe olvidarse de todos estos componentes de la aplicación y escribir su aplicación. Eche un vistazo al código de muestra
¿Puedo desarrollar las clases de cliente con controladores + configuración de trabajo? ¿Los trabajos MapReduce1 (recompilados con bibliotecas MR2) están gestionados por YARN de la misma manera que las aplicaciones YARN?
Sí. Tu puedes hacer. Pero mira este artículo de compatibilidad.
¿Qué diferencias existen entre las aplicaciones MapReduce1 y las aplicaciones YARN con respecto a la forma en que YARN las gestionará internamente?
Consulte esta publicación SE: