Descargar datos en Amazon S3 - 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.

Descargar datos en Amazon S3

Para obtener información sobre cómo cargar objetos en Amazon S3, consulte Agregar un objeto a un bucket en la Guía del usuario de Amazon Simple Storage Service. Para obtener más información sobre el uso de Amazon S3 con Hadoop, consulte http://wiki.apache. org/hadoop/AmazonS3.

Creación y configuración de un bucket de Amazon S3

Amazon EMR lo utiliza AWS SDK para Java con Amazon S3 para almacenar datos de entrada, archivos de registro y datos de salida. Amazon S3 denomina estas ubicaciones de almacenamiento buckets. Los buckets tienen ciertas restricciones y limitaciones para cumplir con los requisitos de Amazon S3 y DNS. Para obtener más información, consulte Restricciones y limitaciones de los buckets en la Guía del usuario de Amazon Simple Storage Service.

En esta sección, se muestra cómo utilizar Amazon S3 AWS Management Console para crear y, a continuación, establecer los permisos para un bucket de Amazon S3. También puede crear y establecer permisos para un bucket de Amazon S3 con la API o la AWS CLI de Amazon S3. También puede utilizar curl junto con una modificación para pasar los parámetros de autenticación correspondientes a Amazon S3.

Consulte los siguientes recursos:

nota

Si habilita el registro para un bucket, se habilitan únicamente los registros de acceso al bucket, no los registros del clúster de Amazon EMR.

Durante la creación de un bucket o posteriormente, puede definir los permisos adecuados para tener acceso a él, en función de su aplicación. Lo habitual es que se conceda a sí mismo (el propietario) acceso de lectura y de escritura, así como acceso de lectura a los usuarios autenticados.

Los buckets de Amazon S3 necesarios deben existir para poder crear un clúster. Debe cargar en Amazon S3 todos los scripts o datos necesarios a los que se hace referencia en el clúster. En la siguiente tabla se describen ubicaciones de ejemplo de datos, scripts y archivos de registro.

Configurar cargas multiparte para Amazon S3

Amazon EMR admite la carga multiparte de Amazon S3 a través del AWS SDK for Java. La carga multiparte permite cargar un solo objeto como un conjunto de partes. Puede cargar estas partes del objeto de forma independiente y en cualquier orden. Si la transmisión de cualquier parte falla, puede retransmitir esta parte sin que las demás partes se vean afectadas. Después de cargar todas las partes del objeto, Amazon S3 las combina y crea el objeto.

Para obtener más información, consulte la sección Información general sobre la carga multiparte en la Guía de del usuario de Amazon Simple Storage Service.

Además, Amazon EMR ofrece propiedades que le permiten controlar de manera más precisa la limpieza de partes de carga multiparte con errores.

En la siguiente tabla, se describen las propiedades de configuración de Amazon EMR para la carga multiparte. Puede configurarlas utilizando la clasificación de configuración core-site. Para más información, consulte Configuración de aplicaciones en la Guía de versiones de Amazon EMR.

Nombre de parámetro de configuración Valor predeterminado Descripción
fs.s3n.multipart.uploads.enabled true Un tipo booleano que indica si se debe habilitar las cargas multiparte. Cuando la vista consistente de EMRFS se ha habilitado, las cargas multiparte se habilitan de forma predeterminada y si se configura este valor en false, no se tiene en cuenta.
fs.s3n.multipart.uploads.split.size 134217728

Especifica el tamaño máximo de una parte, en bytes, para que EMRFS inicie la carga de una parte nueva cuando las cargas multiparte están habilitadas. El valor mínimo es 5242880 (5 MB). Si se especifica un valor menor, se utiliza 5242880. El valor máximo es 5368709120 (5 GB). Si se especifica un valor mayor, se utiliza 5368709120.

Si se ha desactivado el cifrado del cliente de EMRFS y el confirmador optimizado de Amazon S3 también se ha desactivado, este valor también controla el tamaño máximo que puede alcanzar un archivo de datos para que EMRFS utilice cargas multiparte en lugar de una solicitud PutObject para cargar el archivo. Para obtener más información, consulte

fs.s3n.ssl.enabled true Un tipo booleano que indica si se debe utilizar http o https.
fs.s3.buckets.create.enabled false Un tipo booleano que indica si se debe crear un bucket en caso de que no exista. Si se establece en false, se provocará una excepción en las operaciones CreateBucket.
fs.s3.multipart.clean.enabled false Un tipo booleano que indica si se debe habilitar la limpieza periódica en segundo plano de las cargas multiparte incompletas.
fs.s3.multipart.clean.age.threshold 604800 Un tipo long que especifica la edad mínima de una carga multiparte, en segundos, antes de que se la incluya en la limpieza. El valor predeterminado es una semana.
fs.s3.multipart.clean.jitter.max 10000 Un tipo entero que especifica la cantidad máxima de retraso de fluctuación aleatorio, en segundos, que se agrega al retraso fijo de 15 minutos antes de programar la próxima ronda de limpieza.

Desactivar cargas multiparte

Console
Para deshabilitar las cargas multiparte con la consola
  1. Inicie sesión en y abra la AWS Management Console consola de Amazon EMR en https://console.aws.amazon.com /emr.

  2. En EMR activado, EC2 en el panel de navegación izquierdo, elija Clústeres y, a continuación, elija Crear clúster.

  3. En Configuración de software, introduzca la configuración siguiente: classification=core-site,properties=[fs.s3n.multipart.uploads.enabled=false].

  4. Elija cualquier otra opción que se aplique a su clúster.

  5. Para lanzar el clúster, elija Crear clúster.

CLI
Para deshabilitar la carga multiparte mediante el AWS CLI

Este procedimiento explica cómo deshabilitar la carga multiparte utilizando la AWS CLI. Para deshabilitar la carga multiparte, escriba el comando create-cluster con el parámetro --bootstrap-actions.

  1. Cree un archivo myConfig.json con el siguiente contenido y guárdelo en el mismo directorio en el que va a ejecutar el comando:

    [ { "Classification": "core-site", "Properties": { "fs.s3n.multipart.uploads.enabled": "false" } } ]
  2. Escriba el siguiente comando y myKey sustitúyalo por el nombre de su EC2 key pair.

    nota

    Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

    aws emr create-cluster --name "Test cluster" \ --release-label emr-7.9.0 --applications Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --configurations file://myConfig.json
API
Para desactivar la carga multiparte mediante la API

Prácticas recomendadas

A continuación se indican las recomendaciones para utilizar buckets de Amazon S3 con clústeres de EMR.

Habilitación del control de versiones

El control de versiones es una configuración recomendada para su bucket de Amazon S3. Al habilitar el control de versiones, se asegura de que incluso si se eliminan o se sobrescriben involuntariamente los datos, se puedan recuperar. Para más información, consulte Uso del control de versiones en la Guía del usuario de Amazon Simple Storage Service.

Limpiar las cargas multiparte con errores

Los componentes del clúster EMR utilizan cargas multiparte a través del AWS SDK para Java con Amazon S3 para escribir archivos de registro y enviar datos APIs a Amazon S3 de forma predeterminada. Para más información sobre cómo utilizar Amazon EMR para cambiar las propiedades relacionadas con esta configuración, consulte Configurar cargas multiparte para Amazon S3. En ocasiones, la carga de un archivo de gran tamaño puede dar lugar a una carga multiparte de Amazon S3 incompleta. Cuando una carga multiparte no se puede completar de forma satisfactoria, la carga multiparte en curso sigue ocupando su bucket e incurre en costos de almacenamiento. Le recomendamos las siguientes opciones para evitar un almacenamiento de archivos excesivo:

  • En el caso de los buckets que utilice con Amazon EMR, utilice una regla de configuración del ciclo de vida en Amazon S3 que elimine las cargas multiparte incompletas tres días después de la fecha de inicio de la carga. Las reglas de configuración del ciclo de vida le permiten controlar la clase de almacenamiento y el ciclo de vida de los objetos. Para más información, consulte Administración del ciclo de vida de los objetos y Anulación de cargas multiparte incompletas con la política de ciclo de vida de buckets.

  • Habilite la característica de limpieza de cargas multiparte de Amazon EMR estableciendo fs.s3.multipart.clean.enabled en true y ajustando otros parámetros de limpieza. Esta característica es útil con volúmenes altos y a gran escala, así como con clústeres que tienen un tiempo de actividad limitado. En este caso, el parámetro DaysAfterIntitiation de una regla de configuración de ciclo de vida puede ser demasiado largo, incluso si se establece en su valor mínimo, provocando picos en el almacenamiento de Amazon S3. La limpieza multiparte de Amazon EMR permite un control más preciso. Para obtener más información, consulte Configurar cargas multiparte para Amazon S3.

Administrar los marcadores de versiones

Se recomienda habilitar una regla de configuración de ciclo de vida en Amazon S3 para eliminar los marcadores de eliminación de objetos vencidos de los buckets con control de versiones que utilice con Amazon EMR. Al eliminar un objeto de un bucket con control de versiones, se crea un marcador de eliminación. Si todas las versiones anteriores del objeto caducan posteriormente, queda un marcador de eliminación de objeto caducado en el bucket. Aunque no se aplican cargos por los marcadores de eliminación, si borra los marcadores caducados puede mejorar el rendimiento de las solicitudes de LIST. Para más información, consulte Configuración del ciclo de vida de un bucket con el control de versiones en la Guía del usuario de Amazon Simple Storage Service.

Prácticas recomendadas de rendimiento

En función de las cargas de trabajo, los tipos específicos de uso de clústeres de EMR y las aplicaciones en dichos clústeres pueden dar lugar a un número elevado de solicitudes en su bucket. Para más información, consulte Consideraciones sobre la tasa de solicitudes y el rendimiento en la Guía del usuario de Amazon Simple Storage Service.