tutorial reiniciar que para necesito multinodo maquina instalar como cluster hadoop mapreduce mapper

reiniciar - que necesito para instalar hadoop



Hadoop: número de ranuras de mapas disponibles en función del tamaño del clúster (3)

Agrupé el código fuente de Hadoop y no encontré la cadena Setting default number of map tasks based on cluster size to en absoluto (mientras que encontré otras cadenas, que se están imprimiendo cuando se ejecutan trabajos de MR). Además, esta cadena no se está imprimiendo en ninguna parte de mi instalación local. Una búsqueda en Google para la misma incluyó problemas en AWS con EMR. Como confirmó, está usando Amazon Elastic MapReduce. Creo que EMR tiene algunas modificaciones propias en la clase JobClient de Hadoop, que genera esta línea en particular.

En lo que respecta al cálculo de este número, sospecho que se computará en función de características como el total number of (active) nodes in cluster (N) y el number of map slots per node (M) , es decir, N*M Sin embargo, también se pueden tener en cuenta las restricciones adicionales de recursos (memoria) de AWS. Tendría que pedir en foros relacionados con EMR la fórmula exacta.

Adicionalmente, JobClient expone un conjunto de información sobre el clúster. Usando el método JobClient # getClusterStatus () puede acceder a información como:

  • Tamaño del clúster
  • Nombre de los rastreadores
  • Número de seguidores en la lista negra / activos.
  • Capacidad de tarea del clúster
  • El número de tareas actuales de mapa y reducción.

a través del objeto de clase ClusterStatus , para que pueda intentar y calcular manualmente el número deseado en su programa.

Leyendo el syslog generado por Hadoop, puedo ver líneas similares a esta ...

2013-05-06 16:32:45,118 INFO org.apache.hadoop.mapred.JobClient (main): Setting default number of map tasks based on cluster size to : 84

¿Alguien sabe cómo se calcula este valor? ¿Y cómo puedo obtener este valor en mi programa?


Es principalmente el deber de InputFormat encontrar el no. de mapeadores y se hace en base a los InputSplits creados por la lógica escrita dentro del getSplits(JobContext context) de su clase InputFormat. Especificando el no. de mapeadores a través de los archivos Job o config o especificándolo a través del shell es solo una sugerencia para el framework y no garantiza que siempre obtenga solo el no especificado. de mapeadores.


Por lo tanto, esto se establece de manera predeterminada en función del tamaño de su entrada. http://wiki.apache.org/hadoop/HowManyMapsAndReduces . Puedes especificar más mapeadores, pero no menos que el número definido por hadoop.

Debería poder acceder a este número obteniendo la opción de configuración "mapred.map.tasks". También puede obtenerlo de esta función si está usando la API anterior.

conf.getNumMapTasks();

Esta pregunta anterior, ¿Cómo establecer el número de tareas de mapa en hadoop 0.20? , tiene algunas buenas respuestas también