

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 con DistCp AWS PrivateLink para Amazon S3
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3"></a>

*Jason Owens, Andrés Cantor, Jeff Klopfenstein, Bruno Rocha Oliveira y Samuel Schmidt, Amazon Web Services*

## Resumen
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-summary"></a>

Este patrón demuestra cómo migrar prácticamente cualquier cantidad de datos desde un entorno Apache Hadoop local a la nube de Amazon Web Services (AWS) mediante la herramienta de código abierto Apache con [DistCp](https://hadoop.apache.org/docs/r1.2.1/distcp.html)AWS for 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 [AWS PrivateLink para Amazon S3 para](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) 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 (Amazon VPC). Si usa entradas de DNS en Amazon Route 53 o añade entradas en el archivo **/etc/hosts** en todos los nodos del clúster de Hadoop en las instalaciones, se le redirigirá automáticamente al punto de conexión de interfaz correcto.

Esta guía proporciona instrucciones de uso DistCp para migrar datos a la nube de AWS. DistCp es la herramienta más utilizada, pero hay otras herramientas de migración disponibles. [Por ejemplo, puede usar herramientas de AWS sin conexión, como [AWS Snowball o AWS Snowmobile](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/aws-snow-family.html#aws-snowball)[, o herramientas de AWS](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/aws-snow-family.html#aws-snowmobile) en línea, como AWS Storage [Gateway o AWS](https://docs.aws.amazon.com/storagegateway/latest/userguide/migrate-data.html). DataSync](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-datasync-hadoop-aws-storage-services/) [Además, puede utilizar otras herramientas de código abierto, como Apache. NiFi](https://nifi.apache.org/)

## Requisitos previos y limitaciones
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa con una conexión de red privada entre el centro de datos en las instalaciones y la nube de AWS
+ [Hadoop](https://hadoop.apache.org/releases.html), instalado in situ con [DistCp](https://hadoop.apache.org/docs/r1.2.1/distcp.html)
+ Un usuario de Hadoop con acceso a los datos de migración en el sistema de archivos distribuido de Hadoop (HDFS)
+ Interfaz de la línea de comandos de AWS (AWS CLI) [instalada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [Permisos](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket-console.html) para colocar objetos en un bucket de S3

**Limitaciones**

Las limitaciones de la nube privada virtual (VPC) se aplican a AWS PrivateLink para Amazon S3. Para obtener más información, consulte las [propiedades y limitaciones de los puntos de conexión de la interfaz](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) y [ PrivateLink las cuotas](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) de AWS ( PrivateLink documentación de AWS).

AWS PrivateLink para Amazon S3 no admite lo siguiente:
+ [Puntos de conexión del estándar federal de procesamiento de información (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Puntos de conexión del sitio web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html)
+ [Puntos de enlace global heredado](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint)

## Arquitectura
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-architecture"></a>

**Pila de tecnología de origen**
+ Clúster de 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.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/8d2b47ae-e854-4e5d-8f19-b9c2606f2c59/images/b8a249bd-307b-41ec-b939-5039d0ae7123.png)


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 AWS Direct Connect, a Amazon S3 a través de un punto de enlace de la interfaz Amazon S3.

## Tools (Herramientas)
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-tools"></a>

**Servicios de AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 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 (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le permite lanzar recursos de AWS en una red virtual que haya definido. Esta red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.

**Otras herramientas**
+ [Apache Hadoop DistCp](https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html) (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.

## Epics
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-epics"></a>

### Migración de datos a la nube de AWS
<a name="migrate-data-to-the-aws-cloud"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un punto de conexión para AWS PrivateLink para Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | Administrador de AWS | 
| Compruebe los puntos de conexión y busque las entradas de DNS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | Administrador de AWS | 
| 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:<pre>$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443<br /><br />Trying 10.104.88.6...<br /><br />Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.<br /><br />...<br /><br />$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443<br /><br />Trying 10.104.71.141...<br /><br />Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.</pre>Si usa la entrada regional, una prueba correcta mostrará que el DNS alterna entre las dos direcciones IP que puede ver en la pestaña **Subredes** del punto de conexión seleccionado en la consola de Amazon VPC. | Administrador de red, administrador de AWS | 
| 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](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Introducing_the_Hadoop_S3A_client.) (sitio web de Hadoop).Elija una de las siguientes opciones de configuración:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | Administrador de AWS | 
| 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](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Authenticating_with_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](https://hadoop.apache.org/docs/r3.1.1/hadoop-aws/tools/hadoop-aws/index.html#hadoop_credential_providers) (sitio web de Hadoop). Para obtener más información sobre otros métodos de autenticación, consulte [Cómo obtener credenciales de un rol de IAM para su uso con acceso de CLI a una cuenta de AWS](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) en la documentación de AWS IAM Identity Center (sucesor de AWS Single 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:<pre>export AWS_SESSION_TOKEN=SECRET-SESSION-TOKEN<br />export AWS_ACCESS_KEY_ID=SESSION-ACCESS-KEY<br />export AWS_SECRET_ACCESS_KEY=SESSION-SECRET-KEY</pre>Si tiene una combinación de clave de acceso y clave secreta tradicional, ejecute los siguientes comandos:<pre>export AWS_ACCESS_KEY_ID=my.aws.key<br />export AWS_SECRET_ACCESS_KEY=my.secret.key</pre>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"` | Administrador de AWS | 
| Transfiera datos mediante DistCp. | Para usarlo DistCp para transferir datos, ejecute los siguientes comandos:<pre>hadoop distcp -Dfs.s3a.aws.credentials.provider=\<br />"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \<br />-Dfs.s3a.access.key="${AWS_ACCESS_KEY_ID}" \<br />-Dfs.s3a.secret.key="${AWS_SECRET_ACCESS_KEY}" \<br />-Dfs.s3a.session.token="${AWS_SESSION_TOKEN}" \<br />-Dfs.s3a.path.style.access=true \<br />-Dfs.s3a.connection.ssl.enabled=true \<br />-Dfs.s3a.endpoint=s3.<your-aws-region>.amazonaws.com \<br />hdfs:///user/root/ s3a://<your-bucket-name></pre>La región de AWS del punto de conexión no se detecta automáticamente cuando se utiliza el DistCp comando con AWS PrivateLink para Amazon S3. Hadoop 3.3.2 y las versiones posteriores resuelven este problema habilitando la opción de establecer de forma explícita la región de AWS del bucket de S3. Para obtener más información, consulte [S3A para añadir la opción fs.s3a.endpoint.region y establecer la región de AWS](https://issues.apache.org/jira/browse/HADOOP-17705) (sitio web de Hadoop).Para obtener más información sobre otros proveedores de S3A, consulte [Configuración general de cliente S3A](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#General_S3A_Client_configuration) (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:<pre>-Dfs.s3a.server-side-encryption-algorithm=AES-256 [or SSE-C or SSE-KMS]</pre>Para usar el punto de conexión de la interfaz con S3A, debe crear una entrada de alias de DNS para el nombre regional de S3 (por ejemplo, `s3.<your-aws-region>.amazonaws.com`) en el punto de conexión de la interfaz. 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):<pre>-Dmapreduce.map.java.opts="-Dcom.amazonaws.services.s3.enableV4=true"</pre> | Ingeniero de migraciones; administrador de AWS | 