¿Cuál es la diferencia entre configurar mapred.job.map.memory.mb y mapred.child.java.opts usando -Xmx para controlar la memoria máxima utilizada por una tarea de Mapper y Reducir? ¿Cuál tiene prioridad?Diferentes formas de configurar la memoria en el proceso hijo TaskTracker (Asignación y reducción de tareas)
Respuesta
-Xmx
especifique el espacio de almacenamiento dinámico máximo de la jvm asignada. Este es el espacio reservado para la asignación de objetos que administra el garbage collector. Por otro lado, mapred.job.map.memory.mb
especifica el máximo virtual memory permitido por un subproceso de tarea de Hadoop. Si supera el tamaño máximo de almacenamiento dinámico, la JVM arroja una OutOfMemoryException.
La JVM puede usar más memoria que el tamaño máximo de almacenamiento dinámico porque también necesita espacio para almacenar definiciones de objetos (espacio permgen) y la pila. Si el proceso usa más memoria virtual que mapred.job.map.memory.mb
es destruido por hadoop.
Así que uno no toma precedencia sobre la otra (y miden diferentes aspectos del uso de la memoria), pero -Xmx
es un parámetro para la JVM y mapred.job.map.memory.mb
es un disco superior unido de la memoria virtual de un intento tarea puede utilizar , impuesto por hadoop.
Espero que esto sea útil, ¡la memoria es complicada! Actualmente estoy confundido por el motivo por el cual mis procesos JVM usan varios múltiplos del tamaño máximo de almacenamiento dinámico en la memoria virtual en my SO post.
- 1. ¿Uso de memoria de un proceso hijo?
- 2. Formas de implementar tareas vinculadas a la CPU en nodejs
- 3. cómo obtener un proceso de memoria hijo en node.js?
- 4. Tamaño de la memoria de proceso - Diferentes contadores
- 5. Por qué la dirección de la variable de proceso hijo y el proceso primario es igual
- 6. C++ y protección de memoria de proceso
- 7. nohup para el proceso hijo en Unix
- 8. asignación dinámica de la memoria
- 9. asignación de memoria para el puntero
- 10. Proceso hijo múltiple
- 11. de asignación de memoria Problema
- 12. Diferentes formas de $ (document) .ready
- 13. Comprobando la asignación de memoria en Instrumentos
- 14. Diferentes formas de borrar listas
- 15. Pasos en el proceso de asignación de memoria para objetos Java
- 16. Diferentes formas de inicializar una variable
- 17. Asignación de memoria en C++
- 18. ¿Cuándo comienzan las tareas de reducción en Hadoop?
- 19. Asignación de memoria en C
- 20. Memoria de asignación dinámica en la GPU
- 21. asignación de memoria en C++
- 22. Asignación de memoria char * y char []
- 23. 64bit Asignación de memoria
- 24. ¿Cómo rastrear el proceso hijo usando strace?
- 25. Diferentes formas de pasar variables en MSBuild
- 26. Asignación de memoria dinámica
- 27. ¿Qué sucede con el proceso hijo?
- 28. obtener pid del proceso hijo
- 29. C++ - La asignación de memoria en el montón usando "nueva"
- 30. Asignación de memoria y desasignación a través de subprocesos
Hola. ¿Cómo afecta esto a las tareas de mapeador/reductor personalizado no java? ¿Hay alguna manera de restringir la asignación de memoria para los scripts de mapper/reducer personalizados también? –