Committer S3A MagicV2 - Amazon EMR

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.

Committer S3A MagicV2

Con la versión EMR-6.15.0, Amazon EMR presenta un nuevo tipo de confirmador S3A conocido como confirmador MagicV2. Para obtener información completa sobre esta función, consulte las secciones de documentación correspondientes.

El MagicV2 Committer representa una implementación mejorada del código abierto MagicCommitter, diseñada específicamente para optimizar la escritura de archivos en Amazon S3 a través del sistema de archivos S3A. Al igual que su predecesora, aprovecha las capacidades de carga multiparte de Amazon S3 para eliminar las operaciones tradicionales de lista y cambio de nombre que suelen asociarse a las fases de confirmación de tareas y tareas.

En comparación con el original MagicCommitter, el programador 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 archivador MagicV2 ofrece una mayor flexibilidad, ya que permite sobrescribir las rutas de los archivos en varios subprocesos durante el proceso de confirmación.

Activa el Committer MagicV2

Para habilitar el confirmador de MagicV2, introduzca la siguiente configuración en la configuración 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 requieren sobrescribir el directorio existente antes de confirmar o escribir los nuevos archivos, se necesita 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 de la threads configuración 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 en EMR-7.2.0 y versiones posteriores.

Consideraciones

  • Si la máquina virtual Java (JVM) se bloquea o se cierra mientras se ejecutan tareas y se escriben datos en Amazon S3, es más probable que las cargas multiparte incompletas se queden atrás. Por este motivo, cuando utilice el compilador MagicV2, asegúrese de seguir las prácticas recomendadas para gestionar las cargas multiparte fallidas. Para obtener más información, consulte la sección Prácticas recomendadas para trabajar con buckets de Amazon S3 en la Guía de administración de Amazon EMR.

  • Si se produce un error en un trabajo, todos los archivos archivados 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 comprometidos antes de volver a ejecutar el trabajo en la misma ruta de destino.

  • El archivador MagicV2 consume una pequeña cantidad de memoria por cada archivo escrito por un intento de tarea hasta que la tarea se confirme o aborte. En la mayoría de los trabajos, la cantidad de memoria consumida es insignificante. Sin embargo, en algunos casos en los que un único 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). Aumentar la memoria del contenedor o del ejecutor debería solucionar este problema.