- Análisis›
- Amazon EMR›
- Preguntas frecuentes
Preguntas frecuentes sobre Amazon EMR
Aspectos generales
Abrir todoAmazon EMR es la plataforma de macrodatos en la nube líder del sector destinada al procesamiento de datos, análisis interactivo y machine learning mediante el uso de marcos de código abierto, como Apache Spark, Apache Hive y Presto. Con EMR, puede ejecutar análisis a escala de petabytes a menos de la mitad del costo de las soluciones tradicionales en las instalaciones y con una velocidad 1,7 veces superior que Apache Spark estándar.
Amazon EMR le permite centrarse en transformar y analizar sus datos sin tener que preocuparse por administrar capacidad de cómputo o aplicaciones de código abierto, y le permite ahorrar dinero. Con EMR, puede aprovisionar al instante tanta capacidad como quiera en Amazon EC2 y configurar reglas de escalado para administrar los cambios de demanda de cómputo. Puede configurar alertas de CloudWatch para recibir notificaciones sobre los cambios en su infraestructura y actuar de inmediato. Si utiliza Kubernetes, también puede utilizar EMR para enviar sus cargas de trabajo a clústeres de Amazon EKS. Tanto si utiliza EC2 como EKS, se beneficia de los tiempos de ejecución optimizados de EMR, que aceleran su análisis y le permiten ahorrar tiempo y dinero.
Puede implementar sus cargas de trabajo a EMR mediante Amazon EC2, Amazon Elastic Kubernetes Service (EKS) o AWS Outposts en las instalaciones. Puede ejecutar y administrar sus cargas de trabajo con la consola, API, SDK o CLI de EMR y organizarlas con Amazon Managed Workflows for Apache Airflow (MWAA) o AWS Step Functions. Para una experiencia interactiva, puede utilizar EMR Studio o SageMaker Studio.
Para registrarse en Amazon EMR, haga clic en el botón “Registrarse ahora” de la página de detalles de Amazon EMR http://aws.amazon.com/emr. Es necesario registrarse en Amazon EC2 y Amazon S3 para poder obtener acceso a Amazon EMR. Si no se ha registrado aún en estos servicios, el sistema se lo solicitará durante el proceso de registro en Amazon EMR. Después de registrarse, consulte la documentación de Amazon EMR, que incluye nuestra Guía de introducción, el mejor lugar para comenzar a utilizar el servicio.
Consulte nuestro Acuerdo de nivel de servicios.
Desarrollo y depuración
Abrir todoConsulte el código de muestra en estos artículos y tutoriales. Si utiliza EMR Studio, puede explorar las características con un conjunto de ejemplos de cuadernos.
Puede desarrollar, visualizar y depurar aplicaciones de ingeniería y de ciencia de datos escritas en R, Python, Scala y PySpark en Amazon EMR Studio. También puede desarrollar un trabajo de procesamiento de datos en su escritorio, por ejemplo, con Eclipse, Spyder, PyCharm o RStudio y ejecutarlo en Amazon EMR. Adicionalmente, puede seleccionar JupyterHub o Zeppelin en la configuración de software al implementar un nuevo clúster y desarrollar su aplicación en Amazon EMR con una o más instancias.
Las herramientas de línea de comandos y API permiten lanzar mediante programación y supervisar el progreso de los clústeres en ejecución, crear otras funcionalidades personalizadas relacionadas con clústeres (por ejemplo, secuencias con varios pasos de procesamiento, programación de tareas, flujos de trabajo o supervisión), así como crear herramientas o aplicaciones de valor agregado para otros clientes de Amazon EMR. A diferencia de lo anterior, la Consola de administración de AWS ofrece una interfaz fácil de utilizar para lanzar y supervisar los clústeres directamente desde un navegador web.
Sí. Una vez que el trabajo esté ejecutándose, dispondrá de la opción de añadirle más pasos por medio de la API AddJobFlowSteps. La API AddJobFlowSteps añade pasos nuevos al final de la secuencia de pasos actual. Puede que le interese utilizar esta API para implementar lógica condicional en su clúster o para depurar.
Puede registrarse en Amazon SNS y solicitar que el clúster se publique en su tema de SNS cuando termine. También puede ver el progreso del clúster en la consola de administración de AWS o utilizar la línea de comandos, el SDK o las API para conocer un estado del clúster.
Sí. Puede terminar el clúster de forma automática cuando haya finalizado todos los pasos al cambiar la marca de terminación automática a encendido.
Amazon EMR 5.30.0 y posterior y la serie Amazon EMR 6.x están basados en Amazon Linux 2. También puede especificar una AMI personalizada que cree con base de Amazon Linux 2. Esto le permite realizar una preconfiguración sofisticada para casi cualquier aplicación. Para obtener más información, consulte Using a Custom AMI.
Sí. Puede utilizar acciones de arranque para instalar paquetes de software de terceros en su clúster. También puede cargar ejecutables de compilación estática por medio del mecanismo de caché distribuida de Hadoop. EMR 6.x es compatible con Hadoop 3, que permite que YARN NodeManager lance contenedores ya sea directamente al alojamiento del clúster de EMR o dentro de un contenedor de Docker. Consulte nuestra documentación para obtener más información.
Hay muchas herramientas que puede utilizar para recopilar información sobre el clúster para poder determinar el error. Si utiliza Amazon EMR Studio, puede lanzar herramientas como Spark UI y YARN Timeline Service para simplificar la depuración. Desde la consola de Amazon EMR, puede obtener acceso fuera del clúster a interfaces persistentes de usuario de aplicación para Apache Spark, la interfaz de usuario de Tez y el servidor cronológico de YARN, diversas aplicaciones de interfaces de usuario dentro del clúster y una vista general del historial de aplicación en la consola de Amazon EMR para todas las aplicaciones YARN. También puede conectar su nodo maestro mediante SSH y visualizar las instancias del clúster mediante las interfaces web. Para obtener más información, consulte nuestra documentación.
EMR Studio
Abrir todoEMR Studio es un entorno de desarrollo integrado (IDE) que facilita a los científicos e ingenieros de datos el desarrollo, la visualización y la corrección de aplicaciones de ingeniería y de ciencia de datos escritas en R, Python, Scala y PySpark.
Es una aplicación completamente gestionada con inicio de sesión único, Jupyter Notebooks completamente administrados, aprovisionamiento de infraestructura automatizada y la capacidad de depurar trabajos sin iniciar sesión en la consola de AWS o el clúster. Los analistas y científicos de datos pueden instalar kernels y librerías personalizadas, colaborar con sus compañeros mediante el uso de repositorios de código como GitHub y BitBucket, o ejecutar blocs de notas con parámetros como parte de flujos de trabajo programados mediante servicios de organización como Apache Airflow, AWS Step Functions y flujos de trabajo gestionados de Amazon para Apache Airflow. Para obtener más información, puede consultar Orchestrating analytics jobs on Amazon EMR notesbooks using Amazon MWAA. Los kernels y las aplicaciones de EMR Studio se ejecutan en clústeres de EMR, por lo que se obtiene el beneficio del procesamiento de datos distribuidos a través del tiempo de ejecución de Amazon EMR para Apache Spark optimizado. Los administradores pueden configurar EMR Studio para que los analistas puedan ejecuten sus aplicaciones en los clústeres existentes de EMR o crear nuevos clústeres mediante plantillas predefinidas de AWS CloudFormation para EMR.
Con EMR Studio, puede iniciar sesión directamente en los cuadernos de Jupyter completamente administrados con sus credenciales corporativas sin cerrar sesión en la Consola de AWS, iniciar cuadernos en segundos, obtener cuadernos incorporados con muestras y hacer exploración de datos. También puede personalizar su entorno al cargar kernels personalizados y bibliotecas de Python desde cuadernos. Los kernels y las aplicaciones de EMR Studio se ejecutan en clústeres de EMR, por lo que se obtiene el beneficio del procesamiento de datos distribuidos a través del tiempo de ejecución de Amazon EMR para Apache Spark optimizado para el rendimiento. Puede colaborar con colegas al compartir cuadernos mediante GitHub y otros repositorios. También puede ejecutar blocs de notas directamente como canalizaciones de integración e implementación continuas. Puede pasar diferentes valores de parámetros a un bloc de notas. También puede encadenar blocs de notas e integrar blocs de notas en flujos de trabajo programados mediante servicios de organización de flujo de trabajo como Apache Airflow. Además, puede depurar clústeres y trabajos con muy pocos clics con interfaces de aplicaciones nativas como la interfaz de usuario de Spark y el servicio de cronología de YARN.
Hay cinco diferencias principales.
-
No hay necesidad de acceder a la consola de administración de AWS para EMR Studio. EMR Studio se aloja fuera de la consola de administración de AWS. Esto es útil cuando no da acceso a la Consola de administración de AWS a los científicos de datos o ingenieros de datos.
-
Puede usar credenciales empresariales de su proveedor de identidades con el Centro de identidades de AWS IAM (sucesor de AWS SSO) para iniciar sesión en EMR Studio.
-
EMR Studio le da una primera experiencia con cuadernos. Los kernels y las aplicaciones de EMR Studio se ejecutan en clústeres de EMR, por lo que se obtiene el beneficio del procesamiento de datos distribuidos a través del tiempo de ejecución de Amazon EMR para Apache Spark optimizado para el rendimiento. Ejecutar el código en un clúster es tan simple como adjuntar el cuaderno a un clúster existente o aprovisionar uno nuevo.
-
EMR Studio tiene una interfaz de usuario simplificada y sintetiza configuraciones de hardware. Por ejemplo, puede configurar plantillas de clúster una vez y usar las plantillas para iniciar nuevos clústeres.
-
EMR Studio habilita una experiencia de depuración para que tenga acceso a las interfaces de usuario de aplicación nativa en un lugar con muy pocos clics.
Puede utilizar tanto EMR Studio como SageMaker Studio con Amazon EMR. EMR Studio proporciona un entorno de desarrollo integrado (IDE) que le facilita el desarrollo, la visualización y la corrección de aplicaciones de ingeniería y de ciencias de datos escritas en R, Python, Scala y PySpark. Amazon SageMaker Studio proporciona una única interfaz virtual basada en la web donde puede llevar a cabo todos los pasos de desarrollo de Machine Learning. SageMaker Studio le brinda acceso completo, control y visibilidad en todos los pasos requeridos para crear, entrenar e implementar modelos. Puede cargar datos, crear cuadernos nuevos, entrenar y ajustar modelos, retroceder y avanzar entre los pasos para ajustar experimentos, comparar resultados e implementar modelos para la producción, todo de forma rápida y en un solo lugar, lo que aumenta su productividad.
Su administrador debe configurar primero un EMR Studio. Cuando su administrador le envíe un inicio de sesión único o URL para su Amazon EMR Studio, puede iniciar sesión en Studio directamente con sus credenciales corporativas.
No. Después de que su administrador configure un EMR Studio y proporcione la URL de acceso al estudio, su equipo podrá iniciar sesión con las credenciales corporativas. No es necesario iniciar sesión en la consola de administración de AWS. En un EMR Studio, su equipo puede desempeñar tareas y acceder a recursos configurados por su administrador.
AWS IAM Identity Center (sucesor de AWS SSO) es el proveedor de servicios de inicio de sesión único de EMR Studio. Puede encontrar la lista de proveedores de identidades compatibles con AWS IAM en nuestra documentación.
Los WorkSpaces le ayudan a organizar los cuadernos de Jupyter. Todos los blocs de notas en un WorkSpace se almacenan en la misma ubicación de Amazon S3 y se ejecutan en el mismo clúster. También puede enlazar un repositorio de códigos, como un repositorio GitHub, a todos los blocs de notas en un WorkSpace. Puede crear y configurar un WorkSpace antes de adjuntarlo a un clúster, pero debe conectarlo a un clúster antes de ejecutar un cuaderno.
Sí. Puede crear o abrir un WorkSpace sin adjuntarlo a un clúster. Debe conectarlos a un clúster solo cuando necesite ejecutar. Los kernels y aplicaciones de EMR Studio se ejecutan en clústeres de EMR, por lo que obtiene el beneficio del procesamiento distribuido de datos al usar el tiempo de ejecución de Amazon EMR para Apache Spark optimizado para el rendimiento.
Todas las consultas Spark se ejecutan en su clúster EMR, por lo que necesita instalar bibliotecas con tiempo de ejecución que su aplicación de Spark pueda usar en el clúster. Puede instalar fácilmente bibliotecas de ámbito de red en una celda de notebook. También puede instalar kernels de cuadernos de Jupyter y bibliotecas de Python en un nodo maestro del clúster en una celda de cuaderno o durante la conexión SSH al nodo maestro del clúster. Para obtener más información, consulte la documentación. Adicionalmente, puede usar una acción de acción de arranque o una AMI personalizada para instalar las bibliotecas requeridas cuando crea un clúster. Para obtener más información, consulte Create Bootstrap Actions to Install Additional Software y Using a Custom AMI en la Guía de administración de Amazon EMR.
Los espacios de trabajo, juntamente con los archivos de los cuadernos, se guardan automáticamente en la ubicación Amazon S3 que especificó cuando creó el espacio de trabajo, en intervalos regulares en el formato de archivo ipynb. El archivo de cuadernos tiene el mismo nombre que su cuaderno en Amazon EMR Studio.
Puede asociar los repositorios basados en Git con sus cuadernos de Amazon EMR Studio para guardar sus cuadernos en un entorno controlado por versión.
Con EMR Studio, puede ejecutar código de los cuadernos en Amazon EMR que se ejecute en Amazon Elastic Compute Cloud (Amazon EC2) o en Amazon EMR en Amazon Elastic Kubernetes Service (Amazon EKS). Puede adjuntar blocs de notas a clústeres nuevos o existentes. Hay dos formas de crear clústeres en EMR Studio. La primera es crear un clúster con una plantilla preconfigurada de clúster mediante AWS Service Catalog. La segunda es crear un clúster y especificar el nombre del clúster, número de instancias y el tipo de instancia.
Sí. Puede abrir un WorkSpace. Elija el icono Clústeres de EMR a la izquierda, seleccione Desconectar y, a continuación, seleccione un clúster del menú desplegable Seleccionar clúster y elija Adjuntar.
En EMR Studio puede escoger la pestaña WorkSpaces a la izquierda y ver todos los WorkSpaces que crearon usted y otros usuarios en la misma cuenta de AWS.
Cada EMR Studio necesita permisos para interoperar con otros servicios de AWS. Para dar los permisos necesarios a sus EMR Studios, sus administradores tienen que crear un rol de servicio de EMR Studio con las políticas proporcionadas. También necesitan especificar un rol de usuario para EMR Studio que defina los permisos a nivel Studio. Cuando agregan usuarios y grupos del Centro de identidades de AWS IAM (sucesor de AWS SSO) a EMR Studio, pueden asignar una política de sesión a un usuario o grupo para aplicar controles de permiso detallados. Las políticas de sesión permiten a los administradores refinar los permisos de usuario sin la necesidad de crear múltiples roles de IAM. Para obtener más información sobre las políticas de sesión, consulte Políticas y permisos en la Guía del usuario de AWS Identity and Access Management.
Sí. Los clústeres de alta disponibilidad (multimaestro), clústeres Kerberizados y los clústeres AWS Lake Formation no se aceptan por el momento.
Amazon EMR Studio se le ofrece sin costo adicional. Hay cargos aplicables por el almacenamiento de Amazon Simple Storage Service y para los clústeres de Amazon EMR al utilizar EMR Studio. Para obtener más información sobre las opciones de precios y detalles, consulte Precios de Amazon EMR.
EMR Notebooks
Abrir todoRecomendamos a los nuevos clientes que utilicen Amazon EMR Studio, no Cuadernos de EMR. EMR Notebooks ofrece un entorno administrado, en función de Jupyter Notebook, que permite a los científicos de datos, analistas y desarrolladores preparar y visualizar datos, colaborar con colegas, crear aplicaciones y llevar a cabo análisis interactivos mediante el uso de clústeres EMR. Aunque recomendamos a los nuevos clientes que utilicen EMR Studio, Cuadernos de EMR también es compatible.
Puede usar Cuadernos de EMR para crear aplicaciones Apache Spark y ejecutar consultas interactivas en su clúster de EMR sin demasiado esfuerzo. Varios usuarios pueden crear blocs de notas sin servidor directamente desde la consola, vincularlas a un clúster EMR compartido existente o aprovisionar un clúster directamente desde la consola, e inmediatamente comenzar a experimentar con Spark. Puede desconectar blocs de notas y volver a conectarlos a nuevos clústeres. Las notebooks son buckets S3 de guardado automático. Además, puede recuperar las notebooks guardadas desde la consola para reanudar el trabajo. EMR Notebooks está previamente equipado con las bibliotecas que se encuentran en el almacén de Anaconda. Esto le permite importar y usar estas bibliotecas en su código de notebook y utilizarlas para manipular datos y visualizar resultados. Por último, Cuadernos de EMR tiene capacidades de supervisión de Spark integradas que puede usar para supervisar el progreso de sus trabajos de Spark y depurar el código desde dentro de su cuaderno.
Para comenzar con Cuadernos de EMR, abra la consola de EMR y seleccione Cuadernos en el panel de navegación. Desde allí, solo tiene que seleccionar Crear cuaderno, ingresar un nombre para el cuaderno, seleccionar un clúster de EMR o crear instantáneamente uno nuevo, proporcionar un rol de servicio que el cuaderno pueda usar y seleccionar un bucket de S3 donde desee guardar los archivos del cuaderno. Luego, haga clic en Crear cuaderno. Luego de que el cuaderno muestre el estado Listo, elija Abrir para iniciar el editor de cuadernos.
Cuadernos de EMR se puede adjuntar a los clústeres EMR que ejecutan la versión 5.18.0 de EMR o versiones posteriores.
Los cuadernos de EMR se ofrecen sin costo adicional. Se le cobrará lo usual por los clústeres EMR vinculados en su cuenta. Puede encontrar más información acerca de los precios del clúster en https://aws.amazon.com/emr/pricing/
Administración de datos
Abrir todoAmazon EMR proporciona diversas maneras de ingresar datos a un clúster. La manera más común es cargar los datos a Amazon S3 y usar las características integradas de Amazon EMR para cargar los datos en su clúster. Puede usar la característica de caché distribuida de Hadoop para transferir archivos de un sistema de archivos distribuido al sistema de archivos local. Para obtener más detalles, consulte la documentación. De otro modo, si quiere migrar datos de las instalaciones a la nube, puede usar uno de los servicios de migración de datos a la nube de AWS.
Los registros del sistema de Hadoop, junto con los registros de usuarios, se colocan en el bucket de Amazon S3 que especifique al crear un clúster. Las interfaces de usuario de aplicaciones persistentes se ejecutan fuera del clúster. Los registros en el servidor de historial de Spark, IU de Tez y servidores cronológicos de YARN están disponibles durante 30 días después de que se termina una aplicación.
Por ahora, Amazon EMR no comprime los registros cuando los traslada a Amazon S3.
P: ¿Los registros se comprimen?
Sí. Puede usar AWS Direct Connect para establecer conexiones de red dedicadas privadas a AWS. Si tiene grandes cantidades de datos, puede usar AWS Import/Export. Para obtener más detalles, consulte nuestra documentación.
Facturación
Abrir todoNo. Cada clúster y cada conjunto de datos de entrada son diferentes; es imposible calcular a priori la duración de un trabajo.
Los precios de Amazon EMR son simples y predecibles: paga una tarifa por segundo por cada segundo utilizado, con un cobro mínimo de un minuto. Puede hacer una estimación de su factura con la Calculadora de precios de AWS. El uso de otros productos de Amazon Web Services incluido Amazon EC2 se facturará aparte de Amazon EMR.
La facturación de Amazon EMR comienza cuando el clúster está listo para ejecutar pasos. La facturación de Amazon EMR finaliza cuando usted solicita apagar el clúster. Para más detalles sobre cuándo comienza y finaliza la facturación de Amazon EC2, consulte las preguntas frecuentes sobre facturación de Amazon EC2.
Puede hacer un seguimiento del uso en la Consola de administración de facturación y costos.
En la consola de administración de AWS, cada clúster tiene una columna de horas de instancia normalizadas que indica el número aproximado de horas de cómputo que un clúster ha usado, redondeado a la hora más cercana.
Las horas de instancia normalizadas son horas de cómputo basadas en el estándar de uso de una hora de m1.small = una hora de tiempo de cómputo normalizada. Puede ver nuestra documentación para ver una lista de tamaños diferentes con una familia de instancias y el factor correspondiente de normalización por hora.
Por ejemplo, si ejecuta un clúster r3.8xlarge de 10 nodos durante una hora, la cantidad total de horas de instancias normalizadas que se mostrará en la consola será de 640 (10 [número de nodos] x 64 [factor de normalización] x 1 [número de horas durante las que se ha ejecutado el clúster] = 640).
Se trata de un número aproximado y no debe utilizarse con fines de facturación. Consulte la Consola de administración de facturación y costos para ver información sobre el uso facturable de Amazon EMR.
Sí. Amazon EMR admite sin problemas tanto instancias bajo demanda como instancias de spot e instancias reservadas. Haga clic aquí para obtener más información sobre las instancias reservadas de Amazon EC2. Haga clic aquí para obtener más información sobre las instancias de spot de Amazon EC2. Haga clic aquí para obtener más información sobre las reservas de capacidad de Amazon EC2.
Si no se especifica lo contrario, nuestros precios no incluyen los impuestos ni gravámenes correspondientes, como el IVA y cualquier otro impuesto sobre las ventas. En el caso de los clientes con una dirección de facturación de Japón, el uso de los servicios de AWS está sujeto al impuesto de consumo nipón. Obtenga más información.
Control de acceso de datos y seguridad
Abrir todoAmazon EMR inicia las instancias en dos grupos de seguridad de Amazon EC2, uno para el principal y otro para los demás nodos de clúster. El grupo de seguridad principal tiene un puerto abierto para comunicarse con el servicio. También tiene abierto el puerto SSH para que pueda utilizar SSH en las instancias por medio de la clave especificada al iniciar sesión. Los demás nodos se inician en otro grupo de seguridad aparte que solamente permite la interacción con la instancia principal. De forma predeterminada, ninguno de estos dos grupos de seguridad está configurado para permitir el acceso de fuentes externas, ni siquiera de las instancias de Amazon EC2 pertenecientes a otros clientes. Dado que se trata de grupos de seguridad incluidos en su cuenta, podrá cambiar su configuración mediante el panel o las herramientas estándar de EC2. Haga clic aquí para obtener más información sobre los grupos de seguridad de EC2. Adicionalmente, puede configurar el acceso público de bloque de Amazon EMR en cada región que utilice para impedir la creación de clústeres si una ruta permite el acceso público en cualquier puerto que no agregue a una lista de excepciones.
Amazon S3 ofrece mecanismos de autenticación para garantizar que los datos almacenados estén protegidos frente al acceso no autorizado. Salvo que especifique lo contrario el cliente que esté cargando los datos, solamente dicho cliente podrá obtener acceso a los datos. Los clientes de Amazon EMR también pueden optar por enviar datos a Amazon S3 mediante el protocolo HTTPS para lograr una transmisión segura. Además, Amazon EMR utiliza siempre HTTPS para enviar datos entre Amazon S3 y Amazon EC2. Para mayor seguridad, los clientes pueden cifrar los datos de entrada antes de cargarlos en Amazon S3 (mediante cualquier herramienta común para cifrado de datos). En caso de hacerlo, deberán agregar un paso de descifrado al principio del clúster cuando Amazon EMR recupere los datos de Amazon S3.
Sí. AWS CloudTrail es un servicio web que registra las llamadas a la API de AWS de su cuenta y le entrega registros. El historial de llamadas a la API de AWS creado por CloudTrail permite realizar un análisis de seguridad, un seguimiento de los cambios en los recursos y auditorías de conformidad. Obtenga más información sobre CloudTrail en la página de detalles de AWS CloudTrail y actívelo a través de la Consola de administración de AWS de CloudTrail.
De forma predeterminada, los procesos de aplicaciones de Amazon EMR utilizan perfiles de instancia de EC2 cuando llaman a otros servicios de AWS. En el caso de clústeres de varios usuarios, Amazon EMR ofrece tres opciones para administrar el acceso de los usuarios a los datos de Amazon S3.
-
La integración con AWS Lake Formation le permite definir y administrar políticas de autorización detalladas en AWS Lake Formation para acceder a bases de datos, tablas y columnas en el Catálogo de datos de AWS Glue. Puede aplicar las políticas de autorización en trabajos enviados mediante Cuadernos de Amazon EMR y Apache Zeppelin para cargas de trabajo de EMR Spark interactivas, y enviar eventos de auditoría a AWS CloudTrail. Al habilitar esta integración, también habilita Single Sign-On federado para Cuadernos de EMR o Apache Zeppelin desde sistemas de identidad empresarial compatibles con Security Assertion Markup Language (SAML) 2.0.
-
La integración nativa con Apache Ranger le permite configurar un servidor nuevo o existente de Apache Ranger para definir y administrar políticas de autorización detalladas para el acceso de usuarios a bases de datos, tablas y columnas de datos de Amazon S3 mediante Hive Metastore. Apache Ranger es una herramienta de código abierto que permite habilitar, supervisar y administrar de forma pormenorizada la seguridad de los datos en la plataforma Hadoop.
Esta integración nativa le permite definir tres tipos de políticas de autorización en el servidor de administración de políticas de Apache Ranger. Puede definir autorizaciones a nivel de fila, de columna y de tabla para Hive, a nivel de columna y de tabla para Spark y, por último, a nivel de prefijo y de objeto para Amazon S3. Amazon EMR instala y configura de forma automática los complementos correspondientes de Apache Ranger en el clúster. Estos complementos de Ranger se sincronizan con el servidor de administración de políticas para determinar las autorizaciones, aplicar las políticas de acceso a datos y enviar los eventos de auditoría a Registros de Amazon CloudWatch. -
El mapeador de roles de usuario de Amazon EMR le permite sacar partido de los permisos de AWS IAM para administrar el acceso a los recursos de AWS. Puede crear mapeos entre usuarios (o grupos) y roles de IAM personalizados. Un usuario o grupo solo puede acceder a los datos permitidos por el rol de IAM personalizado. En la actualidad, esta característica se encuentra disponible a través de los Laboratorios de AWS.
Zonas de disponibilidad y regiones
Abrir todoAmazon EMR lanza todos los nodos para un clúster determinado en la misma zona de disponibilidad de Amazon EC2. La ejecución de un clúster en la misma zona mejora el rendimiento de los flujos de trabajo. De forma predeterminada, Amazon EMR elige la zona de disponibilidad que dispone de más recursos para ejecutar el clúster. No obstante, se puede especificar otra zona de disponibilidad si es necesario. También tiene la opción de optimizar su asignación para las instancias bajo demanda de menor precio, capacidad de spot óptima o usar reservas de capacidad bajo demanda.
Para ver la lista de las regiones de AWS donde se admite Amazon EMR, consulte la tabla de regiones de AWS, que contiene información sobre la infraestructura global de AWS.
EMR facilita el lanzamiento de clústeres en AWS Local Zone de Los Ángeles. Puede utilizar EMR en la región Oeste de EE. UU. (Oregón) para lanzar clústeres en subredes asociadas con la zona local de AWS de Los Ángeles.
Cuando se crea un clúster, lo habitual es seleccionar la misma región en la que están almacenados los datos.
Sí, es posible. Si transfiere datos de una región a otra, se le facturará el consumo de ancho de banda. Para obtener información sobre los precios de ancho de banda, visite la sección de precios en la página de detalles de EC2.
La región AWS GovCloud (EE. UU.) se ha diseñado para los clientes y las agencias gubernamentales de EE.UU. Cumple los requisitos ITAR de EE.UU. En GovCloud, EMR no admite las instancias de spot ni la función de activación de depuración. La consola de administración de EMR aún no está disponible en GovCloud.
Opciones de despliegue
Abrir todoAmazon EMR en Amazon EC2
Abrir todoUn clúster es una colección de instancias Amazon Elastic Compute Cloud (Amazon EC2). Cada instancia del clúster se llama nodo y tiene un rol en el clúster, conocido como tipo de nodo. Amazon EMR también instala varios componentes de software en cada tipo de nodo, lo que proporciona a cada nodo un rol en una aplicación distribuida como Apache Hadoop. Cada clúster tiene un identificador exclusivo que comienza por “j-”.
Un clúster de Amazon EMR tiene tres tipos de nodos:
-
Nodo maestro: nodo que administra el clúster ejecutando componentes de software para coordinar la distribución de datos y tareas entre otros nodos para el procesamiento. El nodo maestro hace un seguimiento de las tareas y monitorea el estado del clúster. Cada clúster tiene un nodo maestro y es posible crear un clúster de un único nodo con solo el nodo maestro.
-
Nodo principal: nodo con componentes de software que ejecutan tareas y almacenan datos en el Hadoop Distributed File System (HDFS) en el clúster. Los clústeres de varios nodos tienen como mínimo un nodo principal.
-
Nodo de tarea: nodo con componentes de software que solo ejecuta tareas y no almacena datos en HDFS. Los nodos de tarea son opcionales.
Un paso de clúster es una unidad de procesamiento definida por el usuario que se asigna aproximadamente a un algoritmo que manipula los datos. Un paso es una aplicación de Hadoop MapReduce implementada como un Java jar o un programa de streaming de Java, Ruby, Perl, Python, PHP, R o C++. Por ejemplo, para saber la frecuencia con que aparecen las palabras en un documento y obtener un resultado ordenado de dicho recuento, el primer paso sería una aplicación de MapReduce que contara cuántas veces aparece cada palabra y el segundo paso sería una aplicación de MapReduce que ordenara el resultado a partir de los recuentos obtenidos en el primer paso.
STARTING - El clúster comienza configurando las instancias EC2.
BOOTSTRAPPING – Las acciones de arranque se ejecutan en el clúster.
RUNNING – Se está ejecutando un paso del clúster en este momento.
WAITING – El clúster está activo, pero no tiene pasos que ejecutar.
TERMINATING – El clúster está en proceso de apagarse.
TERMINATED – El clúster se ha apagado sin errores.
TERMINATED_WITH_ERRORS – El clúster se ha apagado con errores.
PENDING – El paso está a la espera de su ejecución.
RUNNING – El paso se está ejecutando en este momento.
COMPLETED – El paso se ha completado de forma satisfactoria.
CANCELLED – Se ha cancelado el paso antes de su ejecución, ya sea porque ha fallado un paso anterior o porque el clúster ha finalizado antes de que pudiera ejecutarse.
FAILED: El paso ha fallado durante su ejecución.
Puede lanzar un clúster en la consola de administración de AWS. Para ello, solamente necesita completar un sencillo formulario de solicitud de clústeres. El formulario de solicitud especifica el nombre del clúster, la ubicación de los datos de entrada en Amazon S3, la aplicación de procesamiento, la ubicación deseada para la salida de los datos y el número y el tipo de instancias de Amazon EC2 que desea utilizar. Si lo prefiere, puede especificar una ubicación para almacenar los registros de clústeres y la clave SSH para iniciar sesión en el clúster mientras se está ejecutando. Otra opción es lanzar un clúster mediante la API RunJobFlow o por medio del comando “create” (crear) en las herramientas de línea de comandos. Para lanzar un clúster con EMR Studio, diríjase a la sección EMR Studio anterior.
Puede terminar un clúster en cualquier momento desde la consola de administración de AWS. Para ello, seleccione el clúster en cuestión y haga clic en el botón "Terminate". Si lo prefiere, también puede utilizar la API TerminateJobFlows. Si termina un clúster en ejecución, los resultados que no se hayan almacenado de forma persistente en Amazon S3 se perderán y se apagarán todas las instancias de Amazon EC2.
Puede iniciar tantos clústeres como desee. Cuando comience, el límite son 20 instancias en total entre todos los clústeres. Si necesita más instancias, complete el formulario de solicitud de instancias de Amazon EC2. Cuando aumente su límite de Amazon EC2, el nuevo límite se aplicará de forma automática a sus clústeres de Amazon EMR.
Puede cargar sus datos de entrada en Amazon S3 y una aplicación de procesamiento de datos. A continuación, Amazon EMR lanza una serie de instancias Amazon EC2 especificadas. El servicio comienza a ejecutar el clúster al tiempo que extrae los datos de entrada de Amazon S3 mediante el esquema URI S3 en las instancias Amazon EC2 que se hayan lanzado. Una vez terminado el clúster, Amazon EMR transfiere los datos de salida a Amazon S3, donde podrá recuperarlos o utilizarlos como entrada para otro clúster.
Amazon EMR utiliza el motor de procesamiento de datos de Hadoop para llevar adelante el procesamiento informático implementado en el modelo de programación de MapReduce. El cliente implementa su algoritmo en términos de las funciones map() y reduce(). El servicio inicia la cantidad de instancias de Amazon EC2 especificadas por el cliente (una instancia principal y varios nodos). Amazon EMR ejecuta el software de Hadoop en estas instancias. El nodo principal divide los datos de entrada en bloques y distribuye su procesamiento a los demás nodos. Luego, cada nodo ejecuta la función map en los datos que se le han asignado, con lo que genera datos intermedios. Los datos intermedios se ordenan y se organizan en particiones antes de enviarlos a procesos que les aplican la función del reductor localmente en los nodos. Por último, el resultado de las tareas del reductor se recopila en archivos. Un único “clúster” puede incluir una secuencia de estos pasos de MapReduce.
Consulte la página de precios de EMR para obtener más detalles sobre los tipos de instancias disponibles más recientes y los precios por región.
El tiempo que se ejecute el clúster depende de varios factores, como el tipo de clúster, el volumen de datos de entrada y el número y el tipo de instancias de Amazon EC2 que elija para el clúster.
Sí. Puede iniciar un clúster de EMR (versión 5.23 o posterior) con tres nodos principales y admitir alta disponibilidad de las aplicaciones como YARN Resource Manager, HDFS Name Node, Spark, Hive y Ganglia. Amazon EMR automáticamente conmuta por error a un nodo principal de reserva si el nodo principal falla o si colapsan los procesos críticos como Resource Manager o Name Node. Dado que el nodo principal no es un posible punto único de error, puede ejecutar sus clústeres de EMR de larga duración sin interrupciones. En el caso de una conmutación por error, Amazon EMR reemplaza automáticamente el nodo maestro con el error por un nuevo nodo maestro con la misma configuración y las mismas acciones de arranque.
Sí. Amazon EMR es tolerante a los errores de nodos y continúa la ejecución de tareas si uno de ellos deja de funcionar. Amazon EMR también aprovisionará un nuevo nodo cuando se produzca un fallo en el nodo principal. Sin embargo, Amazon EMR no sustituye los nodos si se pierden todos los nodos de un clúster.
Sí. Puede utilizar SSH en los nodos de su clúster y ejecutar los comandos de Hadoop directamente desde ellos. Si necesita utilizar SSH con un nodo específico, deberá ejecutarlo primero en el nodo maestro y luego en el nodo que desee.
Las acciones de arranque son una característica de Amazon EMR que ofrecen a los usuarios un método para ejecutar la configuración personalizada antes de la ejecución de los clústeres. Las acciones de arranque pueden utilizarse para instalar software o configurar instancias antes de ejecutar un clúster. Puede obtener más información sobre las acciones de arranque en la Guía para desarrolladores de EMR.
Puede escribir un script de acción de arranque en cualquier lenguaje de programación ya instalado en la instancia del clúster: Bash, Perl, Python, Ruby, C++ o Java. Existen varias acciones de arranque predefinidas. Una vez escrita la secuencia de comandos, necesitará cargarla en Amazon S3 e incluir una referencia a su ubicación cuando inicie un clúster. Consulte la Guía para desarrolladores para obtener más detalles sobre el uso de las acciones de arranque.
La configuración de Hadoop predeterminada de EMR es adecuada para la mayoría de las cargas de trabajo. Sin embargo, en función de los requisitos de procesamiento y memoria específicos del clúster, puede que sea conveniente ajustar estos valores de configuración. Por ejemplo, si las tareas de clúster utilizan mucha memoria, puede elegir utilizar menos tareas por núcleo y reducir el tamaño de montículo de su rastreador de trabajos. Para este caso, hay disponible una acción de arranque predefinida para configurar el clúster al inicio. Consulte Configure Memory Intensive Bootstrap Action en la Guía para desarrolladores para obtener información sobre la configuración e instrucciones de uso. Existe otra acción de arranque predefinida que permite personalizar la configuración del clúster con el valor que elija. Consulte Configure Hadoop Bootstrap Action en la Guía para desarrolladores para obtener instrucciones de uso.
Sí. Existen dos tipos de nodos: (1) nodos principales, que alojan datos persistentes mediante Hadoop Distributed File System (HDFS) y además ejecutan tareas de Hadoop, y (2) nodos de tareas, que únicamente ejecutan tareas de Hadoop. Mientras se ejecuta un clúster, es posible aumentar el número de nodos principales. Por su parte, el número de nodos de tareas puede tanto aumentarse como reducirse. Esto puede hacerse mediante la API, el SDK para Java o el cliente de línea de comando. Consulte la sección Resizing Running clusters de la Guía para desarrolladores si desea obtener más información sobre cómo modificar el tamaño de un clúster que se encuentre en ejecución. También puede usar el Escalado administrado por EMR.
Los nodos principales alojan datos persistentes en HDFS y no pueden eliminarse; por este motivo, deberían reservarse con la capacidad necesaria para completar el clúster. Dado que los nodos de tareas pueden añadirse o eliminarse y no contienen HDFS, son idóneos para los casos en que se necesita capacidad solo de forma temporal. Puede lanzar flotas de instancias de tarea en instancias de spot para aumentar la capacidad mientras minimiza costos.
Existen varias situaciones en las que puede resultar interesante modificar el número de nodos de un clúster que se encuentra en ejecución. Si el clúster se ejecuta a menor velocidad de la esperada o si cambian los requisitos de tiempo, podrá aumentar el número de nodos principales para acelerar el rendimiento del clúster. Si diversas fases de su clúster tienen diferentes requisitos de capacidad, podrá comenzar con un número pequeño de nodos principales y aumentar o reducir el número de nodos de tareas para ajustarse a los requisitos variables de capacidad del clúster en cuestión. También puede usar el Escalado administrado por EMR.
Sí. Puede incluir un paso predefinido en el clúster que cambie automáticamente el tamaño de un clúster entre un paso y el siguiente si sabe que cada paso tiene diferentes necesidades de capacidad. Dado que todos los pasos se ejecutan en orden, puede definir el número de nodos que ejecutarán un determinado paso del clúster.
Si quiere crear un nuevo clúster que sea visible para todos los usuarios de IAM dentro de la CLI de EMR, agregue el marcador --visible-to-all-users cuando cree el clúster. Por ejemplo: elastic-mapreduce --create --visible-to-all-users. En la consola de administración, solo tiene que seleccionar "Visible to all IAM Users" en el panel de opciones avanzadas del asistente de creación de clústeres.
Para convertir un clúster existente en visible para todos los usuarios de IAM, debe utilizar la CLI de EMR. Utilice --set-visible-to-all-users y especifique el identificador del clúster. Por ejemplo: elastic-mapreduce --set-visible-to-all-users true --jobflow j-xxxxxxx. Esto solo lo puede hacer el creador del clúster.
Para obtener más información, consulte la sección Configuring User Permissions de la Guía para desarrolladores de EMR.
Puede agregar etiquetas a un clúster activo de Amazon EMR. Un clúster de Amazon EMR consta de instancias de Amazon EC2, y las etiquetas que se añadan a un clúster de Amazon EMR se propagarán a cada instancia de Amazon EC2 activa en dicho clúster. No puede agregar, editar o suprimir etiquetas de clústeres terminados o de instancias de Amazon EC2 terminadas que hayan formado parte de un clúster activo.
No, Amazon EMR no admite el permiso basado en recursos por etiqueta. Sin embargo, es importante señalar que las etiquetas propagadas a las instancias de Amazon EC2 se comportan como etiquetas normales de Amazon EC2. Por lo tanto, una política de IAM para Amazon EC2 actuará sobre las etiquetas propagadas desde Amazon EMR si coinciden con las condiciones de dicha política.
Puede agregar hasta diez etiquetas a un clúster de Amazon EMR.
Sí, Amazon EMR propaga las etiquetas que se han agregado a un clúster a las instancias de EC2 subyacentes de dicho clúster. Si añade una etiqueta a un clúster de Amazon EMR, también aparecerá en las instancias de Amazon EC2 relacionadas. De igual forma, si suprime una etiqueta de un clúster de Amazon EMR, también se suprimirá de sus instancias de Amazon EC2 relacionadas. Sin embargo, si está utilizando políticas de IAM para Amazon EC2 y piensa utilizar la funcionalidad de etiquetado de Amazon EMR, debe asegurarse de que se le conceda dicho permiso para utilizar las API de etiquetado de Amazon EC2 CreateTags y DeleteTags.
Seleccione las etiquetas que desearía utilizar en su informe de facturación AWS aquí. A continuación, para ver el costo de sus recursos combinados, puede organizar la información de facturación en función de los recursos que tengan los mismos valores clave de etiqueta.
Una instancia de Amazon EC2 asociada a un clúster de Amazon EMR tiene dos etiquetas de sistema:
-
aws:elasticmapreduce:instance-group-role=CORE
-
Clave = función instance-group; valor = [CORE o TASK];
-
-
aws:elasticmapreduce:job-flow-id=j-12345678
-
Clave = job-flow-id; valor = [JobFlowID]
-
Sí, puede agregar o suprimir etiquetas directamente en las instancias de Amazon EC2 que formen parte de un clúster de Amazon EMR. Sin embargo, no le recomendamos que lo haga porque el sistema de etiquetado de Amazon EMR no sincronizará directamente los cambios realizados en una instancia de Amazon EC2 asociada. Le recomendamos agregar y eliminar las etiquetas de los clústeres de Amazon EMR desde la consola de Amazon EMR, CLI o API para garantizar que el clúster y las instancias de Amazon EC2 asociadas cuenten con las etiquetas correctas.
EMR sin servidor
Abrir todoAmazon EMR sin servidor es una nueva opción de implementación en Amazon EMR que le permite ejecutar macrodatos como Apache Spark y Apache Hive sin configurar, administrar ni escalar clústeres.
Los ingenieros, analistas y científicos de datos pueden usar EMR sin servidor para crear aplicaciones utilizando marcos de código abierto como Apache Spark y Apache Hive. Pueden usar estos marcos para transformar datos, ejecutar consultas SQL interactivas y cargas de trabajo de machine learning.
Puede usar EMR Studio, AWS CLI o las API para enviar trabajos, hacer un seguimiento del estado de los trabajos y crear sus canalizaciones de datos para que se ejecuten en EMR sin servidor. Para comenzar con EMR Studio, inicie sesión en la consola de administración de AWS, vaya a Amazon EMR, en la categoría Analytics (Análisis), y seleccione Amazon EMR Serverless (Amazon EMR sin servidor). Siga las instrucciones en la Consola de administración de AWS, vaya a Amazon EMR, en la categoría “Análisis”, y seleccione “Amazon EMR sin servidor”. Siga las instrucciones de la guía de Introducción para crear su aplicación de EMR sin servidor y enviar trabajos. Puede consultar la página Interacting with your application on the AWS CLI para iniciar sus aplicaciones y enviar trabajos mediante la CLI. También puede encontrar ejemplos de EMR sin servidor y código de muestra en nuestro repositorio de GitHub.
EMR sin servidor actualmente es compatible con los motores Apache Spark y Apache Hive. Si necesita soporte para marcos adicionales como Apache Presto o Apache Flink, envíe una solicitud a emr-feedback@amazon.com.
EMR sin servidor se encuentra disponible en las siguientes regiones de AWS: Asia-Pacífico (Mumbai), Asia-Pacífico (Seúl), Asia-Pacífico (Singapur), Asia-Pacífico (Sídney), Asia-Pacífico (Tokio), Canadá (centro), Europa (Fráncfort), Europa (Irlanda), Europa (Londres), Europa (París), Europa (Estocolmo), América del Sur (São Paulo), Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Oeste de EE. UU. (Norte de California) y Oeste de EE. UU. (Oregón).
Amazon EMR brinda la opción de ejecutar aplicaciones en clústeres basados en EC2, clústeres de EKS, Outposts o sin servidor. Los clústeres de EMR en EC2 son adecuados para clientes que necesitan el máximo control y flexibilidad para ejecutar su aplicación. Con EMR en los clústeres de EC2, los clientes pueden elegir el tipo de instancia de EC2 para satisfacer las necesidades de rendimiento específicas de la aplicación, personalizar la AMI de Linux, personalizar la configuración de la instancia de EC2, personalizar y ampliar los marcos de código abierto e instalar software personalizado adicional en las instancias del clúster. Amazon EMR en EKS es adecuado para clientes que quieren estandarizar EKS para administrar clústeres entre aplicaciones o usar diferentes versiones de un marco de código abierto en el mismo clúster. Amazon EMR en AWS Outposts es para clientes que quieren ejecutar EMR más cerca de su centro de datos, dentro de Outpost. EMR sin servidor es adecuado para clientes que quieren evitar la administración y operación de clústeres y prefieren ejecutar aplicaciones utilizando marcos de código abierto.
|
Característica |
|
|
Amazon EMR en EKS |
|
|
|
|
S |
|
Resistencia a los errores de la zona de disponibilidad |
|
|
S |
|
Escalar automáticamente los recursos hacia arriba y hacia abajo según sea necesario |
|
|
S |
|
Cifrado de datos en reposo |
|
|
S |
|
|
|
Spark |
|
|
|
|
|
N |
|
Compatibilidad para Apache Hudi y Apache Iceberg |
S |
S |
S |
|
Integración con Apache Ranger para control de permisos de tabla y columna |
|
|
N |
|
Personalizar imágenes del sistema operativo |
|
|
S |
|
Personalizar el marco de código abierto instalado |
S |
S |
S |
|
Personalizar y cargar bibliotecas y dependencias adicionales |
S |
S |
S |
|
Ejecutar cargas de trabajo desde SageMaker Studio como parte del flujo de trabajo de machine learning (ML) |
N |
|
N |
|
Conectarse a cuadernos de Jupyter autoalojados |
N |
S |
S |
|
Crear y organizar canalizaciones con Apache Airflow y Amazon Managed Workflows for Apache Airflow (MWAA) |
|
|
S |
|
Crear y organizar canalizaciones con AWS Step Functions |
S |
|
S |
EMR sin servidor es compatible con las etiquetas de versión 6.6 y posteriores de EMR. Con EMR sin servidor, obtiene el mismo tiempo de ejecución de EMR con rendimiento optimizado disponible en otras opciones de implementación de EMR, que es 100 % compatible con API con marcos estándar de código abierto.
BilledResourceUtilization solo tiene en cuenta la duración durante la cual se utilizó la capacidad preinicializada para el trabajo y no tiene en cuenta el tiempo de inactividad de dicha capacidad.
Si la duración del tiempo de ejecución de un trabajador es inferior a 60 segundos, BilledResourceUtilization lo contaría como 60 segundos, mientras que TotalResourceUtilization lo redondearía al segundo más cercano. Además, BilledResourceUtilization excluye 20 GB de almacenamiento gratuito del cálculo.
Con Amazon EMR sin servidor, puede crear una o más aplicaciones EMR sin servidor que utilizan marcos de análisis de código abierto. Para crear una aplicación, debe especificar los siguientes atributos: 1) la versión de lanzamiento de Amazon EMR para la versión del marco de código abierto que quiere usar y 2) los motores de análisis específicos que quiere que use su aplicación, como Apache Spark 3.1 o Apache Hive 3.0. Después de crear una aplicación, puede comenzar a ejecutar sus trabajos de procesamiento de datos o solicitudes interactivas a su aplicación.
Una aplicación EMR sin servidor utiliza trabajadores internamente para ejecutar sus cargas de trabajo. Cuando se envía un trabajo, EMR sin servidor calcula los recursos necesarios para el trabajo y programa a los trabajadores. EMR sin servidor divide sus cargas de trabajo en tareas, aprovisiona y configura a los trabajadores con el marco de código abierto y los retira cuando el trabajo se completa. EMR sin servidor escala automáticamente a los trabajadores hacia arriba o hacia abajo según la carga de trabajo y el paralelismo requerido en cada etapa del trabajo, lo que elimina la necesidad de estimar la cantidad de trabajadores necesarios para ejecutar sus cargas de trabajo. El tamaño predeterminado de estos trabajadores se basa en su tipo de aplicación y en la versión de lanzamiento de Amazon EMR. Puede anular estos tamaños al programar la ejecución de un trabajo.
Con EMR sin servidor, puede especificar la cantidad mínima y máxima de trabajadores simultáneos y la configuración de vCPU y memoria para los trabajadores. También puede establecer los límites de capacidad máxima en los recursos de la aplicación para controlar los costos.
Considere la posibilidad de crear varias aplicaciones al llevar a cabo cualquiera de las siguientes acciones:
-
Uso de diferentes marcos de código abierto
-
Uso de diferentes versiones de marcos de código abierto para diferentes casos de uso
-
Pruebas A/B al actualizar de una versión a otra
-
Mantenimiento de entornos lógicos separados para escenarios de prueba y producción
-
Proporcionar entornos lógicos separados para diferentes equipos con controles de costos independientes y seguimiento de uso
-
Separación de aplicaciones de diferentes líneas de negocio
Sí, puede modificar las propiedades de la aplicación, como la capacidad inicial, los límites de capacidad máxima y la configuración de la red mediante EMR Studio o la llamada a la API o la CLI de actualización de la aplicación.
Una aplicación EMR sin servidor sin trabajadores preinicializdos tarda hasta 120 segundos en determinar los recursos necesarios y aprovisionarlos. EMR sin servidor proporciona una característica opcional que mantiene a los trabajadores inicializados y listos para responder en segundos, lo que crea efectivamente un grupo de trabajadores de guardia para una aplicación. Esta función se denomina capacidad preinicializada y se puede configurar para cada aplicación al configurar el parámetro de capacidad inicial de una aplicación.
La capacidad preinicializada permite que los trabajos comiencen de inmediato, lo que la hace ideal para implementar trabajos urgentes. Puede especificar la cantidad de trabajadores que quiere preinicializar cuando inicia una aplicación EMR sin servidor. Posteriormente, cuando los usuarios envían trabajos, los trabajadores preinicializados se pueden usar para iniciar inmediatamente los trabajos. Si el trabajo requiere más trabajadores de los que ha elegido para preinicializar, EMR sin servidor agrega automáticamente más trabajadores (hasta el límite máximo simultáneo que especifique). Una vez que finaliza el trabajo, EMR sin servidor vuelve automáticamente a mantener a los trabajadores preinicializados que especificó. Los trabajadores se apagan automáticamente si han estado inactivos durante 15 minutos. Puede cambiar el tiempo de inactividad predeterminado para su aplicación con la API de actualización de la aplicación o EMR Studio.
Puede enviar y administrar trabajos sin servidor de EMR mediante EMR Studio, el SDK o la CLI o nuestros conectores Apache Airflow.
Para PySpark, puede empaquetar sus dependencias de Python usando virtualenv y pasar el archivo de almacenamiento usando la opción --archives, que permite a sus trabajadores usar las dependencias durante la ejecución del trabajo. Para Scala o Java, puede empaquetar sus dependencias como archivos jar, cargarlos en Amazon S3 y pasarlos mediante las opciones --jars o --packages con la ejecución de su trabajo EMR sin servidor.
EMR sin servidor admite UDF basadas en Java. Puede empaquetarlas como archivos jar, cargarlas en S3 y usarlas en sus scripts de Spark o HiveQL.
Consulte la configuración de trabajadores compatibles para obtener más información.
Sí, puede cancelar un trabajo de EMR sin servidor en ejecución desde EMR Studio o mediante la API cancelJobRun o la CLI.
Seleccione la opción de almacenamiento adecuada durante el envío del trabajo para agregar almacenamiento adicional para los trabajadores en EMR sin servidor. EMR sin servidor ofrece dos opciones de almacenamiento efímero:
-
Almacenamiento estándar: esta opción incluye 20 GB de almacenamiento efímero por trabajador de forma predeterminada. Puede personalizarlo durante el envío del trabajo y aumentar la capacidad de almacenamiento de 20 GB a 200 GB por trabajador.
-
Almacenamiento en disco optimizado por aleatorización: esta opción proporciona hasta 2 TB de almacenamiento efímero por trabajador, optimizado para cargas de trabajo de aleatorización intensiva.
Puede encontrar muestras de código de EMR sin servidor en nuestro repositorio de GitHub.
EMR sin servidor ofrece dos opciones de trabajadores: trabajadores bajo demanda y trabajadores preinicializados.
Los trabajadores bajo demanda se lanzan solo cuando se los necesita para un trabajo y se liberan automáticamente cuando el trabajo se completa. Esto le ayuda a ahorrar costos al pagar solo por los recursos que utiliza y a evitar costos adicionales por la capacidad de inactividad. Los trabajadores bajo demanda amplían o reducen la aplicación en función de la carga de trabajo, por lo que no tiene que preocuparse por el aprovisionamiento excesivo o insuficiente de los recursos.
Los trabajadores preinicializados son una función opcional que permite mantener a los trabajadores preparados para responder en cuestión de segundos. Esto crea, de manera efectiva, un grupo cálido de trabajadores para una aplicación. Esto permite que los trabajos se inicien al instante, lo que lo hace ideal para aplicaciones iterativas y trabajos urgentes.
Sí, es posible configurar aplicaciones de EMR sin servidor en varias AZ. El proceso para configurar varias AZ depende del tipo de trabajadores que utilice.
Cuando solo se utilizan trabajadores bajo demanda, EMR sin servidor distribuye los trabajos en varias AZ de forma predeterminada, pero cada trabajo se ejecuta solo en una AZ. Puede elegir qué AZ usar al asociar subredes a las AZ. Si una AZ falla, EMR sin servidor ejecuta automáticamente su trabajo en otra AZ en buen estado.
Cuando se utilizan trabajadores preinicializados, EMR sin servidor selecciona una AZ en buen estado de las subredes que usted especifica. Los trabajos se presentan en esa AZ hasta que detenga la aplicación. Si una AZ se deteriora, puede reiniciar la aplicación para cambiar a otra AZ en buen estado.
EMR sin servidor solo puede acceder a ciertos recursos de AWS en la misma región cuando está configurada sin conectividad de Virtual Private Cloud (VPC, nube privada virtual). Consulte las consideraciones. Para acceder a los recursos de AWS en una región diferente o a recursos que no sean de AWS, deberá configurar el acceso a la VPC y una puerta de enlace de NAT para dirigirse a los puntos de conexión públicos de los recursos de AWS.
Las métricas de trabajo y aplicación de Amazon EMR sin servidor se publican cada 30 segundos en Amazon CloudWatch.
Desde EMR Studio, puede seleccionar un trabajo de EMR sin servidor en ejecución o completado y luego hacer clic en el botón Spark UI o Tez UI para iniciarlos.
Sí, puede configurar aplicaciones de Amazon EMR sin servidor para acceder a recursos en su propia VPC. Consulte la sección Configuring VPC access en la documentación para obtener más información.
Cada aplicación de EMR sin servidor está aislada de otras aplicaciones y se ejecuta en una Amazon VPC segura.
Amazon EMR sin servidor está introduciendo una nueva cuota de servicio llamada Max que puede tener más de una vCPU por cuenta. Esta cuota basada en vCPU le permite establecer el número máximo de vCPU agregadas que sus aplicaciones pueden escalar verticalmente por región. Según la aplicación de este nivel, las cuotas basadas en trabajadores (número máximo de trabajadores activos) tendrán servicio de soporte técnico hasta el 1 de febrero de 2023.
Puede ver, gestionar y solicitar un aumento de cuota en la consola de administración de Service Quotas de AWS. Para obtener más información, consulte “Requesting a Quota Increase” en la Guía del usuario de Service Quotas.
EMR sin servidor proporciona dos controles de costo: 1/ La cuota máxima de vCPU simultáneas se aplica en todas las aplicaciones EMR sin servidor en una región en su cuenta. 2/ El parámetro maximumCapacity limita la vCPU de una aplicación de EMR sin servidor específica. Debería usar la cuota basada en vCPU para limitar el número máximo de vCPU simultáneas que usa cada aplicación en una región, y la propiedad maximumCapacity para limitar los recursos usados por una aplicación específica. Por ejemplo, si tiene 5 aplicaciones y cada una puede escalar hasta 1000 vCPU, establezca la propiedad maximumCapacity en 1000 vCPU para cada aplicación y configure la cuota de vCPU de la cuenta en 5 * 1000 = 5000 vCPU.
Si supera la cuota de vCPU de su cuenta, EMR sin servidor no tendrá más capacidad. Si intenta crear una aplicación nueva después de sobrepasar la cuota, el proceso de creación de la aplicación no se completará y mostrará el mensaje de error: “No se pudo crear la aplicación, ya que ha excedido el servicio de cuota máxima de vCPU simultáneas por cuenta. Puede ver y gestionar su cuota de servicio usando la consola de Service Quotas de AWS”. Si crea una tarea nueva después de sobrepasar la cuota, la tarea no se completará y mostrará el mensaje de error: “No se pudo crear la tarea, ya que ha excedido el servicio de cuota máxima de vCPU simultáneas por cuenta. Puede ver y gestionar su cuota de servicio usando la consola de Service Quotas de AWS”. Consulte la documentación para obtener más detalles.
Amazon EMR sin servidor puede ayudarle a ahorrar costos de tres maneras. En primer lugar, no hay sobrecarga operativa de administrar, proteger y escalar clústeres. En segundo lugar, EMR sin servidor escala automáticamente a los trabajadores en cada etapa del procesamiento de su trabajo y los reduce cuando no son necesarios. Se le cobra por los recursos agregados de vCPU, memoria y almacenamiento utilizados desde el momento en que un trabajador comienza a ejecutarse hasta que se detiene, redondeado al segundo más cercano con un mínimo de 1 minuto. Por ejemplo, su trabajo puede requerir 10 trabajadores durante los primeros 10 minutos de procesamiento del trabajo y 50 trabajadores durante los próximos 5 minutos. Con el escalado automático detallado, incurre en costos para solo 10 trabajadores por 10 minutos y 50 trabajadores por 5 minutos. Como resultado, no tiene que pagar por recursos infrautilizados. En tercer lugar, EMR sin servidor incluye el tiempo de ejecución optimizado para el rendimiento de Amazon EMR para Apache Spark y Apache Hive, y Presto. El tiempo de ejecución de Amazon EMR es compatible con API y es más del doble de rápido que los motores de análisis estándar de código abierto, por lo que sus trabajos se ejecutan más rápido e incurren en menos costos informáticos.
Depende de su EMR actual sobre la utilización del clúster de EC2. Si está ejecutando clústeres de EMR con instancias bajo demanda de EC2, EMR sin servidor ofrecerá un costo total de propiedad (TCO) más bajo si el uso de su clúster actual es inferior al 70 %. Si utiliza EC2 Savings Plans, EMR sin servidor ofrecerá un TCO más bajo si el uso de su clúster actual es inferior al 50 %. Y si utiliza instancias de spot de EC2, Amazon EMR en EC2 y Amazon EMR en EKS seguirán siendo más rentables.
Sí, si no detiene a los trabajadores después de que se complete un trabajo, incurrirá en cargos sobre los trabajadores preinicializados.
Para PySpark, puede empaquetar sus dependencias de Python usando virtualenv y pasar el archivo de almacenamiento usando la opción --archives, que permite a sus trabajadores usar las dependencias durante la ejecución del trabajo. Para Scala o Java, puede empaquetar sus dependencias como archivos jar, cargarlos en Amazon S3 y pasarlos mediante las opciones --jars o --packages con la ejecución de su trabajo EMR sin servidor.
Para PySpark, puede empaquetar sus dependencias de Python usando virtualenv y pasar el archivo de almacenamiento usando la opción --archives, que permite a sus trabajadores usar las dependencias durante la ejecución del trabajo. Para Scala o Java, puede empaquetar sus dependencias como archivos jar, cargarlos en Amazon S3 y pasarlos mediante las opciones --jars o --packages con la ejecución de su trabajo EMR sin servidor.
Amazon EMR sin servidor elimina el aprovisionamiento de almacenamiento local para las cargas de trabajo de Apache Spark, lo que reduce los costos de procesamiento de datos hasta en un 20 % y evita que se produzcan errores en los trabajos debido a las restricciones de capacidad del disco. EMR sin servidor gestiona automáticamente las operaciones de datos intermedios, como la mezcla, sin necesidad de tomar ninguna decisión sobre la infraestructura. Al gestionar automáticamente los datos intermedios de forma independiente de los trabajadores de computación, esta optimización permite que la asignación dinámica de recursos (DRA) de Spark libere los recursos de computación en el momento en que ya no sean necesarios para el procesamiento, en lugar de mantenerlos en funcionamiento solo para conservar los datos locales temporales. Esta mejora automática proporciona una mayor elasticidad para las cargas de trabajo de transformación de gran alcance, como las agregaciones de gran tamaño, las uniones y los análisis con gran cantidad de clasificaciones, lo que permite que los recursos de computación se escalen y reduzcan verticalmente de forma dinámica en las distintas etapas del trabajo sin verse limitados por los datos almacenados localmente.
Solo tiene que activarla si utiliza la versión 7.12 o posterior de EMR. Los trabajos de Spark se beneficiarán automáticamente de una gestión de datos intermedios optimizada sin que tenga que configurar nada. Puede supervisar sus trabajos en tiempo real con la interfaz de usuario de Spark Live y ver métricas detalladas de mezclas y volcados por etapa de los trabajos completados en Spark History Server.
Los datos intermedios solo se almacenan mientras se ejecuta el trabajo y se eliminan automáticamente cuando este finaliza, lo que garantiza que no se conserven datos más allá del ciclo de vida del trabajo.
Esta optimización automática mantiene los mismos estándares de seguridad de nivel empresarial que EMR sin servidor a través de varias capas de protección. Todos los datos se cifran tanto en tránsito entre la aplicación de EMR sin servidor y la capa de procesamiento de datos intermedia como en reposo mientras están almacenados temporalmente, mediante claves de cifrado administradas de AWS. Esta capacidad impone un aislamiento estricto de los datos y un control de acceso al almacenar los datos intermedios en identificadores específicos del trabajo dentro de su espacio de nombres, lo que garantiza que únicamente su trabajo específico pueda acceder a los datos. Los controles de acceso y permisos de EMR sin servidor existentes siguen aplicándose, por lo que los datos que se rigen por las políticas de tablas o de Lake Formation permanecen totalmente protegidos. Para mejorar la seguridad, EMR sin servidor utiliza un rol propiedad del servicio para gestionar el procesamiento de datos intermedios en lugar del rol de ejecución del trabajo, lo que evita la escalada de privilegios o el acceso entre cuentas no autorizado. Si se detecta un error en algún control de seguridad, el trabajo se detiene de inmediato para garantizar que los datos permanezcan protegidos en todo momento.