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.
Temas
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.
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
-
Confirme que está utilizando la última versión principal del AWS CLI/SDK
que admite el parámetro architecture
. -
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
\ --regionus-west-2
-
Para actualizar la aplicación a fin de que utilice Graviton, especifique
ARM64
para el parámetroarchitecture
en la API deupdate-application
.aws emr-serverless update-application \ --application-id
application-id
\ --architecture 'ARM64' \ --regionus-west-2
-
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
\ --regionus-west-2
-
Cuando haya terminado, reinicie la aplicación.
aws emr-serverless start-application \ --application-id
application-id
\ --regionus-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