Opciones de la arquitectura de Amazon EMR sin servidor - Amazon EMR

Opciones de la arquitectura de Amazon EMR sin servidor

La arquitectura del conjunto de instrucciones de la aplicación de Amazon EMR sin servidor determina el tipo de procesadores que la aplicación utiliza para ejecutar el trabajo. Amazon EMR ofrece dos opciones de arquitectura para su aplicación: x86_64 y arm64. EMR sin servidor se actualiza automáticamente a la última generación de instancias a medida que están disponibles, por lo que sus aplicaciones pueden usar las instancias más nuevas sin un esfuerzo adicional por su parte.

Uso de la arquitectura X86_64

La arquitectura x86_64 también se conoce como x86 de 64 bits o x64. x86_64 es la opción predeterminada para las aplicaciones EMR sin servidor. Esta arquitectura utiliza procesadores basados en x86 y es compatible con la mayoría de las herramientas y bibliotecas de terceros.

La mayoría de las aplicaciones son compatibles con la plataforma de hardware x86 y pueden ejecutarse correctamente en la arquitectura x86_64 predeterminada. Sin embargo, si su aplicación es compatible con ARM de 64 bits, puede cambiarse a arm64 para utilizar los procesadores Graviton y así mejorar el rendimiento, la potencia de cálculo y la memoria. Ejecutar instancias en una arquitectura arm64 cuesta menos que ejecutar instancias del mismo tamaño en una arquitectura x86.

Uso de la arquitectura arm64 (Graviton)

Los procesadores Graviton de AWS están diseñados a medida por AWS con núcleos ARM Neoverse de 64 bits y aprovechan la arquitectura arm64 (también conocida como Arch64 o ARM de 64 bits). La línea de procesadores Graviton de AWS disponible en EMR sin servidor incluye los procesadores Graviton3 y Graviton2. Estos procesadores ofrecen una relación precio-rendimiento superior para las cargas de trabajo Spark y Hive en comparación con las cargas de trabajo equivalentes que se ejecutan en la arquitectura x86_64. EMR sin servidor utiliza automáticamente la última generación de procesadores cuando está disponible y no tendrá que implementar nada para actualizarse a la última generación de procesadores.

Lanzamiento de nuevas aplicaciones compatibles con Graviton

Utilice uno de los métodos siguientes para iniciar una aplicación que utilice la arquitectura arm64.

AWS CLI

Para lanzar una aplicación con procesadores Graviton desde AWS CLI, especifíque ARM64 como el parámetro architecture en la API de create-application. Proporcione los valores adecuados para su aplicación en los demás parámetros.

aws emr-serverless create-application \ --name my-graviton-app \ --release-label emr-6.8.0 \ --type "SPARK" \ --architecture "ARM64" \ --region us-west-2
EMR Studio

Para iniciar una aplicación con los procesadores Graviton de EMR Studio, elija arm64 como opción de Arquitectura al crear o actualizar una aplicación.

Configuración de las aplicaciones existentes para usar Graviton

Puede configurar sus aplicaciones Amazon EMR sin servidor existentes para que utilicen la arquitectura Graviton (arm64) con el SDK, AWS CLI o EMR Studio.

Para convertir una aplicación existente de x86 a arm64
  1. Confirme que está utilizando la última versión principal del AWS CLI/SDK que admite el parámetro architecture.

  2. Confirme que no hay ningún trabajo en ejecución y, a continuación, detenga la aplicación.

    aws emr-serverless stop-application \ --application-id application-id \ --region us-west-2
  3. Para actualizar la aplicación a fin de que utilice Graviton, especifique ARM64 para el parámetro architectureen la API de update-application.

    aws emr-serverless update-application \ --application-id application-id \ --architecture 'ARM64' \ --region us-west-2
  4. Para comprobar que la arquitectura de la CPU de la aplicación es ahora ARM64, utilice la API de get-application.

    aws emr-serverless get-application \ --application-id application-id \ --region us-west-2
  5. Cuando haya terminado, reinicie la aplicación.

    aws emr-serverless start-application \ --application-id application-id \ --region us-west-2

Consideraciones sobre el uso de Graviton

Antes de iniciar una aplicación EMR sin servidor con arm64 para su compatibilidad con Graviton, confirme lo siguiente.

Compatibilidad de bibliotecas

Al seleccionar Graviton (arm64) como opción de arquitectura, asegúrese de que los paquetes y bibliotecas de terceros sean compatibles con la arquitectura ARM de 64 bits. Para obtener información sobre cómo empaquetar las bibliotecas de Python en un entorno virtual de Python que sea compatible con la arquitectura seleccionada, consulteUso de bibliotecas de Python con EMR sin servidor.

Para obtener más información sobre cómo configurar una carga de trabajo de Spark o Hive para usar ARM de 64 bits, consulte el repositorio AWSIntroducción a Graviton en GitHub. Este repositorio contiene recursos esenciales que pueden ayudarte a empezar con Graviton basado en ARM.