Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Confirmador de S3A MagicV2
Con la versión EMR-6.15.0, Amazon EMR presenta un nuevo tipo de confirmador S3A conocido como MagicV2. Para obtener información completa sobre esta característica, consulte las secciones de documentación correspondientes.
El MagicV2 Committer representa una implementación mejorada del código abierto MagicCommitter
En comparación con el original MagicCommitter, el compilador MagicV2 demuestra un rendimiento superior al escribir los archivos en la ubicación de salida del trabajo durante la fase de confirmación de la tarea, en lugar de la fase de confirmación del trabajo. Este enfoque permite la escritura distribuida de archivos y elimina la necesidad de almacenar temporalmente los metadatos de confirmación en Amazon S3, lo que se traduce en una mayor rentabilidad. Además, el confirmador de MagicV2 ofrece una mayor flexibilidad, ya que permite sobrescribir las rutas de los archivos en múltiples subprocesos durante el proceso de confirmación.
Habilite el confirmador de MagicV2
Para habilitar el confirmador de MagicV2, introduzca la siguiente configuración en los ajustes de su trabajo o utilice la configuración del sitio principal para establecer la propiedad. Para obtener más información, consulte Configuración de aplicaciones.
mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true
Para las cargas de trabajo que necesitan sobrescribir el directorio existente antes de confirmar o escribir los archivos nuevos, se requiere la siguiente configuración adicional, junto con la configuración mencionada anteriormente.
fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=thread size
El valor predeterminado para la configuración de threads es 20. Sin embargo, este parámetro debe ajustarse cuando haya que sobrescribir un gran número de directorios para mejorar el rendimiento. Está disponible solo para EMR-7.2.0 y versiones posteriores.
Consideraciones
-
Si la máquina virtual Java (JVM) se bloquea o se termina mientras hay tareas ejecutándose y escribiendo datos en Amazon S3, es más probable que queden cargas multiparte incompletas sin finalizar. Por este motivo, cuando utilice el confirmador de MagicV2, asegúrese de seguir las prácticas recomendadas para la administración de cargas multiparte con errores. Para obtener más información, consulte la sección Best practices for working with Amazon S3 buckets en la Guía de administración de Amazon EMR.
-
Si ocurre un error en un trabajo, todos los archivos confirmados por las tareas realizadas correctamente seguirán estando visibles en la ruta de destino. En esos casos, el usuario tendrá que limpiar manualmente los archivos confirmados antes de volver a ejecutar el trabajo en la misma ruta de destino.
-
El confirmador de MagicV2 consume una pequeña cantidad de memoria por cada archivo escrito por un intento de tarea hasta que la tarea se confirma o se anula. En la mayoría de los trabajos, la cantidad de memoria consumida es insignificante. Sin embargo, en algunos casos en los que un solo proceso ejecutor gestiona un gran número de tareas de forma simultánea, puede suponer una gran carga para la memoria, y el contenedor o el ejecutor podrían quedarse sin memoria (OOM). El aumento de la memoria del contenedor o del ejecutor debería solucionar este problema.