2011-12-27 12 views
5

Después de leer http://gbif.blogspot.com/2011/01/setting-up-hadoop-cluster-part-1-manual.html llegamos a la conclusión de que nuestro clúster hadoop de 6 nodos podría usar algún ajuste, y io.sort.factor parece ser un buen candidato, ya que controla una importante compensación. Estamos planeando ajustes y pruebas, pero planificar con anticipación y saber qué esperar y qué mirar parece razonable.¿Cómo puedo saber si mi parámetro de configuración hadoop io.sort.factor es demasiado pequeño o demasiado grande?

Actualmente se encuentra en 10. ¿Cómo sabríamos que nos está causando demasiadas fusiones? Cuando lo planteemos, ¿cómo sabríamos que está causando que se abran demasiados archivos?

Tenga en cuenta que no podemos seguir los extractos de registro del blog directamente como se pone al día a CDH3b2, y estamos trabajando en CDH3u2, y han cambiado ...

Respuesta

9

Hay algunas ventajas y desventajas a considerar.

  1. cantidad de búsquedas realizadas al fusionar archivos. Si aumenta el factor de fusión demasiado alto, entonces el costo de búsqueda en el disco excederá los ahorros de realizar una fusión paralela (tenga en cuenta que la memoria caché del sistema operativo podría mitigar esto de alguna manera).

  2. Al aumentar el factor de ordenación, disminuye la cantidad de datos en cada partición. Creo que el número es io.sort.mb/io.sort.factor para cada partición de datos ordenados. Creo que la regla general es tener io.sort.mb = 10 * io.sort.factor (esto se basa en la latencia de búsqueda del disco en la velocidad de transferencia, creo. Estoy seguro de que esto podría ajustarse). mejor si fue su cuello de botella. Si mantiene estos en línea uno con el otro, entonces la búsqueda indirecta de la fusión debe minimizarse

  3. Si aumenta io.sort.mb, entonces aumenta la presión de memoria en el clúster, dejando . menos memoria disponible para las tareas del trabajo uso de memoria para la clasificación es asignador de tareas * io.sort.mb - por lo que podría encontrarse haciendo que los GC adicional si esto es demasiado alta

Esencialmente,

Si te encuentras intercambiando mucho, entonces hay una buena probabilidad de que hayas establecido el factor de ordenación demasiado alto.

Si la relación entre io.sort.mb y io.sort.factor no es correcta, puede necesitar cambiar io.sort.mb (si tiene memoria) o reducir el factor de ordenación.

Si observa que está gastando más tiempo en su mapeador que en sus reductores, entonces puede querer aumentar el número de tareas de mapa y disminuir el factor de ordenación (suponiendo que haya presión de memoria).

Cuestiones relacionadas