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.
El protocolo de S3-optimized confirmación EMRFS y las cargas multiparte
Para utilizar la optimización para la sobrescritura dinámica de particiones en el protocolo de S3-optimized confirmación de EMRFS, las cargas multiparte deben estar habilitadas en Amazon EMR. Las cargas multiparte están habilitadas de forma predeterminada. Puede volver a habilitarlas si es necesario. Para obtener más información, consulte Configuración de carga multiparte para Amazon S3 en la Guía de administración de Amazon EMR.
Durante la sobrescritura dinámica de particiones, el protocolo de S3-optimized confirmación de EMRFS utiliza las características similares a las transacciones de las cargas multiparte para garantizar que los archivos escritos mediante intentos de tarea solo aparezcan en la ubicación de salida del trabajo al confirmarse el trabajo. Al utilizar las cargas multiparte de este modo, el protocolo de confirmación mejora el rendimiento de las confirmaciones de trabajos en comparación con la opción predeterminada SQLHadoopMapReduceCommitProtocol. Al utilizar el protocolo de S3-optimized confirmación EMRFS, hay que tener en cuenta algunas diferencias clave con respecto al comportamiento tradicional de carga multiparte:
-
Las cargas multiparte siempre se llevan a cabo independientemente del tamaño del archivo. Esto difiere del comportamiento predeterminado de EMRFS, donde la propiedad
fs.s3n.multipart.uploads.split.sizecontrola el tamaño del archivo en el que se activan las cargas multiparte. -
Las cargas multiparte se dejan en un estado incompleto durante un periodo de tiempo más prolongado hasta que la tarea se confirma o se anula. Esto difiere del comportamiento predeterminado de EMRFS, donde una carga multiparte se completa cuando una tarea termina de escribir un determinado archivo.
Debido a estas diferencias, si la JVM de un ejecutor de Spark se bloquea o se termina mientras hay tareas ejecutándose y escribiendo datos en Amazon S3, o la JVM de un controlador de Spark se bloquea o se termina durante la ejecución de un trabajo, es más probable que queden cargas multiparte incompletas sin finalizar. Por este motivo, cuando utilices el protocolo de S3-optimized confirmación de EMRFS, asegúrate de seguir las prácticas recomendadas para gestionar las cargas multiparte fallidas. Para obtener más información, consulte Prácticas recomendadas para trabajar con buckets de Amazon S3 en la Guía de administración de Amazon EMR.