Carga de datos en Amazon S3 Express One Zone - 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.

Carga de datos en Amazon S3 Express One Zone

Información general

Con Amazon EMR 6.15.0 y versiones posteriores, puede utilizar Amazon EMR con Apache Spark junto con la clase de almacenamiento Amazon S3 Express One Zone para mejorar el rendimiento de sus trabajos de Spark. EMRLas versiones 7.2.0 y posteriores de Amazon también son compatibles HBase con Flink y Hive, por lo que también puede beneficiarse de S3 Express One Zone si utiliza estas aplicaciones. S3 Express One Zone es una clase de almacenamiento de S3 para aplicaciones que acceden con frecuencia a los datos con cientos de miles de solicitudes por segundo. En el momento de su lanzamiento, S3 Express One Zone ofrece el almacenamiento de objetos en la nube con la latencia más baja y el rendimiento más alto de Amazon S3.

Requisitos previos

  • Permisos de S3 Express One Zone: cuando S3 Express One Zone realiza a una acción como GET, LIST o PUT en un objeto de S3, la clase de almacenamiento llama a CreateSession en su nombre. Su IAM política debe permitir el s3express:CreateSession permiso para que S3A el conector puede invocar el CreateSessionAPI. Para ver un ejemplo de política con ese permiso, consulte Introducción a Amazon S3 Express One Zone.

  • S3A conector: para configurar su clúster de Spark para acceder a los datos de un depósito de Amazon S3 que utiliza la clase de almacenamiento S3 Express One Zone, debe usar el conector Apache Hadoop S3A. Para usar el conector, asegúrese de que todos los S3 URIs utilicen el s3a esquema. Si no es así, puede cambiar la implementación del sistema de archivos que utiliza para los esquemas s3 y s3n.

Para cambiar el esquema s3, especifique las siguientes configuraciones de clúster:

[ { "Classification": "core-site", "Properties": { "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Para cambiar el esquema s3n, especifique las siguientes configuraciones de clúster:

[ { "Classification": "core-site", "Properties": { "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Introducción a Amazon S3 Express One Zone

Creación de una política de permisos

Antes de poder crear un clúster que utilice Amazon S3 Express One Zone, debe crear una IAM política para adjuntarla al perfil de EC2 instancia de Amazon del clúster. La política debe tener permisos para acceder a la clase de almacenamiento S3 Express One Zone. En la siguiente política de ejemplo, se muestra cómo conceder los permisos necesarios. Tras crear la política, asocie la política al rol de perfil de instancia que utilice para crear el EMR clúster, tal y como se describe en la Creación y configuración de un clúster sección.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3express:region-code:account-id:bucket/DOC-EXAMPLE-BUCKET", "Action": [ "s3express:CreateSession" ] } ] }

Creación y configuración de un clúster

A continuación, crea un clúster que ejecute SparkHBase, Flink o Hive con S3 Express One Zone. En los siguientes pasos, se ofrece información general de alto nivel para crear un clúster en la AWS Management Console:

  1. Ve a la EMR consola de Amazon y selecciona Clusters en la barra lateral. A continuación, elija Crear clúster.

  2. Si utilizas Spark, selecciona la versión de Amazon emr-6.15.0 o una EMR versión superior. Si usas HBase Flink o Hive, selecciona emr-7.2.0 o una versión superior.

  3. Seleccione las aplicaciones que desee incluir en el clúster, como Spark o HBase Flink.

  4. Para habilitar Amazon S3 Express One Zone, introduzca una configuración similar a la del siguiente ejemplo en la sección Configuración de software. Las configuraciones y los valores recomendados se describen en la sección Información general sobre las configuraciones que sigue a este procedimiento.

    [ { "Classification": "core-site", "Properties": { "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider", "fs.s3a.change.detection.mode": "none", "fs.s3a.endpoint.region": "aa-example-1", "fs.s3a.select.enabled": "false" } }, { "Classification": "spark-defaults", "Properties": { "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  5. En la EMR sección Perfil de EC2 instancia de Amazon, elige usar un rol existente y usa un rol con la política adjunta que creaste en la Creación de una política de permisos sección anterior.

  6. Configure el resto de los ajustes del clúster según corresponda para su aplicación y, a continuación, seleccione Crear clúster.

Información general sobre las configuraciones

En las siguientes tablas se describen las configuraciones y los valores sugeridos que debe especificar al configurar un clúster que utilice S3 Express One Zone con AmazonEMR, tal y como se describe en la Creación y configuración de un clúster sección.

S3A configuraciones

Parámetro Valor predeterminado Valor sugerido Explicación

fs.s3a.aws.credentials.provider

Si no se especifica, se utiliza AWSCredentialProviderList en el siguiente orden: TemporaryAWSCredentialsProvider, SimpleAWSCredentialsProvider, EnvironmentVariableCredentialsProvider, IAMInstanceCredentialsProvider.

software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider

El rol del perfil de EMR instancia de Amazon debe tener la política que permita S3A sistema de archivos al que llamar. s3express:CreateSession Otros proveedores de credenciales también funcionan si tienen los permisos de S3 Express One Zone.

fs.s3a.endpoint.region

null

El Región de AWS lugar donde creaste el depósito.

La lógica de resolución regional no funciona con la clase de almacenamiento S3 Express One Zone.

fs.s3a.select.enabled

true

false

select de Amazon S3 no es compatible con la clase de almacenamiento S3 Express One Zone.

fs.s3a.change.detection.mode

server

Ninguno

Detección de cambios por S3A funciona comprobando MD5basadoetags. La clase de almacenamiento S3 Express One Zone no es compatible MD5 checksums.

Spark configuraciones

Parámetro Valor predeterminado Valor sugerido Explicación

spark.sql.sources.fastS3PartitionDiscovery.enabled

true

false

La optimización interna utiliza un API parámetro S3 que la clase de almacenamiento S3 Express One Zone no admite.

Consideraciones

Tenga en cuenta lo siguiente al integrar Apache Spark en Amazon EMR con la clase de almacenamiento S3 Express One Zone:

  • Se requiere el conector S3A para utilizar S3 Express One Zone con AmazonEMR. Solo S3A tiene las características y las clases de almacenamiento necesarias para interactuar con S3 Express One Zone. Para ver los pasos para configurar el conector, consulte Requisitos previos.

  • La clase de almacenamiento Amazon S3 Express One Zone solo es compatible con Spark en un EMR clúster de Amazon que se ejecute en AmazonEC2.

  • La clase de almacenamiento Amazon S3 Express One Zone solo admite SSE-S3 cifrado. Para obtener más información, consulte Cifrado del lado del servidor con claves administradas de Amazon S3 (SSE-S3).

  • La clase de almacenamiento Amazon S3 Express One Zone no es compatible con la escritura con el FileOutputCommitter de S3A. Si se escribe con el S3A FileOutputCommitter en los buckets de S3 Express One Zone, se produce un error: InvalidStorageClass: The storage class you specified is not valid.

  • Amazon S3 Express One Zone es compatible con las EMR versiones 6.15.0 y posteriores de Amazon. EMR EC2 Además, es compatible con las EMR versiones 7.2.0 y posteriores de Amazon EKS y EMR Amazon EMR Serverless.