Trabajar con sistemas de almacenamiento y archivos con Amazon EMR - 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.

Trabajar con sistemas de almacenamiento y archivos con Amazon EMR

Amazon EMR y Hadoop proporcionan una variedad de sistemas de archivos que puede utilizar al procesar los pasos del clúster. El sistema de archivos que se va a utilizar se especifica mediante el prefijo del URI utilizado para acceder a los datos. Por ejemplo, s3://amzn-s3-demo-bucket1/path hace referencia a un bucket de Amazon S3 medianteEMRFS. En la siguiente tabla se muestran los sistemas de archivos disponibles, con recomendaciones sobre la hora que es mejor utilizar cada una de ellas.

Amazon EMR y Hadoop suelen utilizar dos o más de los siguientes sistemas de archivos al procesar un clúster. HDFSy EMRFS son los dos principales sistemas de archivos que se utilizan con AmazonEMR.

importante

A partir de la EMR versión 5.22.0 de Amazon, Amazon EMR utiliza AWS Signature Version 4 exclusivamente para autenticar las solicitudes a Amazon S3. EMRLas versiones anteriores de Amazon utilizan AWS Signature Version 2 en algunos casos, a menos que las notas de la versión indiquen que se utiliza exclusivamente Signature Version 4. Para obtener más información, consulte Autenticación de solicitudes (versión de AWS firma 4) y Autenticación de solicitudes (versión de AWS firma 2) en la Guía para desarrolladores de Amazon Simple Storage Service.

Sistema de archivos Prefix Descripción
HDFS hdfs:// (o sin prefijo)

HDFSes un sistema de archivos distribuido, escalable y portátil para Hadoop. Una ventaja HDFS es el conocimiento de los datos entre los nodos del clúster de Hadoop que administran los clústeres y los nodos del clúster de Hadoop que administran los pasos individuales. Para obtener más información, consulte la documentación de Hadoop.

HDFSlo utilizan los nodos principal y principal. Una ventaja es que es rápido; una desventaja es que se trata de almacenamiento efímero que se reclama cuando el clúster finaliza. Es mejor utilizarlo para almacenar en caché los resultados producidos por pasos de flujos de trabajo intermedios.

EMRFS s3://

EMRFSes una implementación del sistema de archivos Hadoop que se utiliza para leer y escribir archivos normales de Amazon EMR directamente en Amazon S3. EMRFSproporciona la comodidad de almacenar datos persistentes en Amazon S3 para utilizarlos con Hadoop y, al mismo tiempo, proporciona funciones como el cifrado del lado del servidor de Amazon S3, la coherencia y la read-after-write coherencia de las listas.

nota

Anteriormente, Amazon EMR utilizaba los sistemas de s3a archivos s3n y. Si bien ambos siguen funcionando, le recomendamos que utilice el s3 URI esquema para obtener el mejor rendimiento, seguridad y confiabilidad.

sistema de archivos local

El sistema de archivos local se refiere a un disco conectado a nivel local. Cuando se crea un clúster de Hadoop, cada nodo se crea a partir de una EC2 instancia que incluye un bloque preconfigurado de almacenamiento en disco preconectado denominado almacén de instancias. Los datos de los volúmenes del almacén de instancias solo se conservan durante la vida útil de la instancia. EC2 Los volúmenes de almacén de instancias son ideales para el almacenamiento temporal de datos que cambian constantemente, como los búferes, las cachés, los datos de pruebas y otro contenido temporal. Para obtener más información, consulta Amazon EC2 instance Storage.

El sistema de archivos local lo utilizaHDFS, pero Python también se ejecuta desde el sistema de archivos local y puede optar por almacenar archivos de aplicaciones adicionales en volúmenes de almacenes de instancias.

Sistema de archivos de bloques de Amazon S3 (heredado) s3bfs://

El sistema de archivos de bloque de Amazon S3 es un sistema de almacenamiento de archivos heredado. Recomendamos encarecidamente evitar el uso de este sistema.

importante

Le recomendamos que no use este sistema de archivos, ya que puede activar una condición de carrera que podrían provocar un error del clúster. Sin embargo, es posible que aplicaciones heredadas lo requieran.

Acceso a sistemas de archivo

El sistema de archivos que se va a utilizar se especifica con el prefijo del identificador uniforme de recursos (URI) que se utiliza para acceder a los datos. Los siguientes procedimientos ilustran cómo hacer referencia a diferentes tipos de sistemas de archivos.

Para acceder a un local HDFS
  • Especifique el hdfs:/// prefijo en. URI Amazon EMR resuelve las rutas que no especifican un prefijo en URI el localHDFS. Por ejemplo, las dos opciones siguientes se URIs resolverían en la misma ubicación enHDFS.

    hdfs:///path-to-data /path-to-data
Para acceder a un control remoto HDFS
  • Incluya la dirección IP del nodo principal en elURI, como se muestra en los siguientes ejemplos.

    hdfs://master-ip-address/path-to-data master-ip-address/path-to-data
Para acceder a Amazon S3
  • Utilice el prefijo s3://.

    s3://bucket-name/path-to-file-in-bucket
Para acceder al sistema de archivos de bloques de Amazon S3
  • Se utiliza únicamente por las aplicaciones heredadas que requieren el sistema de archivos de bloques de Amazon S3. Para acceder a los datos o almacenarlos con este sistema de archivos, utilice el s3bfs:// prefijo de. URI

    El sistema de archivos de bloques de Amazon S3 es un sistema de archivos heredado que se utilizaba para soportar cargas de más de 5 GB en Amazon S3. Con la funcionalidad de carga multiparte que Amazon EMR proporciona a través de AWS JavaSDK, puede cargar archivos de hasta 5 TB de tamaño al sistema de archivos nativo de Amazon S3, y el sistema de archivos de bloques de Amazon S3 está obsoleto.

    aviso

    Como este sistema de archivos heredado puede crear condiciones de carrera que pueden dañar el sistema de archivos, deberías evitar este formato y utilizarlo EMRFS en su lugar.

    s3bfs://bucket-name/path-to-file-in-bucket