Si tiene tareas muy pequeñas que definitivamente se ejecutan una detrás de la otra, es útil establecer esta propiedad en -1 (lo que significa que una JVM engendrada se reutilizará varias veces). Así que solo genera (cantidad de tareas en su clúster disponible para su trabajo) -JVMs en lugar de (número de tareas) -JVMs.
Esto es una gran mejora en el rendimiento. En trabajos de larga ejecución, el porcentaje del tiempo de ejecución en comparación con la configuración de una nueva JVM es muy bajo, por lo que no proporciona un gran impulso al rendimiento.
También en tareas de larga ejecución es bueno recrear el proceso de la tarea, debido a problemas como la fragmentación del montón degradando su rendimiento.
Además, si tiene algunos trabajos a mitad del tiempo, puede volver a utilizar solo 2-3 tareas, teniendo una buena compensación.
si habilita la tarea uber, ¿puede mapeadores y reduce compartir la misma JVM? ¿o es como que los mapeadores pueden compartir la misma JVM y los reductores pueden compartir la misma JVM? – MikA