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 más información sobre el uso de Amazon S3 con Hadoop, consulte http://wiki.apache.org/hadoop/AmazonS3
Temas
Creación y configuración de un bucket de Amazon S3
Amazon EMR utiliza AWS SDK for Java con Amazon S3 para almacenar datos de entrada y de salida, y archivos de registro. 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 la AWS Management Console de Amazon S3 para crear y después definir 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:
Para crear un bucket mediante la consola, consulte Crear un bucket en la Guía del usuario de Amazon S3.
Para crear y trabajar con buckets mediante la AWS CLI, consulte Uso de comandos de S3 de alto nivel con la AWS Command Line Interface en la Guía del usuario de Amazon S3.
Para crear un bucket mediante un SDK, consulte Ejemplos de creación de un bucket en la Guía del usuario de Amazon Simple Storage Service.
Para trabajar con buckets mediante curl, consulte Herramienta de autenticación de Amazon S3 para curl
. Para más información acerca de la especificación de buckets específicos de una región, consulte Acceso a un bucket en la Guía del usuario de Amazon Simple Storage Service.
Para trabajar con buckets mediante Puntos de acceso de Amazon S3, consulte Uso de un alias de estilo de bucket para su punto de acceso en la Guía del usuario de Amazon S3. Puede utilizar fácilmente Puntos de acceso de Amazon S3 con el alias del punto de acceso de Amazon S3 en lugar del nombre del bucket de Amazon S3. Puede utilizar el alias del punto de acceso Amazon S3 para aplicaciones nuevas y existentes, incluidas Spark, Hive y Presto, entre otras.
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 SDK de AWS para 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 Configurar 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 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 |
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
nota
Hemos rediseñado la consola de Amazon EMR para que sea más fácil de utilizar. Consulte Novedades de la consola para obtener información sobre las diferencias entre la consola antigua y la nueva.
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 de EMR utilizan cargas multiparte a través del SDK de AWS para Java con las API de Amazon S3 para escribir los archivos de registro y los datos de salida en 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
enTRUE
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ámetroDaysAfterIntitiation
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.