Migre datos de un entorno Hadoop local a Amazon S3 DistCp mediante AWS PrivateLink Amazon S3 - Recomendaciones de AWS

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.

Migre datos de un entorno Hadoop local a Amazon S3 DistCp mediante AWS PrivateLink Amazon S3

Creado por Jason Owens (AWS), Andres Cantor (), Jeff Klopfenstein (AWS), Bruno Rocha Oliveira (AWS) y Samuel Schmidt () AWS AWS

Entorno: producción

Origen: Hadoop

Destino: cualquiera

Tipo R: redefinir la plataforma

Carga de trabajo: código abierto

Tecnologías: almacenamiento y copia de seguridad; análisis

AWSservicios: Amazon S3; Amazon EMR

Este patrón demuestra cómo migrar prácticamente cualquier cantidad de datos de un entorno Apache Hadoop local a la nube de Amazon Web Services (AWS) mediante la herramienta de código abierto Apache DistCppara AWS PrivateLink Amazon Simple Storage Service (Amazon S3). En lugar de utilizar la Internet pública o una solución proxy para migrar los datos, puede utilizar Amazon S3 AWS PrivateLink para migrar los datos a Amazon S3 a través de una conexión de red privada entre su centro de datos local y una Amazon Virtual Private Cloud (AmazonVPC). Si utiliza DNS entradas en Amazon Route 53 o añade entradas en el archivo /etc/hosts en todos los nodos del clúster de Hadoop local, se le redirigirá automáticamente al punto de enlace de la interfaz correcto.

Esta guía proporciona instrucciones de uso para migrar datos a la DistCp nube. AWS DistCp es la herramienta más utilizada, pero hay otras herramientas de migración disponibles. Por ejemplo, puede usar AWS herramientas sin conexión como AWSSnowball o AWSSnowmobile, o herramientas en línea como AWS Storage Gateway AWS o. AWS DataSync Además, puedes usar otras herramientas de código abierto como Apache. NiFi

Requisitos previos 

Limitaciones

Se aplican limitaciones a la nube privada virtual (VPC) AWS PrivateLink para Amazon S3. Para obtener más información, consulte las propiedades, limitaciones y AWS PrivateLink cuotas de los puntos de conexión de la interfaz (AWS PrivateLink documentación).

AWS PrivateLink para Amazon S3 no admite lo siguiente:

Pila de tecnología de origen

  • Clúster Hadoop con instalado DistCp

Pila de tecnología de destino

  • Amazon S3

  • Amazon VPC

Arquitectura de destino

Clúster de Hadoop que DistCp copia datos del entorno local a través de Direct Connect a S3.

El diagrama muestra cómo el administrador de Hadoop copia datos desde un entorno local DistCp a través de una conexión de red privada, como Direct AWS Connect, a Amazon S3 a través de un punto de enlace de la interfaz Amazon S3.

AWSservicios

  • AWSIdentity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • Amazon Virtual Private Cloud (AmazonVPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esta red virtual se parece a una red tradicional que utilizaría en su propio centro de datos, con las ventajas de utilizar la infraestructura escalable que ofreceAWS.

Otras herramientas

  • Apache Hadoop DistCp (copia distribuida) es una herramienta que se utiliza para copiar grandes clústeres e intracústeres. DistCp utiliza Apache MapReduce para la distribución, la gestión y recuperación de errores y la elaboración de informes.

TareaDescripciónHabilidades requeridas

Cree un punto de conexión AWS PrivateLink para Amazon S3.

  1. Inicie sesión en la consola AWS de administración y abra la VPCconsola de Amazon.

  2. En el panel de navegación, elija Endpoints (puntos de conexión) y, a continuación, elija Create Endpoint (Crear punto de enlace).

  3. En Service category (Categoría de servicios), elija AWSServices (Servicios de AWC).

  4. En el campo de búsqueda, escriba s3 y, a continuación, pulse Intro.

  5. En los resultados de búsqueda, selecciona com.amazonaws. Nombre del servicio < your-aws-region >.s3 donde el valor de la columna Tipo es Interfaz.

  6. Para VPC, elige tu. VPC En Subredes, elija sus subredes.

  7. En Grupo de seguridad, elija o cree un grupo de seguridad que permita TCP 443.

  8. Añada etiquetas en función de sus necesidades y, a continuación, seleccione Crear punto de conexión.

AWSadministrador

Compruebe los puntos finales y busque las DNS entradas.

  1. Abra la VPCconsola de Amazon, elija Endpoints y, a continuación, seleccione el punto de conexión que creó anteriormente.

  2. En la pestaña Detalles, busca la primera DNS entrada de DNSlos nombres. Esta es la DNS entrada regional. Al usar este DNS nombre, las solicitudes alternan entre DNS entradas específicas de las zonas de disponibilidad.

  3. Seleccione la pestaña Subredes. Puede encontrar la dirección de la interfaz de red elástica del punto de conexión en cada zona de disponibilidad.

AWSadministrador

Compruebe las reglas del firewall y las configuraciones de enrutamiento.

Para confirmar que las reglas del firewall están abiertas y que la red está configurada correctamente, use Telnet para probar el punto de conexión en el puerto 443. Por ejemplo:

$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443 Trying 10.104.88.6... Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com. ... $ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443 Trying 10.104.71.141... Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.

Nota: Si utilizas la entrada regional, una prueba satisfactoria mostrará que DNS se alterna entre las dos direcciones IP que puedes ver en la pestaña Subredes del punto de conexión seleccionado en la VPC consola de Amazon.

Administrador de red, AWS administrador

Configure la resolución de nombres.

Debe configurar la resolución de nombres para permitir que Hadoop acceda al punto de conexión de la interfaz Amazon S3. No puede usar el nombre del punto de conexión como tal. En su lugar, debe resolver <your-bucket-name>.s3.<your-aws-region>.amazonaws.com o *.s3.<your-aws-region>.amazonaws.com. Para obtener más información sobre esta limitación de nombres, consulte Presentación del cliente Hadoop S3A (sitio web de Hadoop).

Elija una de las siguientes opciones de configuración:

  • Úselo de forma local DNS para resolver la dirección IP privada del punto final. Puede anular el comportamiento de todos los buckets o de algunos de ellos. Para obtener más información, consulte «Opción 2: acceder a Amazon S3 mediante zonas de política de respuesta del sistema de nombres de dominio (DNSRPZ)» en Acceso híbrido seguro a Amazon S3 mediante AWS PrivateLink (entrada del AWS blog).

  • Configure la configuración local DNS para reenviar el tráfico de forma condicional a los puntos finales de entrada de la resolución en. VPC El tráfico se reenvía a Route 53. Para obtener más información, consulte la sección «Opción 3: reenviar DNS solicitudes desde locales mediante los puntos de enlace entrantes de Amazon Route 53 Resolver» en Acceso híbrido seguro a Amazon S3 mediante AWS PrivateLink (AWSentrada del blog).

  • Edite el archivo /etc/hosts en todos los nodos de su clúster de Hadoop. Esta es una solución temporal para realizar pruebas, y no se recomienda su uso en producción. Para editar el archivo /etc/hosts, añada una entrada para <your-bucket-name>.s3.<your-aws-region>.amazonaws.com o s3.<your-aws-region>.amazonaws.com. El archivo /etc/hosts no puede tener varias direcciones IP para una entrada. Debe elegir una única dirección IP de una de las zonas de disponibilidad, que luego se convertirá en un único punto de error.

AWSadministrador

Configure la autenticación para Amazon S3.

Para autenticarse en Amazon S3 a través de Hadoop, le recomendamos que exporte las credenciales de rol temporales al entorno de Hadoop. Para obtener más información, consulte Autenticación con S3 (sitio web de Hadoop). En trabajos de larga duración, puede crear un usuario y asignar una política con permisos para colocar datos únicamente en un bucket de S3. La clave de acceso y la clave secreta se pueden almacenar en Hadoop, y solo pueden acceder a ellas el propio DistCp trabajo y el administrador de Hadoop. Para obtener más información sobre el almacenamiento de secretos, consulte Almacenamiento de secretos con los proveedores de credenciales de Hadoop (sitio web de Hadoop). Para obtener más información sobre otros métodos de autenticación, consulte Cómo obtener las credenciales de un IAM rol para utilizarlas con el CLI acceso a una AWS cuenta en la documentación de AWS IAM Identity Center (sucesora de Single AWS Sign-On).

Para usar credenciales temporales, añada las credenciales temporales a su archivo de credenciales o ejecute los siguientes comandos para exportar las credenciales a su entorno:

export AWS_SESSION_TOKEN=SECRET-SESSION-TOKEN export AWS_ACCESS_KEY_ID=SESSION-ACCESS-KEY export AWS_SECRET_ACCESS_KEY=SESSION-SECRET-KEY

Si tiene una combinación de clave de acceso y clave secreta tradicional, ejecute los siguientes comandos:

export AWS_ACCESS_KEY_ID=my.aws.key export AWS_SECRET_ACCESS_KEY=my.secret.key

Nota: Si utiliza una combinación de clave de acceso y clave secreta, cambie el proveedor de credenciales en los DistCp comandos de a"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider". "org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider"

AWSadministrador

Transfiera datos mediante DistCp.

Para usarlo DistCp para transferir datos, ejecute los siguientes comandos:

hadoop distcp -Dfs.s3a.aws.credentials.provider=\ "org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \ -Dfs.s3a.access.key="${AWS_ACCESS_KEY_ID}" \ -Dfs.s3a.secret.key="${AWS_SECRET_ACCESS_KEY}" \ -Dfs.s3a.session.token="${AWS_SESSION_TOKEN}" \ -Dfs.s3a.path.style.access=true \ -Dfs.s3a.connection.ssl.enabled=true \ -Dfs.s3a.endpoint=s3.<your-aws-region>.amazonaws.com \ hdfs:///user/root/ s3a://<your-bucket-name>

Nota: La AWS región del punto de conexión no se descubre automáticamente cuando se utiliza el DistCp comando con AWS PrivateLink Amazon S3. Hadoop 3.3.2 y las versiones posteriores resuelven este problema al habilitar la opción de establecer de forma explícita la AWS región del bucket de S3. Para obtener más información, consulte la sección S3A para añadir la opción fs.s3a.endpoint.region para establecer la región (sitio web de Hadoop). AWS

Para obtener más información sobre otros proveedores de S3A, consulte Configuración general de cliente S3A (sitio web de Hadoop). Por ejemplo, si usa el cifrado, puede añadir la siguiente opción a la serie de comandos anteriores en función del tipo de cifrado:

-Dfs.s3a.server-side-encryption-algorithm=AES-256 [or SSE-C or SSE-KMS]

Nota: Para usar el punto final de la interfaz con el S3A, debe crear una entrada de DNS alias para el nombre regional del S3 (por ejemplo) en el punto final de la interfaz. s3.<your-aws-region>.amazonaws.com Consulte la sección Configurar autenticación para Amazon S3 para obtener más instrucciones. Esta solución alternativa es necesaria para Hadoop 3.3.2 y versiones anteriores. Las versiones futuras de S3A no requieren de esta solución alternativa.

Si tiene problemas de firma con Amazon S3, añada una opción para usar Signature Version 4 (SigV4):

-Dmapreduce.map.java.opts="-Dcom.amazonaws.services.s3.enableV4=true"
Ingeniero de migración, administrador AWS