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.
Almacenamiento de datos de mezclas aleatorias de Spark
El mezclado aleatorio es un paso importante en un trabajo de Spark siempre que los datos se reorganizan entre particiones. Esto es necesario porque transformaciones de gran extensión como join
,
groupByKey
, reduceByKey
, y repartition
requieren información de otras particiones para completar el procesamiento. Spark recopila los datos requeridos de cada partición y los combina en una nueva partición. Durante una mezcla aleatoria, los datos se escriben en el disco y se transfieren a través de la red. Como resultado, la operación de mezcla aleatoria está vinculada a la capacidad del disco local. Spark lanza un error No space left on device
o
MetadataFetchFailedException
cuando no queda suficiente espacio en disco en el ejecutor y no se puede realizar la recuperación.
nota
El complemento AWS Glue Spark shuffle de Amazon S3 solo es compatible con los trabajos de ETL AWS Glue.
Solución
Con AWS Glue, ahora puede utilizar Amazon S3 para almacenar datos de mezclas aleatorias de Spark. Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes del sector. Esta solución separa la informática y el almacenamiento para sus trabajos de Spark y proporciona una elasticidad completa y un almacenamiento de mezclas aleatorias de bajo costo, lo que le permite ejecutar con confianza sus cargas de trabajo con mayor cantidad de mezclas aleatorias.
Presentamos Cloud Shuffle Storage, un nuevo complemento para Apache Spark para usar Amazon S3. Puede habilitar la función de mezclado aleatorio de Amazon S3 para ejecutar sus trabajos de AWS Glue con confianza y sin errores si se sabe que están vinculados por la capacidad del disco local para operaciones de mezclas aleatorias grandes. En algunos casos, el mezclado aleatorio en Amazon S3 es ligeramente más lento que el disco local (o EBS) si tiene un gran número de pequeñas particiones o archivos de mezcla aleatoria escritos en Amazon S3.
Requisitos previos para usar el complemento de almacenamiento de Cloud Shuffle
Para usar el complemento de almacenamiento de Cloud Shuffle con trabajos de AWS Glue ETL, necesita lo siguiente:
-
Un bucket de Amazon S3 ubicado en la misma región en la que se ejecutó el trabajo, para almacenar los datos intermedios mezclados y volcados. El prefijo Amazon S3 del almacenamiento aleatorio se puede especificar con
--conf spark.shuffle.glue.s3ShuffleBucket=s3://
, como en el siguiente ejemplo:shuffle-bucket
/prefix
/--conf spark.shuffle.glue.s3ShuffleBucket=s3://glue-shuffle-123456789-us-east-1/glue-shuffle-data/
-
Establezca las políticas de ciclo de vida de almacenamiento de Amazon S3 en el prefijo (como
glue-shuffle-data
) ya que el administrador de mezclas aleatorias no limpia los archivos una vez finalizado el trabajo. Los datos intermedios mezclados y volcados se deben eliminar una vez finalizado el trabajo. Los usuarios pueden establecer políticas de ciclo de vida breves en el prefijo. Las instrucciones para configurar la política de ciclo de vida de Amazon S3 están disponibles en Configurar el ciclo de vida de un bucket en la Guía del usuario de Amazon Simple Storage Service.
Uso del administrador de mezclas aleatorias de AWS Glue Spark desde la consola de AWS
Para configurar el administrador de mezclas aleatorias de AWS Glue Spark con la consola de AWS Glue o AWS Glue Studio cuando configura un trabajo: elija el parámetro de trabajo: --write-shuffle-files-to-s3 para habilitar el mezclado aleatorio de Amazon S3 para el trabajo.
Uso del complemento de mezclas aleatorias de AWS Glue Spark
Los siguientes parámetros de trabajo activan y establecen los ajustes del administrador de mezclas aleatorias de AWS Glue. Estos parámetros son indicadores, por lo que no se tienen en cuenta los valores proporcionados.
-
--write-shuffle-files-to-s3
: el valor de la marca principal habilita la opción del administrador de mezclas aleatorias de AWS Glue Spark para utilizar buckets de Amazon S3 para escribir y leer datos aleatorios. Cuando la marca no se especifica, no se utiliza el administrador de mezclas aleatorias. -
--write-shuffle-spills-to-s3
: (solo se admite en la versión 2.0 de AWS Glue). Una marca opcional que permite descargar archivos de volcado en buckets de Amazon S3, lo que proporciona resistencia adicional al trabajo de Spark. Esto solo es necesario para cargas de trabajo grandes que provocan grandes desbordamientos al disco. Cuando no se especifica la marca, no se graba ningún archivo de volcado intermedio. -
--conf spark.shuffle.glue.s3ShuffleBucket=s3://<shuffle-bucket>
: otra marca opcional que especifica el bucket de Amazon S3 en el que se escriben los archivos de mezcla aleatoria. De forma predeterminada,--TempDir
/shuffle-data. AWS Glue 3.0+ permite escribir archivos aleatorios en varios buckets al especificar los buckets con un delimitador de comas, como en--conf spark.shuffle.glue.s3ShuffleBucket=s3://
. El uso de varios buckets mejora el rendimiento.shuffle-bucket-1
/prefix
,s3://shuffle-bucket-2
/prefix
/
Debe proporcionar los ajustes de configuración de seguridad para habilitar el cifrado en reposo de los datos aleatorios. Para obtener más información sobre las configuraciones de seguridad, consulte Configuración del cifrado en AWS Glue. AWS Glue admite todas las demás configuraciones relacionadas con mezclas aleatorias proporcionadas por Spark.
Archivos binarios del software para el complemento Cloud Shuffle Storage
También puede descargar los archivos binarios del software del complemento Cloud Shuffle Storage para Apache Spark bajo la licencia Apache 2.0 y ejecutarlo en cualquier entorno de Spark. El nuevo complemento incluye compatibilidad lista para usar con Amazon S3 y también se puede configurar fácilmente para usar otras formas de almacenamiento en la nube, como Google Cloud Storage y Microsoft Azure Blob Storage
Notas y limitaciones
Las siguientes son notas o limitaciones para el administrador de mezclas aleatorias de AWS Glue:
-
El administrador de mezclas aleatorias AWS Glue no elimina automáticamente los archivos de datos de mezcla aleatoria (temporales) almacenados en un bucket de Amazon S3 después de completar un trabajo. Para garantizar la protección de los datos, siga las instrucciones que se indican en Requisitos previos para usar el complemento de almacenamiento de Cloud Shuffle antes de activar el complemento Cloud Shuffle Storage Plugin.
-
Puede utilizar esta característica si los datos están sesgados.