Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué...

453
Amazon EMR Guía de administración

Transcript of Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué...

Page 1: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMRGuía de administración

Page 2: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

Amazon EMR: Guía de administraciónCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

Table of Contents¿Qué es Amazon EMR? ...................................................................................................................... 1

Información general .................................................................................................................... 1Descripción de los clústeres y los nodos ................................................................................ 1Envío de trabajo a un clúster ............................................................................................... 2Procesamiento de datos ...................................................................................................... 2Descripción del ciclo de vida del clúster ................................................................................. 4

Beneficios .................................................................................................................................. 4Ahorro de costos ................................................................................................................ 5Integración con AWS .......................................................................................................... 5Implementación .................................................................................................................. 5Escalabilidad y flexibilidad .................................................................................................... 6Fiabilidad ........................................................................................................................... 6Seguridad .......................................................................................................................... 6Monitorización .................................................................................................................... 8Interfaces de administración ................................................................................................. 8

Arquitectura ............................................................................................................................... 8Almacenamiento ................................................................................................................. 9Administración de recursos de clúster .................................................................................... 9Marcos de procesamiento de datos ..................................................................................... 10Aplicaciones y programas .................................................................................................. 10

Introducción ..................................................................................................................................... 11Paso 1: Configurar los requisitos previos ...................................................................................... 11

Registrarse en AWS .......................................................................................................... 11Crear un bucket de Amazon S3 .......................................................................................... 12Crear un par de claves de Amazon EC2 .............................................................................. 12

Paso 2: Lanzar el clúster ........................................................................................................... 12Lanzar el clúster de ejemplo ............................................................................................... 12Resumen de las opciones rápidas ....................................................................................... 13

Paso 3: Permitir el acceso SSH .................................................................................................. 18Paso 4: Ejecutar un script de Hive para procesar los datos ............................................................. 20

Descripción de los datos y del Script ................................................................................... 20Enviar el script de Hive como paso ..................................................................................... 21Ver los resultados ............................................................................................................. 22

Paso 5: Eliminar los recursos ..................................................................................................... 23Uso de los blocs de notas de EMR ..................................................................................................... 24

Consideraciones ....................................................................................................................... 24Requisitos del clúster ........................................................................................................ 24Diferencias en capacidades por versión de clúster ................................................................. 25Límites para blocs de notas asociadas de forma simultánea .................................................... 26Versiones de bloc de notas de Jupyter y Python ................................................................... 26...................................................................................................................................... 26

Creación de un bloc de notas ..................................................................................................... 26Uso de los blocs de notas ......................................................................................................... 28

Descripción de los estados del bloc de notas ........................................................................ 28Uso del editor de blocs de notas ......................................................................................... 29Cambio de clúster ............................................................................................................. 30Eliminación de blocs de notas y archivos de blocs de notas .................................................... 31Uso compartido de archivos de blocs de notas ...................................................................... 31

Suplantación de usuario para Spark ............................................................................................ 32Configuración de la suplantación de usuarios de Spark .......................................................... 32Uso del widget de monitorización de trabajos de Spark .......................................................... 33

Seguridad ................................................................................................................................ 34Instalación y uso de kernels y bibliotecas ..................................................................................... 34

Instalación de kernels y bibliotecas de Python en un nodo maestro de clúster ............................. 34

iii

Page 4: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

Uso de bibliotecas adaptadas al bloc de notas ...................................................................... 35Asociación de repositorios basados en Git con Cuadernos de EMR .................................................. 36

Requisitos previos y consideraciones ................................................................................... 37Añadir un repositorio basado en Git a Amazon EMR .............................................................. 37Actualizar o eliminar un repositorio basado en Git .................................................................. 38Vincular o desvincular un repositorio basado en Git ............................................................... 39Creación de un nuevo bloc de notas con un repositorio de Git asociado .................................... 40Uso de repositorios de Git en un bloc de notas ..................................................................... 41

Planificar y configurar clústeres ........................................................................................................... 42Configurar la ubicación del clúster y el almacenamiento de datos ..................................................... 42

Elija una región de AWS. ................................................................................................... 42Trabajo con almacenamiento y sistemas de archivos .............................................................. 44Preparar datos de entrada ................................................................................................. 46Configurar una ubicación de salida ...................................................................................... 55

Planificación y configuración de nodos principales ......................................................................... 60Aplicaciones y características compatibles ............................................................................ 60Lanzamiento de un clúster de EMR con varios nodos principales ............................................. 66Consideraciones y prácticas recomendadas .......................................................................... 68

Clústeres de EMR en AWS Outposts ........................................................................................... 69Requisitos previos ............................................................................................................. 69Limitaciones ..................................................................................................................... 69Consideraciones sobre la conectividad de red ....................................................................... 70Creación de un clúster de Amazon EMR en AWS Outposts ..................................................... 70

Clústeres de EMR en Zonas locales de AWS ............................................................................... 71Tipos de instancias admitidos ............................................................................................. 71Creación de un clúster de Amazon EMR en Zonas locales ...................................................... 71

Configuración de Docker ............................................................................................................ 72Registros de Docker .......................................................................................................... 73Configuración de registros de Docker .................................................................................. 74Configuración de YARN para acceder a Amazon ECR ........................................................... 74

Uso del sistema de archivos de EMR (EMRFS) ............................................................................. 75Vista consistente ............................................................................................................... 76Autorización de acceso a los datos de EMRFS en Amazon S3 ................................................ 92Especificación del cifrado de Amazon S3 mediante propiedades de EMRFS ............................... 93

Control de la terminación de los clústeres ................................................................................... 101Configuración de un clúster para la terminación automática o para continuar ............................ 101Uso de la protección de terminación .................................................................................. 102

Uso de las AMI ....................................................................................................................... 107Uso de la AMI predeterminada .......................................................................................... 108Uso de una AMI personalizada ......................................................................................... 109Especificación del tamaño de volumen de dispositivo raíz de Amazon EBS .............................. 114

Configuración de software de clúster .......................................................................................... 116Creación de acciones de arranque para instalar software adicional ......................................... 116

Configuración del hardware y las redes de los clústeres ................................................................ 120Descripción de los tipos de nodos ..................................................................................... 121Configuración de instancias EC2 ....................................................................................... 123Configuración de redes .................................................................................................... 129Configuración de flotas de instancias o grupos de instancias .................................................. 140Directrices y prácticas recomendadas ................................................................................ 152

Configurar el registro de clúster y depuración .............................................................................. 157Archivos de registro predeterminados ................................................................................. 158Archivado de archivos de registro en Amazon S3 ................................................................ 158Habilitar la herramienta de depuración ............................................................................... 161Información de opción de depuración ................................................................................. 162

Etiquetado de clústeres ............................................................................................................ 163Restricciones de las etiquetas ........................................................................................... 164Recursos de etiqueta para facturación ................................................................................ 164

iv

Page 5: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

Añadir etiquetas a un nuevo clúster ................................................................................... 164Añadir etiquetas a un clúster existente ............................................................................... 165Ver etiquetas en un clúster ............................................................................................... 166Eliminar etiquetas de un clúster ........................................................................................ 167

Integración de controladores y aplicación de terceros ................................................................... 167Uso de las herramientas de inteligencia empresarial con Amazon EMR ................................... 167

Seguridad ...................................................................................................................................... 169Configuraciones de seguridad ................................................................................................... 169Protección de los datos ............................................................................................................ 169AWS Identity and Access Management por Amazon EMR ............................................................. 169Kerberos ................................................................................................................................ 170Lake Formation ....................................................................................................................... 170Secure Socket Shell (SSH) ....................................................................................................... 170Grupos de seguridad de Amazon EC2 ....................................................................................... 170Actualizaciones de AMI de Amazon Linux predeterminadas ........................................................... 170Uso de configuraciones de seguridad para configurar la seguridad del clúster ................................... 171

Creación de una configuración de seguridad ....................................................................... 171Especificación de una configuración de seguridad para un clúster ........................................... 188

Protección de los datos ............................................................................................................ 189Cifrar datos en reposo y en tránsito ................................................................................... 190

IAM por Amazon EMR ............................................................................................................. 199Público .......................................................................................................................... 199Autenticación con identidades ........................................................................................... 199Administración de acceso mediante políticas ....................................................................... 201Funcionamiento de Amazon EMR con IAM ......................................................................... 203Configurar roles de servicio para Amazon EMR ................................................................... 205Ejemplos de políticas basadas en identidad ........................................................................ 231

Autenticarse en nodos de clúster ............................................................................................... 244Uso de un par de claves de Amazon EC2 para las credenciales de SSH .................................. 244Uso de la autenticación Kerberos ...................................................................................... 244

Integración de Amazon EMR con AWS Lake Formation (Beta) ....................................................... 272Información general sobre los conceptos de la integración de Amazon EMR con Lake Formation .. 273Aplicaciones y características compatibles .......................................................................... 277Antes de empezar ........................................................................................................... 278Lanzar un clúster de Amazon EMR con Lake Formation. ....................................................... 285

Control del tráfico de red con grupos de seguridad ....................................................................... 291Uso de grupos de seguridad administrados por Amazon EMR ................................................ 292Uso de grupos de seguridad adicionales ............................................................................ 298Especificación de grupos de seguridad ............................................................................... 298Grupos de seguridad de Cuadernos de EMR ...................................................................... 300Uso de Block Public Access ............................................................................................. 302

Validación de la conformidad .................................................................................................... 304Resiliencia .............................................................................................................................. 304Seguridad de la infraestructura .................................................................................................. 304

Conexión a Amazon EMR mediante un punto de enlace de la VPC de tipo interfaz .................... 305Administración de clústeres .............................................................................................................. 309

Ver y monitorizar un clúster ...................................................................................................... 309Ver el estado y los detalles del clúster ............................................................................... 309Depuración de pasos mejorada ......................................................................................... 314Ver el historial de aplicaciones .......................................................................................... 316Ver archivos de registro ................................................................................................... 320Ver instancias de clúster en Amazon EC2 .......................................................................... 324Eventos y métricas de CloudWatch .................................................................................... 325Ver métricas de aplicaciones de clúster con Ganglia ............................................................ 351Registro de llamadas a la API de Amazon EMR en AWS CloudTrail ........................................ 351

Conectar al clúster .................................................................................................................. 353Conexión al nodo principal utilizando SSH .......................................................................... 354

v

Page 6: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

Ver las interfaces web alojadas en clústeres de Amazon EMR ............................................... 359Terminar un clúster ................................................................................................................. 368

Terminar un clúster utilizando la consola ............................................................................ 368Terminar un clúster utilizando la AWS CLI .......................................................................... 369Terminar un clúster utilizando la API .................................................................................. 370

Escalado de recursos de clúster ................................................................................................ 370Uso del escalado administrado por EMR en Amazon EMR .................................................... 371Uso del escalado automático con una política personalizada para grupos de instancias .............. 382Cambiar manualmente el tamaño de un clúster en ejecución ................................................. 391Reducción de escala del clúster ........................................................................................ 396

Clonación de un clúster utilizando la consola .............................................................................. 398Enviar trabajo a un clúster ........................................................................................................ 398

Trabajo con pasos utilizando la AWS CLI y la consola .......................................................... 399Enviar trabajos de Hadoop interactivamente ........................................................................ 403Añadir más de 256 pasos a un clúster ............................................................................... 405

Automatización de clústeres periódicos con AWS Data Pipeline ..................................................... 405Solucionar problemas de un clúster ................................................................................................... 407

¿Qué herramientas hay disponibles para resolución de problemas? ................................................ 407Herramientas para mostrar detalles de clúster ..................................................................... 407Herramientas para ver archivos de registro ......................................................................... 408Herramientas para monitorizar el rendimiento del clúster ....................................................... 408

Describe cómo visualizar y reiniciar Amazon EMR y los procesos de las aplicaciones (demonios) ......... 409Visualizar procesos en ejecución ....................................................................................... 409Reiniciar procesos ........................................................................................................... 409

Solucionar problemas de clúster con errores ............................................................................... 410Paso 1: recopilar datos sobre el problema .......................................................................... 411Paso 2: comprobar el entorno ........................................................................................... 411Paso 3: compruebe el último cambio de estado ................................................................... 412Paso 4: examine los archivos de registro ............................................................................ 412Paso 5: compruebe el clúster paso a paso ......................................................................... 413

Solucionar problemas de un clúster lento .................................................................................... 414Paso 1: Recopilar datos sobre el problema ......................................................................... 414Paso 2: Comprobar el entorno .......................................................................................... 415Paso 3: Examinar los archivos de registro .......................................................................... 416Paso 4: Consultar el clúster y el estado de la instancia ......................................................... 417Paso 5: Comprobar los grupos arrestados .......................................................................... 418Paso 6: Revisar los ajustes de configuración ....................................................................... 419Paso 7: Examinar los datos de entrada .............................................................................. 420

Errores comunes en Amazon EMR ............................................................................................ 420Errores de entrada y salida .............................................................................................. 421Errores de permisos ........................................................................................................ 423Errores de recursos ......................................................................................................... 424Errores de clúster de streaming ........................................................................................ 431Errores de clúster JAR personalizados ............................................................................... 433Errores de clúster de Hive ................................................................................................ 433Errores de VPC .............................................................................................................. 434Errores de AWS GovCloud (US-West) ................................................................................ 437Otros problemas ............................................................................................................. 437

Solucionar problemas de un clúster de Lake Formation (Beta) ....................................................... 437Vencimiento de la sesión ................................................................................................. 437No hay permisos para usuario en la tabla precisada ............................................................. 438Inserción, creación y alteración de las tablas: no se admite en la beta ..................................... 438

Escribir aplicaciones que lanzan y administran clústeres ....................................................................... 439Ejemplo de código fuente de Java de Amazon EMR ..................................................................... 439Conceptos comunes para llamadas al API .................................................................................. 442

Puntos de enlace para Amazon EMR ................................................................................. 442Especificar parámetros de clúster en Amazon EMR .............................................................. 442

vi

Page 7: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

Zonas de disponibilidad en Amazon EMR ........................................................................... 443Cómo utilizar archivos y bibliotecas adicionales en clústeres de Amazon EMR .......................... 443

Uso de los SDK para llamar a las API de Amazon EMR ............................................................... 443Uso de AWS SDK para Java para crear un clúster de Amazon EMR ....................................... 444

AWS glossary ................................................................................................................................. 446

vii

Page 8: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónInformación general

¿Qué es Amazon EMR?Amazon EMR es una plataforma de clúster administrada que simplifica la ejecución de los marcos detrabajo de Big Data, tales como Apache Hadoop y Apache Spark en AWS para procesar y analizargrandes cantidades de datos. Mediante el uso de estos marcos de trabajo y proyectos de código abiertorelacionados, como Apache Hive y Apache Pig, puede procesar datos para fines de análisis y cargas detrabajo de inteligencia empresarial. Además, puede utilizar Amazon EMR para transformar y trasladargrandes cantidades de datos hacia y desde otros almacenes de datos y bases de datos de AWS, talescomo Amazon Simple Storage Service (Amazon S3) y Amazon DynamoDB.

Si está utilizando Amazon EMR por primera vez, le recomendamos que comience leyendo lo siguiente,además de esta sección:

• Amazon EMR: esta página de servicio ofrece las características destacadas, los detalles del producto yla información de precios de Amazon EMR.

• Introducción: análisis de big data con Amazon EMR (p. 11): estos tutoriales le permitirán empezar autilizar Amazon EMR rápidamente.

En esta sección• Información general de Amazon EMR (p. 1)• Beneficios de utilizar Amazon EMR (p. 4)• Información general sobre la arquitectura de Amazon EMR (p. 8)

Información general de Amazon EMREn este tema se ofrece información general de los clústeres de Amazon EMR, incluyendo cómo enviartrabajo a un clúster, la forma en que se procesan los datos y los distintos estados por los que pasa elclúster durante el procesamiento.

En este tema• Descripción de los clústeres y los nodos (p. 1)• Envío de trabajo a un clúster (p. 2)• Procesamiento de datos (p. 2)• Descripción del ciclo de vida del clúster (p. 4)

Descripción de los clústeres y los nodosEl componente central de Amazon EMR es el clúster. Un clúster es un conjunto de instancias AmazonElastic Compute Cloud (Amazon EC2). Cada instancia del clúster se denomina nodo. Cada nodo cumpleuna función dentro del clúster, que se conoce como tipo de nodo. Amazon EMR también instala distintoscomponentes de software en cada tipo de nodo, proporcionando a cada nodo una función en unaaplicación distribuida, como Apache Hadoop.

Los tipos de nodos en Amazon EMR son los siguientes:

• Nodo principal: un nodo que administra el clúster ejecutando componentes de software para coordinar ladistribución de datos y las tareas entre los demás nodos para su procesamiento. El nodo principal realiza

1

Page 9: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEnvío de trabajo a un clúster

un seguimiento del estado de las tareas y monitoriza el estado del clúster. Cada clúster tiene un nodoprincipal, y se puede crear un clúster de un solo nodo con solo el nodo principal.

• Nodo secundario: un nodo con componentes de software que ejecutan tareas y almacenan datos en elHadoop Distributed File System (HDFS) del clúster. Los clústeres de varios nodos tienen al menos unnodo secundario.

• Nodo de tareas: un nodo con componentes de software que solo ejecuta tareas y no almacena datos enHDFS. Los nodos de tareas son opcionales.

El siguiente diagrama representa un clúster con un nodo principal y cuatro nodos secundarios.

Envío de trabajo a un clústerCuando se ejecuta un clúster en Amazon EMR, dispone de varias opciones sobre cómo especificar eltrabajo que hay que realizar.

• Proporcionar toda la definición del trabajo que hay que realizar en funciones que debe especificarcomo pasos al crear un clúster. Esto se realiza normalmente para clústeres que procesan una cantidaddefinida de datos y, a continuación, terminan cuando se completa el procesamiento.

• Crear un clúster de ejecución prolongada y utilizar la consola de Amazon EMR, la API de AmazonEMR o la AWS CLI para enviar pasos, que pueden contener uno o varios trabajos. Para obtener másinformación, consulte Enviar trabajo a un clúster (p. 398).

• Crear un clúster, conectarse al nodo principal y a los demás nodos según sea necesario medianteSSH y utilizar las interfaces que proporcionan las aplicaciones instaladas para realizar tareas y enviarconsultas, ya sea de forma interactiva o con scripts. Para obtener más información, consulte Guía depublicación de Amazon EMR.

Procesamiento de datosAl lanzar el clúster, puede elegir los marcos de trabajo y las aplicaciones que desea instalar para susnecesidades de procesamiento de datos. Para procesar datos en el clúster de Amazon EMR, puede enviar

2

Page 10: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónProcesamiento de datos

los trabajos o las consultas directamente a las aplicaciones instaladas, o puede ejecutar pasos en elclúster.

Envío de trabajos directamente a las aplicacionesPuede enviar trabajos e interactuar directamente con el software que está instalado en el clúster deAmazon EMR. Para ello, normalmente se conecta al nodo principal a través de una conexión segura yaccede a las interfaces y herramientas que están disponibles para que el software se ejecute directamenteen el clúster. Para obtener más información, consulte Conectar al clúster (p. 353).

Ejecución de pasos para procesar datosPuede enviar uno o varios pasos ordenados a un clúster de Amazon EMR. Cada paso es una unidadde trabajo que contiene instrucciones para manipular los datos para su procesamiento por el softwareinstalado en el clúster.

A continuación se muestra un proceso de ejemplo que utiliza cuatro pasos:

1. Enviar un conjunto de datos de entrada para procesamiento.2. Procesar la salida del primer paso mediante un programa de Pig.3. Procesar un segundo conjunto de datos de entrada mediante un programa de Hive.4. Escribir un conjunto de datos de salida.

Por lo general, cuando se procesan datos en Amazon EMR, la entrada son datos almacenados comoarchivos en el sistema de archivos subyacente elegido, como Amazon S3 o HDFS. Estos datos setransfieren de un paso al siguiente en la secuencia de procesamiento. El último paso escribe los datos desalida en una ubicación especificada, como un bucket de Amazon S3.

Los pasos se ejecutan en la siguiente secuencia:

1. Se envía una solicitud para empezar los pasos de procesamiento.2. El estado de todos los pasos se establece en PENDING (Pendiente).3. Cuando se inicia el primer paso de la secuencia, su estado cambia a RUNNING (En ejecución). Los

demás pasos permanecen en el estado PENDING (Pendiente).4. Una vez que finaliza el primer paso, su estado cambia a COMPLETED (Completado).5. El siguiente paso de la secuencia se inicia y su estado cambia a RUNNING (En ejecución). Una vez

finalizado, su estado cambia a COMPLETED (Completado).6. Este patrón se repite para cada paso hasta que se completen todos y el procesamiento finaliza.

El siguiente diagrama representa la secuencia de pasos y cambios de estado de los pasos a medida quese procesan.

Si un paso genera un error durante el procesamiento, su estado cambia a TERMINATED_WITH_ERRORS(Terminado con errores). Puede determinar lo que ocurre para cada paso. De forma predeterminada,los pasos restantes de la secuencia se establecen en CANCELLED (Cancelado) y no se ejecutan.También puede elegir omitir el error y permitir que los pasos restantes continúen o terminar el clústerinmediatamente.

3

Page 11: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDescripción del ciclo de vida del clúster

El siguiente diagrama representa la secuencia de pasos y el cambio de estado predeterminado cuando unpaso produce un error durante el procesamiento.

Descripción del ciclo de vida del clústerUn clúster de Amazon EMR correcto sigue este proceso:

1. Amazon EMR aprovisiona primero instancias EC2 en el clúster para cada instancia de acuerdo consus especificaciones. Para obtener más información, consulte Configuración del hardware y las redesde los clústeres (p. 120). Para todas las instancias, Amazon EMR utiliza la AMI predeterminadade Amazon EMR o la AMI de Amazon Linux personalizada que se especifique. Para obtener másinformación, consulte Uso de una AMI personalizada (p. 109). Durante esta fase, el estado del clústeres STARTING.

2. Amazon EMR ejecuta las acciones de arranque que se especifiquen en cada instancia. Puede utilizaracciones de arranque para instalar aplicaciones personalizadas y realizar las personalizaciones quenecesite. Para obtener más información, consulte Creación de acciones de arranque para instalarsoftware adicional (p. 116). Durante esta fase, el estado del clúster es BOOTSTRAPPING.

3. Amazon EMR instala las aplicaciones nativas que especifique al crear el clúster, tales como Hive,Hadoop, Spark, etc.

4. Cuando las acciones de arranque se han completado correctamente y las aplicaciones nativas se haninstalado correctamente, el estado del clúster es RUNNING. En este punto, puede conectarse a lasinstancias del clúster y el clúster ejecutará por orden todos los pasos que haya especificado al crearel clúster. Puede enviar pasos adicionales, que se ejecutarán después de los pasos anteriores. Paraobtener más información, consulte Trabajo con pasos utilizando la AWS CLI y la consola (p. 399).

5. Una vez que los pasos se han ejecutado correctamente, el clúster pasa al estado WAITING. Si unclúster está configurado para que se termine automáticamente después de que se haya completado elúltimo paso, pasa a un estado SHUTTING_DOWN.

6. Después de que se terminan todas las instancias, el clúster pasa al estado COMPLETED.

Un error durante el ciclo de vida del clúster hace que Amazon EMR termine el clúster y todas susinstancias, a menos que habilite la protección de terminación. Si se termina un clúster debido a un error,todos los datos almacenados en el clúster se eliminan y el estado del clúster se establece en FAILED.Si ha habilitado la protección de terminación, puede recuperar los datos del clúster y después eliminarla protección de terminación y terminar el clúster. Para obtener más información, consulte Uso de laprotección de terminación (p. 102).

Beneficios de utilizar Amazon EMREl uso de Amazon EMR conlleva muchos beneficios. En esta sección se ofrece información general sobreestos beneficios y enlaces a información adicional que le ayudan a seguir explorando.

Temas• Ahorro de costos (p. 5)• Integración con AWS (p. 5)• Implementación (p. 5)• Escalabilidad y flexibilidad (p. 6)

4

Page 12: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAhorro de costos

• Fiabilidad (p. 6)• Seguridad (p. 6)• Monitorización (p. 8)• Interfaces de administración (p. 8)

Ahorro de costosLos precios de Amazon EMR dependen del tipo de instancia y del número de instancias EC2 queimplemente y de la región en la que lance el clúster. Los precios bajo demanda ofrecen tarifas reducidas,pero puede reducir aún más el costo mediante la adquisición de instancias reservadas o instancias despot. Las instancias de spot pueden ofrecer ahorros significativos, de solo una décima parte de los preciosbajo demanda en algunos casos.

Note

Si utiliza Amazon S3, Amazon Kinesis o DynamoDB con el clúster de EMR, hay cargosadicionales por estos servicios que se facturan por separado de su uso de Amazon EMR.

Para obtener más información sobre las opciones de precios y los detalles, consulte Precios de AmazonEMR.

Integración con AWSAmazon EMR se integra con otros servicios de AWS para proporcionar capacidades y funcionalidadesrelacionadas con las redes, el almacenamiento, la seguridad, etc. para el clúster. La siguiente listaproporciona diversos ejemplos de esta integración:

• Amazon EC2 para las instancias que componen los nodos del clúster• Amazon Virtual Private Cloud (Amazon VPC) para configurar la red virtual en la que se lanzan las

instancias• Amazon S3 para almacenar los datos de entrada y de salida• Amazon CloudWatch para monitorizar el rendimiento del clúster y configurar alarmas• AWS Identity and Access Management (IAM) para configurar los permisos• AWS CloudTrail para auditar solicitudes realizadas al servicio• AWS Data Pipeline para programar e iniciar los clústeres

ImplementaciónEl clúster de EMR consta de instancias EC2, que realizan el trabajo que envía a su clúster. Al lanzar elclúster, Amazon EMR configura las instancias con las aplicaciones que elija, como Apache Hadoop oSpark. Elija el tamaño y el tipo de instancia que mejor se adapte a las necesidades de procesamiento desu clúster: procesamiento por lotes, consultas de baja latencia, streaming de datos o almacenamientode datos de gran tamaño. Para obtener más información sobre los tipos de instancias disponibles paraAmazon EMR, consulte Configuración del hardware y las redes de los clústeres (p. 120).

Amazon EMR ofrece distintas formas de configurar el software en su clúster. Por ejemplo, puede instalaruna versión de Amazon EMR con un conjunto seleccionado de aplicaciones que puede incluir marcos detrabajo versátiles como, por ejemplo, Hadoop y aplicaciones como Hive, Pig o Spark. Asimismo, puedeinstalar una de las distintas distribuciones de MapR. Amazon EMR utiliza Amazon Linux, por lo quetambién puede instalar software en el clúster manualmente mediante el administrador de paquetes yum odesde el origen. Para obtener más información, consulte Configuración de software de clúster (p. 116).

5

Page 13: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEscalabilidad y flexibilidad

Escalabilidad y flexibilidadAmazon EMR proporciona flexibilidad para aumentar o reducir el escalado del clúster a medida quecambien sus necesidades informáticas. Puede cambiar el tamaño del clúster para añadir instanciasdurante los picos de cargas de trabajo y eliminar instancias para controlar los costos cuando desaparezcanlos picos de cargas de trabajo. Para obtener más información, consulte Cambiar manualmente el tamañode un clúster en ejecución (p. 391).

Amazon EMR también ofrece la opción de ejecutar varios grupos de instancias, para que puede utilizarinstancias bajo demanda en un grupo para garantizar la potencia de procesamiento junto con lasinstancias de spot en otro grupo para completar los trabajos con mayor rapidez y para reducir costos.También puede combinar diversos tipos de instancias para aprovechar mejor los precios de un tipo deinstancia de spot sobre otros. Para obtener más información, consulte ¿Cuándo se deben utilizar lasinstancias de spot? (p. 153).

Además, Amazon EMR proporciona la flexibilidad necesaria para utilizar diversos sistemas de archivospara sus datos de entrada, de salida e intermedios. Por ejemplo, podría elegir el Hadoop Distributed FileSystem (HDFS), que se ejecuta en los nodos principal y secundarios del clúster para el procesamientode datos que no es necesario almacenar más allá del ciclo de vida del clúster. Podría elegir el sistemade archivos de EMR (EMRFS) para utilizar Amazon S3 como capa de datos para aplicaciones que seejecutan en su clúster para que pueda separar la computación y el almacenamiento, así como paraconservar los datos cuando finaliza el ciclo de vida de su clúster. EMRFS ofrece el beneficio añadidode permitirle aumentar o reducir el escalado de sus necesidades de computación y almacenamiento demanera independiente. Puede escalar sus necesidades informáticas cambiando el tamaño de su clústery puede escalar sus necesidades de almacenamiento mediante el uso de Amazon S3. Para obtener másinformación, consulte Trabajo con almacenamiento y sistemas de archivos (p. 44).

FiabilidadAmazon EMR monitorea los nodos del clúster y termina y sustituye automáticamente una instancia en casode que se produzca algún error.

Amazon EMR proporciona opciones de configuración que controlan cómo se termina el clúster: de formaautomática o manual. Si configura el clúster para terminarlo de forma automática, se termina después deque se completen todos los pasos. Esto se conoce como clúster transitorio. Sin embargo, puede configurarel clúster para que se siga ejecutando una vez completado el procesamiento, para que pueda elegirterminarlo manualmente cuando ya no lo necesite. O bien, puede crear un clúster, interactuar con lasaplicaciones instaladas directamente y, a continuación, terminar el clúster manualmente cuando deje denecesitarlo. Los clústeres de estos ejemplos se denominan clústeres de ejecución prolongada.

Además, puede configurar la protección de terminación para evitar que las instancias del clúster seterminen por errores o problemas durante el procesamiento. Cuando se habilita la protección determinación, puede recuperar los datos desde instancias antes de la terminación. La configuraciónpredeterminada de estas opciones varía en función de si lanza el clúster a través de la consola, la CLI o laAPI. Para obtener más información, consulte Uso de la protección de terminación (p. 102).

SeguridadAmazon EMR utiliza otros servicios de AWS, como IAM y Amazon VPC, así como características talescomo los pares de claves de Amazon EC2, para ayudarle a proteger los clústeres y los datos.

IAMAmazon EMR se integra con IAM para administrar los permisos. Puede definir permisos mediante laspolíticas de IAM, que se asocian a usuarios de IAM o grupos de IAM. Los permisos que defina en lapolítica determinan las acciones que dichos usuarios o miembros del grupo pueden realizar y los recursos

6

Page 14: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónSeguridad

a los que pueden acceder. Para obtener más información, consulte Funcionamiento de Amazon EMR conIAM (p. 203).

Además, Amazon EMR utiliza roles de IAM para el propio servicio de Amazon EMR y el perfil de instanciaEC2 para las instancias. Estos roles conceden permisos al servicio y a las instancias para obtener accesoa otros servicios de AWS en su nombre. Hay un rol predeterminado para el servicio de Amazon EMRy un rol predeterminado para el perfil de instancia EC2. Los roles predeterminados utilizan políticasadministradas de AWS, que se crean automáticamente la primera vez que lanza un clúster de EMRdesde la consola y elige los permisos de forma predeterminada. También puede crear los roles de IAMpredeterminados desde la AWS CLI. Si desea administrar los permisos en lugar de AWS, puede elegirroles personalizados para el servicio y el perfil de instancia. Para obtener más información, consulteConfigurar roles de servicio deIAM para los permisos de Amazon EMR para los servicios y recursos deAWS (p. 205).

Grupos de seguridadAmazon EMR utiliza grupos de seguridad para controlar el tráfico de entrada y salida a sus instancias EC2.Cuando se lanza el clúster, Amazon EMR utiliza un grupo de seguridad para la instancia principal y ungrupo de seguridad compartido por las instancias secundarias o de tareas. Amazon EMR configura lasreglas de grupo de seguridad para garantizar la comunicación entre las instancias del clúster. De formaopcional, puede configurar grupos de seguridad adicionales y asignarlos a sus instancias principales ysecundarias/de tareas si necesita reglas más avanzadas. Para obtener más información, consulte Controldel tráfico de red con grupos de seguridad (p. 291).

CifradoAmazon EMR admite cifrado opcional de Amazon S3 del lado del cliente y del lado del servidor conEMRFS para ayudar a proteger los datos que se almacenan en Amazon S3. Con el cifrado del lado delservidor, Amazon S3 cifra sus datos después de cargarlos.

Con el cifrado del lado cliente, el proceso de cifrado y descifrado se produce en el cliente EMRFS en suclúster de EMR. Puede administrar la clave maestra para el cifrado del lado del cliente mediante AWS KeyManagement Service (AWS KMS) o con su propio sistema de administración de claves.

Para obtener más información, consulte el tema relacionado con el cifrado de datos de Amazon S3 conEMRFS en la Guía de publicación de Amazon EMR.

Amazon VPCAmazon EMR admite el lanzamiento de clústeres en una nube virtual privada (VPC) en Amazon VPC.Una VPC es una red virtual aislada en AWS que ofrece la posibilidad de controlar aspectos avanzadosde la configuración de la red y del acceso. Para obtener más información, consulte Configuración deredes (p. 129).

AWS CloudTrailAmazon EMR se integra con CloudTrail para registrar información sobre las solicitudes realizadas desde lacuenta de AWS o en nombre de ella. Con esta información, puede realizar un seguimiento de quién accedeen cada momento a su clúster y la dirección IP desde la que se ha realizado la solicitud. Para obtener másinformación, consulte Registro de llamadas a la API de Amazon EMR en AWS CloudTrail (p. 351).

Pares de claves de Amazon EC2Puede monitorizar e interactuar con el clúster formando una conexión segura entre el equipo remoto y elnodo principal. Puede utilizar el protocolo de red Secure Shell (SSH) para esta conexión o Kerberos para laautenticación. Si utiliza SSH, se requiere un par de claves de Amazon EC2. Para obtener más información,consulte Uso de un par de claves de Amazon EC2 para las credenciales de SSH (p. 244).

7

Page 15: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónMonitorización

MonitorizaciónPuede utilizar las interfaces de administración y los archivos de registro de Amazon EMR para solucionarproblemas de los clústeres como, por ejemplo, averías o errores. Amazon EMR ofrece la posibilidad dearchivar los archivos de registro en Amazon S3 para que pueda almacenar los registros y solucionarproblemas incluso después de que el clúster termine. Amazon EMR también proporciona una herramientade depuración opcional en la consola de Amazon EMR para examinar los archivos de registro basadaen pasos, trabajos y tareas. Para obtener más información, consulte Configurar el registro de clúster ydepuración (p. 157).

Amazon EMR se integra con CloudWatch para realizar un seguimiento de las métricas de rendimientodel clúster y los trabajos del clúster. Puede configurar alarmas basadas en diversas métricas como,por ejemplo, si el clúster está inactivo o el porcentaje de almacenamiento utilizado. Para obtener másinformación, consulte Monitorización de métricas con CloudWatch (p. 335).

Interfaces de administraciónExisten varias formas en las que puede interactuar con Amazon EMR:

• Console: una interfaz gráfica de usuario que puede utilizar para lanzar y administrar clústeres. Con ella,puede rellenar formularios web para especificar los detalles de los clústeres que lanzar, ver los detallesde clústeres existentes, depurar y terminar clústeres. El uso de la consola es la manera más sencillade empezar a utilizar Amazon EMR; no se requieren conocimientos de programación. La consola estádisponible online en https://console.aws.amazon.com/elasticmapreduce/home.

• AWS Command Line Interface (AWS CLI): una aplicación cliente que se ejecuta en el equipo localpara conectarse a Amazon EMR y crear y administrar clústeres. La AWS CLI contiene un conjuntode comandos con una amplia gama de características específicas de Amazon EMR. Con ella, puedeescribir scripts que automatizan el proceso de lanzamiento y administración de clústeres. Si prefieretrabajar desde una línea de comandos, usar la AWS CLI es la mejor opción. Para obtener másinformación, consulte Amazon EMR en la AWS CLI Command Reference.

• Kit de desarrollo de software (SDK): los SDK proporcionan funciones que llaman a Amazon EMR paracrear y administrar clústeres. Con ellos, puede escribir aplicaciones que automatizan el proceso decreación y administración de clústeres. Utilizar el SDK es la mejor opción para ampliar o personalizar lafuncionalidad de Amazon EMR. Amazon EMR está disponible actualmente en los SDK siguientes: Go,Java, .NET (C# y VB.NET), Node.js, PHP, Python y Ruby. Para obtener más información sobre estosSDK, consulte Herramientas para AWS y Código de muestra y bibliotecas de Amazon EMR.

• API de servicios web: una interfaz de bajo nivel que puede utilizar para llamar al servicio webdirectamente, utilizando JSON. El uso de la API es la mejor opción para crear un SDK personalizado quellame a Amazon EMR. Para obtener más información, consulte la Amazon EMR API Reference.

Información general sobre la arquitectura deAmazon EMR

La arquitectura de servicio de Amazon EMR se compone de varias capas, cada una de las cualesproporciona determinadas capacidades y funcionalidad al clúster. Esta sección proporciona informacióngeneral sobre las capas y los componentes de cada una de ellas.

En este tema• Almacenamiento (p. 9)• Administración de recursos de clúster (p. 9)• Marcos de procesamiento de datos (p. 10)

8

Page 16: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAlmacenamiento

• Aplicaciones y programas (p. 10)

AlmacenamientoLa capa de almacenamiento incluye los diferentes sistemas de archivos que se utilizan con el clúster.Existen varios tipos distintos de opciones de almacenamiento como se indica a continuación.

Hadoop Distributed File System (HDFS)Hadoop Distributed File System (HDFS) es un sistema de archivos distribuido y escalable para Hadoop.HDFS distribuye los datos que almacena en instancias en el clúster, almacenando varias copias en datosen distintas instancias para garantizar que no se pierdan datos si una instancia individual falla. HDFS es unalmacenamiento efímero que se reclama cuando se termina un clúster. HDFS resulta útil para almacenaren caché los resultados intermedios durante el procesamiento de MapReduce o para cargas de trabajo conuna E/S aleatoria notable.

Para obtener más información, vaya a HDFS Users Guide en el sitio web de Apache Hadoop.

Sistema de archivos de EMR (EMRFS)Con el sistema de archivos de EMR (EMRFS), Amazon EMR amplía Hadoop para añadir la posibilidadde tener acceso directamente a los datos almacenados en Amazon S3 como si fueran un sistema dearchivos similar a HDFS. Puede usar HDFS o Amazon S3 como sistema de archivos en su clúster. Amenudo, Amazon S3 se usa para almacenar los datos de entrada y de salida y los resultados intermediosse almacenan en HDFS.

Sistema de archivos localEl sistema de archivos local se refiere a un disco conectado a nivel local. Cuando se crea un clúster deHadoop, cada nodo se crea a partir de una instancia Amazon EC2 que viene con un bloque preconfiguradode almacenamiento en disco preasociado que se denomina almacén de instancias. Los datos envolúmenes del almacén de instancias se conservan solo durante el ciclo de vida de su instancia AmazonEC2.

Administración de recursos de clústerLa capa de administración de recursos es responsable de la administración de los recursos de clúster y dela programación de trabajos para procesamiento de datos.

De forma predeterminada, Amazon EMR utiliza YARN (Yet Another Resource Negotiator), que es uncomponente introducido en Apache Hadoop 2.0 para administrar de forma centralizada recursos de clústerpara varios marcos de procesamiento de datos. Sin embargo, hay otros marcos de trabajo y aplicacionesque se ofrecen en Amazon EMR que no utilizan YARN como administrador de recursos. Amazon EMRtambién dispone de un agente en cada nodo que administra los componentes de YARN, mantiene elclúster en buen estado y se comunica con Amazon EMR.

Como a menudo se utilizan las instancias de spot para ejecutar nodos de tarea, Amazon EMR tiene unafunción predeterminada para programar trabajos de YARN, de manera que la ejecución de los trabajosno produzca un error cuando se terminen los nodos de las tareas que se ejecutan en instancias de spot.Para ello, Amazon EMR permite que los procesos maestros de la aplicación solo se ejecuten en nodosprincipales. El proceso maestro de la aplicación controla la ejecución de los trabajos y necesita estar activodurante la vida útil del trabajo.

Para ello, Amazon EMR versión 5.19.0 y posteriores utiliza la característica integrada de etiquetas denodos de YARN. (Las versiones anteriores utilizaban un parche de código). Las propiedades de las

9

Page 17: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónMarcos de procesamiento de datos

clasificaciones de configuración yarn-site y capacity-scheduler están configuradas de formapredeterminada, por lo que las clasificaciones capacity-scheduler y fair-scheduler de YARN puedenutilizar etiquetas de nodos. Amazon EMR etiqueta automáticamente los nodos principales con la etiquetaCORE y establece propiedades, de modo que los procesos maestros de la aplicación se programenúnicamente en nodos con la etiqueta CORE. La modificación manual de las propiedades relacionadas enlas clasificaciones de configuración yarn-site y capacity-scheduler, o directamente en los archivos XMLasociados, podría hacer que esta característica dejara de funcionar o modificar su funcionalidad.

Marcos de procesamiento de datosLa capa de marco de trabajo de procesamiento de datos es el motor que se utiliza para procesar yanalizar datos. Existen muchos marcos de trabajo disponibles que se ejecutan en YARN o que tienensu propia administración de recursos. Los distintos marcos están disponibles para los diferentes tipos denecesidades de procesamiento tales como lotes, interactivo, en memoria, streaming, etc. El marco detrabajo que elija depende de su caso de uso. Esto afecta a los lenguajes y a los interfaces disponiblesdesde la capa de aplicación, que es la capa que se utiliza para interactuar con los datos que deseaprocesar. Los principales marcos de procesamiento disponibles para Amazon EMR son HadoopMapReduce y Spark.

Hadoop MapReduceHadoop MapReduce es un modelo de programación de código abierto para informática distribuida.Simplifica el proceso de escritura de aplicaciones distribuidas en paralelo mediante el tratamiento de todala lógica, mientras proporciona las funciones Map y Reduce. La función Map asigna datos a conjuntosde pares clave-valor denominados resultados intermedios. La función Reduce combina los resultadosintermedios, aplica algoritmos adicionales y genera la salida final. Existen varios marcos de trabajodisponibles para MapReduce, como Hive, que generan automáticamente programas Map y Reduce.

Para obtener más información, consulte How Map and Reduce operations are actually carried out en elsitio web de Apache Hadoop Wiki.

Apache SparkSpark es un marco de trabajo de clúster y un modelo de programación para el procesamiento de cargas detrabajo de big data. Al igual que Hadoop MapReduce, Spark es un sistema de procesamiento distribuidode código abierto, pero utiliza gráficos acíclicos dirigidos para planes de ejecución y el almacenamiento decaché en memoria para conjuntos de datos. Cuando se ejecuta Spark en Amazon EMR, es posible utilizarEMRFS para tener acceso directamente a los datos en Amazon S3. Spark admite diversos módulos deconsulta interactivos como, por ejemplo, SparkSQL.

Para obtener más información, consulte el tema relacionado con Apache Spark en los clústeres deAmazon EMR en la Guía de publicación de Amazon EMR.

Aplicaciones y programasAmazon EMR es compatible con muchas aplicaciones, tales como Hive, Pig, y la biblioteca SparkStreaming para ofrecer capacidades como el uso de lenguajes de nivel superior para crear cargas detrabajo de procesamiento, el uso de algoritmos de aprendizaje automático, el desarrollo de aplicacionesde procesamiento de flujos y la creación de almacenes de datos. Además, Amazon EMR también admiteproyectos de código abierto que tienen su propia funcionalidad de administración de clústeres en lugar deutilizar YARN.

Puede utilizar diversas bibliotecas y lenguajes para interactuar con las aplicaciones que se ejecutan enAmazon EMR. Por ejemplo, puede utilizar Java, Hive o Pig con MapReduce o Spark Streaming, SparkSQL, MLlib y GraphX con Spark.

Para obtener más información, consulte Guía de publicación de Amazon EMR.

10

Page 18: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 1: Configurar los requisitos previos

Introducción: análisis de big data conAmazon EMR

Este tutorial le guiará a través del proceso de creación de un clúster de Amazon EMR de ejemplo con lasopciones de Quick Create (Creación rápida) en la Consola de administración de AWS. Después de crear elclúster, enviará un script de Hive como un paso para procesar datos de ejemplo almacenados en AmazonSimple Storage Service (Amazon S3).

Este tutorial no está destinado a los entornos de producción y no cubre las opciones de configuraciónen profundidad. Está diseñado para ayudarle a configurar un clúster para fines de evaluación lo másrápido posible. Si tiene alguna pregunta o no sabe cómo continuar, póngase en contacto con el equipo deAmazon EMR publicando un comentario en el foro de debate.

El clúster de ejemplo que cree se ejecuta en un entorno real. Se acumulan cargos para las instanciasde clúster a la tarifa por segundo correspondiente a los precios de Amazon EMR. Para obtener másinformación, consulte los Precios de Amazon EMR. Estos cargos varían según la región. El costo deberíaser mínimo, ya que el clúster debería ejecutarse durante menos de una hora después de aprovisionarlo.

También es posible que se acumulen cargos por el almacenamiento de los archivos de salida de lasconsultas que se guardan en Amazon S3 como parte del tutorial. El archivo es pequeño, por lo que loscargos deberían ser mínimos. Además, si está en el primer año de uso de AWS, podrían no aplicarse parteo la totalidad de los cargos de Amazon S3 si está dentro de los límites de uso de la capa gratuita de AWS.Para obtener más información, consulte Precios de Amazon S3 y Capa gratuita de AWS.

Pasos en este tutorial• Paso 1: Configurar los requisitos previos para el clúster de ejemplo (p. 11)• Paso 2: Lanzar el clúster de Amazon EMR de ejemplo (p. 12)• Paso 3: Permitir las conexiones SSH con el clúster desde el cliente (p. 18)• Paso 4: Procesar los datos ejecutando el script de Hive como paso (p. 20)• Paso 5: Terminar el clúster y eliminar el bucket (p. 23)

Paso 1: Configurar los requisitos previos para elclúster de ejemplo

Antes de comenzar a configurar el clúster de Amazon EMR, asegúrese de completar los requisitos previosindicados en este tema.

Registrarse en AWSSi no dispone de una cuenta de AWS, utilice el siguiente procedimiento para crearla.

Para inscribirse en AWS

1. Abra https://aws.amazon.com/ y elija Create an AWS Account.2. Siga las instrucciones en línea.

11

Page 19: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCrear un bucket de Amazon S3

Crear un bucket de Amazon S3En este tutorial, debe especificar un bucket y una carpeta de Amazon S3 para almacenar los datos desalida de una consulta de Hive. En este tutorial, se utiliza la ubicación predeterminada para los registros,pero también puede especificar una ubicación personalizada si lo desea. Debido a los requisitos deHadoop, los nombres del bucket y de la carpeta que utilice con Amazon EMR tienen las siguienteslimitaciones:

• Deben incluir únicamente letras, números, puntos (.) y guiones (-).• No pueden terminar en números.

Si ya tiene acceso a una carpeta que cumpla estos requisitos, puede utilizarla para este tutorial. La carpetade salida debería estar vacía. Otro requisito que no hay que olvidar es que los nombres de los bucketsdeben ser únicos en todas las cuentas de AWS.

Para obtener más información sobre la creación de buckets, consulte Crear un bucket en la Guía deintroducción a Amazon Simple Storage Service. Después de crear el bucket, elíjalo en la lista y, acontinuación, elija Create folder (Crear carpeta), sustituya New folder (Carpeta nueva) por un nombre quecumpla los requisitos y, por último, elija Save (Guardar).

El nombre del bucket y de la carpeta utilizado más adelante en el tutorial es s3://mybucket/MyHiveQueryResults.

Crear un par de claves de Amazon EC2Debe disponer de un par de claves de Amazon Elastic Compute Cloud (Amazon EC2) para conectarse alos nodos del clúster a través de un canal seguro mediante el protocolo Secure Shell (SSH). Puede omitireste paso si ya dispone del par de claves que desea utilizar. Si no dispone de un par de claves, siga unode los procedimientos que se indican a continuación en función de su sistema operativo.

• Crear un par de claves con Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias deWindows.

• Crear un par de claves con Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias deLinux. Utilice este procedimiento también para Mac OS.

Paso 2: Lanzar el clúster de Amazon EMR deejemplo

En este paso, lanzará el clúster de ejemplo mediante las Quick Options (Opciones rápidas) de la consolade Amazon EMR dejando la mayoría de las opciones con sus valores predeterminados. Para obtenermás información sobre estas opciones, consulte Resumen de las opciones rápidas (p. 13) después delprocedimiento. También puede seleccionar Go to advanced options (Ir a las opciones avanzadas) paraexplorar las opciones de configuración adicionales disponibles para un clúster. Antes de crear el clústerpara este tutorial, asegúrese de cumplir los requisitos que figuran en Paso 1: Configurar los requisitosprevios para el clúster de ejemplo (p. 11).

Lanzar el clúster de ejemploPara lanzar el clúster de Amazon EMR de ejemplo

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.

12

Page 20: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónResumen de las opciones rápidas

2. Elija Create cluster (Crear clúster).3. En la página Create Cluster - Quick Options (Crear clúster: opciones rápidas), acepte los valores

predeterminados, excepto para los campos siguientes:

• Introduzca un Cluster name (Nombre del clúster) que le ayude a identificar el clúster, por ejemplo,Mi primer clúster de EMR.

• En Security and access (Seguridad y acceso), elija el EC2 key pair (Par de claves EC2) que hacreado en Crear un par de claves de Amazon EC2 (p. 12).

4. Elija Create cluster.

Aparecerá la página de estado del clúster con el Summary (Resumen) del clúster. Puede utilizar estapágina para monitorizar el progreso de creación del clúster y ver información detallada sobre el estado delclúster. A medida que finalizan las tareas de creación del clúster, los elementos de la página de estado seactualizan. Es posible que tenga que elegir el icono de actualización situado a la derecha o actualizar elnavegador para recibir las actualizaciones.

En Network and hardware (Redes y hardware), busque el estado de la instancia Master (Principal) y Core(Secundaria). El estado pasa de Provisioning (Aprovisionando) a Bootstrapping (Proceso de arranque) ya Waiting (Esperando) durante el proceso de creación del clúster. Para obtener más información, consulteDescripción del ciclo de vida del clúster (p. 4).

Tan pronto como vea los enlaces para Security groups for Master (Grupos de seguridad para principal) ySecurity Groups for Core & Task (Grupos de seguridad para secundarios y de tareas), puede continuar conel paso siguiente, pero tal vez desee esperar hasta que el clúster se inicie correctamente y se encuentre enel estado Waiting (Esperando).

Para obtener más información sobre cómo leer el resumen del clúster, consulte Ver el estado y los detallesdel clúster (p. 309).

Resumen de las opciones rápidasEn la siguiente tabla, se describen los campos y los valores predeterminados al lanzar un clúster con lapágina Quick cluster configuration (Configuración rápida del clúster) de la consola de Amazon EMR.

Campo de la consola Valor predeterminado Descripción

Cluster name (Nombre delclúster)

My cluster (Mi clúster) El nombre del clúster es unnombre descriptivo opcional parael clúster que no tiene por quéser exclusivo.

Logging (Registro) Enable (Habilitado) Si se ha habilitado el registro,Amazon EMR escribe datos deregistro detallados en la carpetade Amazon S3 especificada. Elregistro solo se puede habilitar alcrear el clúster y este ajuste nose puede cambiar más adelante.Se especifica un bucket deAmazon S3 predeterminado.También puede especificarel suyo propio. Para obtenermás información, consulte Verarchivos de registro archivadosen Amazon S3 (p. 321).

13

Page 21: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónResumen de las opciones rápidas

Campo de la consola Valor predeterminado Descripción

S3 folder (Carpeta de S3) s3://aws-logs-número_de_cuenta-región/elasticmapreduce/

Esta opción especifica la rutaa una carpeta de un bucketde Amazon S3 donde deseaque Amazon EMR escribalos datos de registro. Si lacarpeta predeterminadade la ruta especificada noexiste en el bucket, se crearáautomáticamente. Puedeespecificar otra carpetaescribiendo o buscando unacarpeta de Amazon S3.

Launch mode (Modo delanzamiento)

Cluster (Clúster) Esta opción especifica si se debelanzar un clúster de ejecuciónprolongada o un clúster quetermine después de ejecutar lospasos indicados.

Con la opción Cluster (Clúster),el clúster sigue ejecutándosehasta que usted lo terminamanualmente. Esto se denominaclúster de ejecución prolongada.Si elige Step execution(Ejecución de pasos), AmazonEMR le pide que añada yconfigure los pasos. Puedeutilizar pasos para enviar eltrabajo a un clúster. Una vezque finalice la ejecución de lospasos que ha especificado,el clúster termina de formaautomática. Para obtenermás información, consulteConfiguración de un clúster parala terminación automática o paracontinuar (p. 101).

14

Page 22: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónResumen de las opciones rápidas

Campo de la consola Valor predeterminado Descripción

Release (Versión) emr-5.30.0 Esta opción especifica laversión de Amazon EMR quese debe utilizar al crear elclúster. La versión de AmazonEMR determina la versión delas aplicaciones de códigoabierto, como Hadoop y Hive,que instala Amazon EMR.De forma predeterminada,se elige la etiqueta de laversión más reciente. Puedeseleccionar una versión deAmazon EMR anterior si necesitaversiones diferentes de lasaplicaciones de código abiertopor motivos de compatibilidadcon su solución. Puede quealgunas características yaplicaciones de Amazon EMRno estén disponibles si seutilizan versiones de AmazonEMR anteriores, por lo querecomendamos usar la versiónmás reciente siempre que seaposible. Para obtener másinformación sobre cada versiónde Amazon EMR, consulte laGuía de publicación de AmazonEMR.

15

Page 23: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónResumen de las opciones rápidas

Campo de la consola Valor predeterminado Descripción

Applications (Aplicaciones) Core Hadoop Esta opción determina lasaplicaciones de código abiertodel ecosistema de big dataque se deben instalar en elclúster. Las combinaciones deaplicaciones más comunes estándisponibles con el inicio rápido.Para seleccionar su propiacombinación de aplicaciones,incluidas las aplicacionesadicionales que no aparecenen el inicio rápido, elija Goto advanced options (Ir a lasopciones avanzadas). Paraobtener más información sobrelas aplicaciones y las versionesdisponibles con cada versión deAmazon EMR, consulte Guía depublicación de Amazon EMR.

Además, si una aplicaciónno está disponible para queAmazon EMR la instale onecesita instalar una aplicaciónpersonalizada en todas lasinstancias del clúster, puedeutilizar una acción de arranque.Para obtener más información,consulte Creación de accionesde arranque para instalarsoftware adicional (p. 116).Si selecciona Step execution(Ejecución de pasos), AmazonEMR elige las aplicaciones quese van a instalar en función delos requisitos de los pasos.

Instance type (Tipo de instancia) m5.xlarge Esta opción determina el tipode instancia Amazon EC2 queAmazon EMR inicializa paralas instancias que se ejecutanen el clúster. La selección deinstancias predeterminadasvaría en función de la región yes posible que algunos tipos deinstancias no estén disponiblesen algunas regiones. Paraobtener más información,consulte Configuración delhardware y las redes de losclústeres (p. 120).

16

Page 24: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónResumen de las opciones rápidas

Campo de la consola Valor predeterminado Descripción

Number of instances (Número deinstancias)

3 Esta opción determina elnúmero de instancias AmazonEC2 que inicializar. Cadainstancia corresponde a unnodo en el clúster de AmazonEMR. Debe tener al menos unnodo, que es el nodo principal.Para obtener instruccionessobre cómo elegir los tiposde instancias y el número deinstancias, consulte Directricesy prácticas recomendadaspara la configuración declústeres (p. 152).

EC2 key pair (Par de claves deEC2)

Choose an option (Elija unaopción)

Esto especifica el par de clavesde Amazon EC2 que se debeutilizar a la hora de conectarsea los nodos del clúster medianteuna conexión Secure Shell(SSH). Recomendamos quecree y especifique un par declaves de Amazon EC2. Si noselecciona un par de claves, nopuede conectarse al clúster paraenviar pasos ni interactuar conlas aplicaciones. Para obtenermás información, consulteConectar al clúster (p. 353).Para conectarse, también deberácrear una regla de entrada en elgrupo de seguridad para permitirlas conexiones SSH.

Permissions (Permisos) Default (Predeterminados) Utilice esta opción paraespecificar los roles de AWSIdentity and Access Managementque utiliza el clúster. Estosroles determinan los permisosque tienen Amazon EMR y lasaplicaciones que se ejecutanen las instancias del clústerpara interactuar con otrosservicios de AWS. Puede elegirCustom (Personalizados) paraespecificar sus propios roles.Recomendamos utilizar losroles predeterminados paracomenzar. Para obtener másinformación, consulte Configurarroles de servicio deIAM paralos permisos de Amazon EMRpara los servicios y recursos deAWS (p. 205).

17

Page 25: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 3: Permitir el acceso SSH

Paso 3: Permitir las conexiones SSH con el clústerdesde el cliente

Los grupos de seguridad funcionan como firewalls virtuales para controlar el tráfico entrante y saliente delclúster. Al crear el primer clúster, Amazon EMR crea el grupo de seguridad administrado por Amazon EMRpor defecto asociado a la instancia principal, ElasticMapReduce-master y el grupo de seguridad asociado alos nodos principal y de tareas, ElasticMapReduce-slave.

Warning

El grupo de seguridad administrado por EMR predeterminado de la instancia principal ensubredes públicas, ElasticMapReduce-master, está preconfigurado con una regla quepermite el tráfico entrante en el puerto 22 de todos los orígenes (IPv4 0.0.0.0/0). Esto es parasimplificar las conexiones de los clientes SSH iniciales al nodo principal. Le recomendamosencarecidamente editar esta regla de entrada para restringir el tráfico únicamente a partir deorígenes de confianza o especificar un grupo de seguridad personalizado que restrinja el acceso.

Modificar los grupos de seguridad no es un requisito para completar el tutorial, pero le recomendamosque no permita el tráfico entrante de todos los orígenes. Además, si otro usuario ha editado el grupo deseguridad principal ElasticMapReduce para eliminar esta regla de acuerdo con las recomendaciones,no puede obtener acceso al clúster mediante SSH para realizar los siguientes pasos. Para obtenermás información sobre los grupos de seguridad, consulte Control del tráfico de red con grupos deseguridad (p. 291) y Grupos de seguridad de su VPC en la Guía del usuario de Amazon VPC.

Para eliminar la regla de entrada que permite el acceso público mediante SSH para el grupo deseguridad ElasticMapReduce-master

En el siguiente procedimiento se supone que no se ha editado previamente el grupo de seguridadElasticMapReduce-master. Además, para editar grupos de seguridad, debe haber iniciado sesión en AWScomo usuario raíz o como principal de IAM con permiso para administrar grupos de seguridad para la VPCen la que se encuentra el clúster. Para más información, consulte Cambio de los permisos de un usuariode IAM y el Ejemplo de política que permite administrar grupos de seguridad de EC2 en la Guía del usuariode IAM.

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Seleccione Clusters (Clústeres).3. Elija el Name (Nombre) del clúster.4. En Security and access (Seguridad y acceso), elija el enlace Security groups for Master (Grupos de

seguridad para principal).

18

Page 26: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 3: Permitir el acceso SSH

5. Elija ElasticMapReduce-master en la lista.6. Elija Inbound (Entrada), Edit (Editar).7. Busque la regla con la siguiente configuración y seleccione el icono x para eliminarlo:

• Type (Tipo)

SSH• Port (Puerto)

22• Source (Fuente)

Personalizada 0.0.0.0/08. Desplácese a la parte inferior de la lista y elija Add Rule (Añadir regla).9. En Type (Tipo), seleccione SSH.

Esto introduce automáticamente TCP para Protocol (Protocolo) y 22 para Port Range (Rango depuertos).

10. Como origen, seleccione My IP (Mi IP).

Esto añade automáticamente la dirección IP del equipo cliente como la dirección de origen. Tambiénpuede añadir un rango de direcciones IP de clientes de confianza Custom (Personalizadas) y elegirAdd rule (Añadir regla) para crear reglas adicionales para otros clientes. En muchos entornos dered, las direcciones IP se asignan de forma dinámica, por lo que es posible que necesite editarperiódicamente las reglas de grupos de seguridad para actualizar la dirección IP de los clientes deconfianza.

11. Seleccione Save.12. Opcionalmente, elija ElasticMapReduce-slave en la lista y repita los pasos anteriores para permitir el

acceso de los clientes SSH a los nodos secundarios y de tareas desde los clientes de confianza.

19

Page 27: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 4: Ejecutar un script de Hive para procesar los datos

Paso 4: Procesar los datos ejecutando el script deHive como paso

Con el clúster en marcha, ahora puede enviar un script de Hive. En este tutorial, enviará el script de Hivecomo paso utilizando la consola de Amazon EMR. En Amazon EMR, un paso es una unidad de trabajo quecontiene uno o varios trabajos. Como ya ha podido aprender en el Paso 2: Lanzar el clúster de AmazonEMR de ejemplo (p. 12), puede enviar pasos a un clúster de ejecución prolongada, que es lo quehacemos en este paso. También puede especificar pasos al crear un clúster, o conectarse con el nodoprincipal, crear el script en el sistema de archivos local y ejecutarlo mediante la línea de comandos, porejemplo hive -f Hive_CloudFront.q.

Descripción de los datos y del ScriptLos datos de ejemplo y el script que se utilizan en este tutorial ya están disponibles en una ubicación deAmazon S3 a la que puede obtener acceso.

Los datos de ejemplo son una serie de archivos de registro de acceso de Amazon CloudFront.Para obtener más información sobre CloudFront y los formatos de los archivos de registro, consultela Guía para desarrolladores de Amazon CloudFront. Los datos se almacenan en Amazon S3 ens3://region.elasticmapreduce.samples/cloudfront/data donde region es su región, porejemplo, us-west-2. Cuando escriba la ubicación al enviar el paso, omita la parte cloudfront/data, yaque el script la añade.

Cada entrada de los archivos de registro de CloudFront proporciona detalles sobre una única solicitud deusuario en el siguiente formato:

2014-07-05 20:00:00 LHR3 4260 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-1.jpeg 200 - Mozilla/5.0%20(MacOS;%20U;%20Windows%20NT%205.1;%20en-US;%20rv:1.9.0.9)%20Gecko/2009040821%20IE/3.0.9

El script de ejemplo calcula el número total de solicitudes por sistema operativo durante un periodode tiempo especificado. El script utiliza HiveQL, que es un lenguaje de secuencias de comandossimilar a SQL para almacenamiento de datos y análisis. El script está almacenado en Amazon S3 ens3://region.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q donderegion es su región.

El script Hive de ejemplo hace lo siguiente:

• Crea un esquema de tabla de Hive denominado cloudfront_logs. Para obtener más informaciónsobre las tablas de Hive, consulte el tutorial de Hive en la wiki de Hive.

• Utiliza el serializador-deserializador de expresiones regulares integrado (RegEx SerDe) para analizar losdatos de entrada y aplicar el esquema de la tabla. Para obtener más información, consulte SerDe en lawiki de Hive.

• Ejecuta una consulta de HiveQL en la tabla cloudfront_logs y escribe los resultados de la consultaen la ubicación de salida de Amazon S3 que especifique.

El contenido del script Hive_CloudFront.q se muestra a continuación. Las variables ${INPUT} y${OUTPUT} se sustituyen por las ubicaciones de Amazon S3 que se especifiquen al enviar el script comopaso. Cuando se hace referencia a datos en Amazon S3 tal como hace este script, Amazon EMR utiliza elsistema de archivos de EMR (EMRFS) para leer los datos de entrada y escribir los datos de salida.

-- Summary: This sample shows you how to analyze CloudFront logs stored in S3 using Hive

20

Page 28: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEnviar el script de Hive como paso

-- Create table using sample data in S3. Note: you can replace this S3 path with your own.CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( DateObject Date, LocalTime STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, OS String, Browser String, BrowserVersion String)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$") LOCATION '${INPUT}/cloudfront/data';

-- Total requests per operating system for a given time frameINSERT OVERWRITE DIRECTORY '${OUTPUT}/os_requests/' SELECT os, COUNT(*) count FROM cloudfront_logs WHERE dateobject BETWEEN '2014-07-05' AND '2014-08-05' GROUP BY os;

Enviar el script de Hive como pasoUtilice la opción Add Step (Añadir paso) para enviar el script de Hive al clúster utilizando la consola. Elscript de Hive y los datos de ejemplo se han cargado en Amazon S3, y se especifica la ubicación de salidacomo la carpeta creada anteriormente en Crear un bucket de Amazon S3 (p. 12).

Para ejecutar el script de Hive enviándolo como un paso

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. En Cluster List (Lista de clústeres), seleccione el nombre del clúster. Asegúrese de que el clúster está

en el estado Waiting (Esperando).3. Elija Steps (Pasos) y, a continuación Add step (Añadir paso).4. Configure el paso de acuerdo con las directrices siguientes:

• En Step type (Tipo de paso), elija Hive program (Programa de Hive).• En Name (Nombre), puede dejar el valor predeterminado o escribir un nombre nuevo. Si tiene

muchos pasos en un clúster, el nombre le ayuda a realizar un seguimiento de ellos.• En Script S3 location (Ubicación en S3 del script), escribas3://region.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q.Sustituya region por el identificador de la región. Por ejemplo, s3://us-west-2.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q siestá trabajando en la región de Oregon (Oregón). Para obtener una lista de las regiones y losidentificadores de región correspondientes, consulte Regiones y puntos de enlace de AWS paraAmazon EMR en la AWS General Reference.

• En Input S3 location (Ubicación en S3 de la entrada), escribas3://region.elasticmapreduce.samples

Sustituya region por el identificador de la región.• En Output S3 location (Ubicación en S3 de la salida), escriba o busque el bucket output que creó

en Crear un bucket de Amazon S3 (p. 12).• En Action on failure (Acción sobre el error), acepte la opción predeterminada Continue (Continuar).

Esto especifica que si se produce un error en el paso, el clúster sigue ejecutándose y procesa los

21

Page 29: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer los resultados

pasos siguientes. La opción Cancel and wait (Cancelar y esperar) especifica que los pasos conerror deben cancelarse y que los pasos siguientes no se deben ejecutar, pero que el clúster debeseguir ejecutándose. La opción Terminate cluster (Terminar clúster) especifica que el clúster debeterminarse si el paso genera un error.

5. Elija Add (Añadir). El paso aparece en la consola con el estado Pending (Pendiente).6. El estado del paso cambia de Pending (Pendiente) a Running (En ejecución) y a Completed

(Completado) a medida que se ejecuta. Para actualizar el estado, elija el icono de actualizaciónsituado a la derecha de Filter (Filtro). El script tarda aproximadamente un minuto en ejecutarse.

Ver los resultadosUna vez que el paso se completa correctamente, la salida de la consulta de Hive se guarda como unarchivo de texto en la carpeta de salida de Amazon S3 que especificó al enviar el paso.

Para ver la salida del script de Hive

1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.2. Elija el Bucket name (Nombre del bucket) y, a continuación, elija la carpeta que ha configurado

anteriormente. Por ejemplo, mybucket y luego MyHiveQueryResults.3. La consulta escribe los resultados en una carpeta ubicada en la carpeta de salida denominada

os_requests. Elija esa carpeta. Debería haber un único archivo denominado 000000_0 en dichacarpeta. Se trata de un archivo de texto que contiene los resultados de la consulta de Hive.

4. Elija el archivo y, a continuación, elija Download (Descargar) para guardarlo localmente.5. Utilice el editor de texto que prefiera para abrir el archivo. El archivo de salida muestra el número de

solicitudes de acceso ordenadas por sistema operativo. El siguiente ejemplo muestra la salida enWordPad:

22

Page 30: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 5: Eliminar los recursos

Paso 5: Terminar el clúster y eliminar el bucketUna vez completado el tutorial, es conveniente que termine el clúster y elimine el bucket de Amazon S3para evitar cargos adicionales.

Al terminar el clúster, terminan las instancias Amazon EC2 asociadas y se detiene la acumulaciónde cargos de Amazon EMR. Amazon EMR conserva la información de metadatos sobre los clústerescompletados para su referencia, gratuitamente, durante dos meses. La consola no proporciona una formade eliminar clústeres terminados, por lo que no se pueden ver en la consola. Los clústeres terminados seeliminan del clúster al eliminar los metadatos.

Para terminar el clúster

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Clusters (Clústeres), elija el clúster y, a continuación, Terminate (Terminar).

Los clústeres suelen crearse con la protección de terminación activada, lo que ayuda a evitar que secierren de forma accidental. Si ha seguido el tutorial al pie de la letra, la protección de terminacióndebería estar desactivada. Si la protección de terminación está activada, se le pedirá que cambieesta opción como medida de precaución antes de terminar el clúster. Elija Change (Cambiar), Off(Desactivada).

Para eliminar el bucket de salida

1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.2. Elija el bucket en la lista, de forma que toda la fila del bucket esté seleccionada.3. Elija eliminar el bucket, escriba el nombre de este y, a continuación, haga clic en Confirm (Confirmar).

Para obtener más información sobre la eliminación de carpetas y buckets, vaya a ¿Cómo elimino unbucket de S3? en la Guía de introducción a Amazon Simple Storage Service.

23

Page 31: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConsideraciones

Uso de los blocs de notas de AmazonEMR

Puede usar Cuadernos de Amazon EMR junto con clústeres de Amazon EMR que ejecuten Apache Sparkpara crear y abrir las interfaces de Jupyter Notebook y JupyterLab dentro de la consola de Amazon EMR.Un Cuaderno de EMR es un bloc de notas "sin servidor" que puede usar para ejecutar consultas y código.A diferencia de un bloc de notas tradicional, el contenido de un Cuaderno de EMR en sí—las ecuaciones,consultas, modelos, código y texto narrativo dentro de las celdas del bloc de notas—se ejecutan en uncliente. Los comandos se ejecutan utilizando un kernel en el clúster de EMR. El contenido del bloc denotas también se guarda en Amazon S3 separados de los datos del clúster para mayor durabilidad yflexibilidad en la reutilización.

Puede iniciar un clúster, asociar un Cuaderno de EMR para análisis y, a continuación, terminar el clúster.También puede cerrar un bloc de notas asociado a un clúster en ejecución y cambiar a otro. Variosusuarios pueden asociar blocs de notas al mismo clúster de forma simultánea y compartir entre sí archivosde bloc de notas en Amazon S3. Estas características le permiten ejecutar clústeres bajo demanda paraahorrar costes y reducir el tiempo dedicado a reconfigurar blocs de notas para diferentes clústeres yconjuntos de datos.

Important

Cuadernos de EMR es compatible con clústeres creados con Amazon EMR 5.18.0 y versionesposteriores. Recomendamos encarecidamente que utilice Cuadernos de EMR con clústerescreados con la última versión de Amazon EMR–en particular Amazon EMR versión 5.30.0 yposterior, excepto 6.0.0. En Amazon EMR 5.30.0, se realizó un cambio para que los kernelsde Jupyter se ejecuten en el clúster asociado, en lugar de hacerlo en una instancia de Jupyter.Este cambio ayuda a mejorar el rendimiento y mejora su capacidad para personalizar kernels ybibliotecas. Para obtener más información, consulte Diferencias en capacidades por versión declúster (p. 25).

Se aplicarán los cargos correspondientes para el almacenamiento de Amazon S3 y los clústeres deAmazon EMR.

Consideraciones sobre el uso de Cuadernos deEMR

Tenga en cuenta los siguientes requisitos al crear clústeres y desarrollar soluciones utilizando Cuaderno deEMR.

Requisitos del clúster• Habilitar acceso público de bloques de Amazon EMR: el acceso entrante a un clúster permite a los

usuarios del clúster ejecutar kernels de bloc de notas. Asegúrese de que solo los usuarios autorizadospuedan acceder al clúster. Recomendamos encarecidamente que deje habilitado el acceso público debloqueo y que limite el tráfico SSH entrante solo a fuentes de confianza. Para obtener más información,consulte Uso de Amazon EMR Block Public Access (p. 302) y Control del tráfico de red con grupos deseguridad (p. 291).

• Utilizar un clúster compatible: un clúster asociado a un bloc de notas debe cumplir los siguientesrequisitos:

24

Page 32: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDiferencias en capacidades por versión de clúster

• Solo se admiten clústeres creados mediante Amazon EMR. Puede crear un clúster de formaindependiente dentro de Amazon EMR y, a continuación asociar un Cuaderno de EMR, o puede crearun clúster compatible al crear un Cuaderno de EMR.

• Solo se admiten los clústeres creados con Amazon EMR versión 5.18.0 y versiones posteriores.Consulte the section called “Diferencias en capacidades por versión de clúster” (p. 25).

• Los clústeres creados con instancias de Amazon EC2 con procesadores AMD EPYC,—por ejemplo,los tipos de instancias m5a.* y r5a.*—no son compatibles.

• Los clústeres creados con setVisibleToallUsers configurados para true no son compatiblesCuadernos de EMR. SetVisibleToAllUsers es false por defecto.

• El clúster debe lanzarse dentro de una EC2-VPC. Se admiten subredes públicas y privadas. No seadmite la plataforma EC2-Classic.

• El clúster se debe lanzar con Hadoop, Spark y Livy instalados. Se pueden instalar otras aplicaciones,pero Cuadernos de EMR solo admite actualmente clústeres Spark.

• No se admiten los clústeres que utilizan la autenticación de Kerberos.• Los clústeres integrados con AWS Lake Formation admiten solo la instalación de bibliotecas

adaptadas al bloc de notas. En el clúster no se admite la instalación de kernels ni bibliotecas.• No se admiten clústeres con varios nodos maestros.

Diferencias en capacidades por versión de clústerSe recomienda encarecidamente utilizar Cuadernos de EMR con clústeres creados con Amazon EMRversión 5.30.0 o posterior, salvo la versión 6.0.0. Con estos clústeres de versión, Cuadernos de EMRejecuta kernels en el clúster Amazon EMR asociado. Los kernels y las bibliotecas se pueden instalardirectamente en el nodo maestro del clúster. El uso de Cuadernos de EMR con estas versiones de clústertiene las siguientes ventajas:

• Rendimiento mejorado: los kernels de bloc de notas se ejecutan en clústeres con tipos de instancia EC2que seleccione. Las versiones anteriores ejecutan kernels en una instancia especializada a la que no sepuede cambiar el tamaño, acceder o personalizar.

• Capacidad para agregar y personalizar kernels: puede conectarse al clúster para instalar paquetesde kernel utilizando conda y pip. Además, se admite la instalación de pip mediante comandos determinal dentro de celdas de bloc de notas. En versiones anteriores, solo estaban disponibles los kernelspreinstalados (Python, PySpark, Spark y SparkR). Para obtener más información, consulte Instalación dekernels y bibliotecas de Python en un nodo maestro de clúster (p. 34).

• Capacidad para instalar bibliotecas de Python: puede instalar bibliotecas de Python en el nodo maestrodel clúster (p. 34) usando conda y pip. Recomendamos utilizar conda. Con versiones anteriores,solo se admiten bibliotecas adaptadas al bloc de notas (p. 35) para PySpark.

Funciones de Cuadernos de EMR admitidas por la versión del clúster

Versión de lanzamientodel clúster

Bibliotecas adaptadasal bloc de notas paraPySpark

Instalación del kernel enel clúster

Instalación de labiblioteca de Python enel nodo maestro

Antes de 5.18.0 Cuadernos de EMR no admitido

5.18.0–5.25.0 No No No

5.26.0–5.29.0 Sí (p. 35) No No

5.30.0 Sí (p. 35) Sí (p. 34) Sí (p. 34)

6.0.0 No No No

25

Page 33: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLímites para blocs de notas asociadas de forma simultánea

Límites para blocs de notas asociadas de formasimultáneaCuando cree un clúster que admita blocs de notas, tenga en cuenta el tipo de instancia EC2 del nodoprincipal del clúster. Las restricciones de memoria de esta instancia EC2 determinan el número de blocs denotas que pueden estar listos de forma simultánea para ejecutar código y consultas en el clúster.

Tipo de instancia EC2 del nodo principal Número de blocs de notas

*.medium 2

*.large 4

*.xlarge 8

*.2xlarge 16

*.4xlarge 24

*.8xlarge 24

*.16xlarge 24

Versiones de bloc de notas de Jupyter y PythonCuadernos de EMR ejecuta Jupyter Notebook versión 6.0.2 y Python 3.6.5 independientemente de laversión de Amazon EMR del clúster asociado.

Si especifica una ubicación cifrada en Amazon S3 para almacenar archivos de bloc de notas, debeconfigurar Rol de servicio para Cuadernos de EMR (p. 216) como usuario clave. El rol de serviciopredeterminado es EMR_Notebooks_DefaultRole. Si utiliza una clave de AWS KMS para el cifrado,consulte Usar políticas de claves en AWS KMS en la AWS Key Management Service Developer Guide y elartículo de soporte técnico para agregar usuarios de claves.

Creación de un bloc de notasPara crear un Cuaderno de EMR, deberá utilizar la consola de Amazon EMR. No se admite la creación deblocs de notas mediante la AWS CLI o la API de Amazon EMR.

Para crear un Cuaderno de EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Notebooks (Blocs de notas), Create notebook (Crear bloc de notas).3. Introduzca el Notebook name (Nombre del bloc de notas) y una Notebook description (Descripción del

bloc de notas) opcional.4. Si tiene un clúster activo que ejecuta Hadoop, Spark y Livy al que desea asociar el bloc de notas, deje

el valor predeterminado Choose an existing cluster (Elegir un clúster existente)) seleccionado, hagaclic en Choose (Elegir), seleccione un clúster en la lista y, a continuación haga clic en Choose cluster(Elegir clúster) . En la lista solo aparecerán los clústeres que cumplan los requisitos. Para obtener másinformación, consulte Consideraciones sobre el uso de Cuadernos de EMR (p. 24).

—o bien—

26

Page 34: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de un bloc de notas

Elija Create a cluster (Crear un clúster), introduzca un Cluster name (Nombre de clúster) y elijaopciones según las siguientes directrices. El clúster se crea en la VPC predeterminada para la cuentamediante instancias bajo demanda.

Opción Descripción

Cluster name (Nombre del clúster) Nombre descriptivo utilizado para identificar elclúster.

Release (Versión) No se puede modificar. El valor predeterminadoes la versión de Amazon EMR más reciente(5.30.0).

Applications (Aplicaciones) No se puede modificar. Enumera lasaplicaciones que están instaladas en el clúster.

Instance (Instancia) Introduzca el número de instancias y seleccioneel tipo de instancia EC2. Una instancia se utilizapara el nodo maestro. El resto se utiliza paranodos principales. El tipo de instancia determinael número de blocs de notas que se puedenasociar simultáneamente al clúster. Para obtenermás información, consulte Límites para blocs denotas asociadas de forma simultánea (p. 26).

Rol de EMR Deje el valor predeterminado o elija el vínculopara el que desea especificar un rol de serviciopersonalizado Amazon EMR. Para obtenermás información, consulte Rol de servicio paraAmazon EMR (Rol de EMR) (p. 209).

Perfil de instancia EC2 Deje el valor predeterminado o elija el enlacepara especificar un rol de servicio personalizadopara las instancias EC2. Para obtener másinformación, consulte Rol de servicio parainstancias EC2 del clúster (perfil de instanciaEC2) (p. 211).

EC2 key pair (Par de claves de EC2) Elija un par de claves EC2 para poderconectarse a instancias de clúster. Para obtenermás información, consulte Conexión al nodoprincipal utilizando SSH (p. 354).

5. En Security groups (Grupos de seguridad), elija Use default security groups (Usar grupos de seguridadpredeterminados). También puede elegir Choose security groups (Elegir grupos de seguridad) yseleccionar grupos de seguridad personalizados disponibles en la VPC del clúster. Seleccione unopara la instancia principal y otro para la instancia de cliente de bloc de notas. Para obtener másinformación, consulte the section called “Grupos de seguridad de Cuadernos de EMR” (p. 300).

6. En AWS Service Role (Rol de servicio de AWS), deje el valor predeterminado o elija un rolpersonalizado en la lista. La instancia de cliente para el bloc de notas utiliza este rol. Para obtener másinformación, consulte Rol de servicio para Cuadernos de EMR (p. 216).

7. En Notebook location (Ubicación del bloc de notas) elija la ubicación de Amazon S3 donde se guardael archivo del bloc de notas o especifique su propia ubicación. Si el bucket y la carpeta no existen,Amazon EMR los creará.

Amazon EMR crea una carpeta cuyo nombre es el valor indicado en Notebook ID (ID del bloc denotas) y guarda el bloc de notas en un archivo denominado NotebookName.ipynb. Por ejemplo,

27

Page 35: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de los blocs de notas

si especifica la ubicación de Amazon S3 s3://MyBucket/MyNotebooks para un bloc de notasdenominado MyFirstEMRManagedNotebook, el archivo del bloc de notas se guardará en s3://MyBucket/MyNotebooks/NotebookID/MyFirstEMRManagedNotebook.ipynb.

Si especifica una ubicación cifrada en Amazon S3, debe configurar Rol de servicio paraCuadernos de EMR (p. 216) como usuario de claves. El rol de servicio predeterminado esEMR_Notebooks_DefaultRole. Si utiliza una clave de AWS KMS para el cifrado, consulte Usarpolíticas de claves en AWS KMS en la AWS Key Management Service Developer Guide y el artículode soporte técnico para agregar usuarios de claves.

8. Opcionalmente, si ha agregado un repositorio basado en GIT a Amazon EMR que desea asociar coneste bloc de notas, elija Git repository (Repositorio de Git), haga clic en Choose repository (Elegirrepositorio) y, a continuación, seleccione un repositorio de la lista. Para obtener más información,consulte Asociación de repositorios basados en Git con Cuadernos de EMR (p. 36).

9. También puede elegir Tags (Etiquetas) y, a continuación, añadir etiquetas de clave-valor adicionalespara el bloc de notas.

Important

Se aplicará una etiqueta predeterminada con la cadena Key (Clave) establecida encreatorUserID y el valor definido como su ID de usuario de IAM para poder obteneracceso. Recomendamos que no cambie ni elimine esta etiqueta, ya que se puede utilizarpara controlar el acceso. Para obtener más información, consulte Utilizar etiquetas de clústery bloc de notas con políticas de IAM para control de acceso (p. 204).

10. Elija Create Notebook (Crear bloc de notas).

Uso de los blocs de notasDespués de crear un Cuaderno de EMR, el bloc de notas tarda unos momentos en iniciarse. El campoStatus (Estado) de la lista Notebooks (Blocs de notas) muestra Starting (Comenzando). Puede abrir unbloc de notas cuando su estado sea Ready (Listo). Es posible que el bloc de notas tarde algo más detiempo en estar Ready (Listo) si lo ha creado al mismo tiempo que un clúster.

Tip

Actualice el navegador o elija el icono de actualización situado encima de la lista de blocs denotas para actualizar el estado del bloc de notas.

Descripción de los estados del bloc de notasUn Cuaderno de EMR puede tener los siguientes valores en el campo Status (Estado) de la listaNotebooks (Blocs de notas).

Estado Significado

Ready (Listo) Puede abrir el bloc de notas con el editor de blocsde notas. Mientras el bloc de notas tenga el estadoReady (Listo), puede detenerlo o eliminarlo. Paracambiar de clúster, primero debe detener el blocde notas. Si un bloc de notas que se encuentraen el estado Ready (Listo) está inactivo duranteun periodo prolongado de tiempo, se detieneautomáticamente.

Starting (Iniciándose) El bloc de notas se está creando y asociando alclúster. Mientras se inicia un bloc de notas, no se

28

Page 36: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del editor de blocs de notas

Estado Significadopuede abrir el editor de blocs de notas, detenerlo,eliminarlo ni cambiar de clúster.

Pending (Pendiente) El bloc de notas se ha creado y está esperando aque finalice la integración con el clúster. El clústerpuede estar todavía aprovisionando recursos orespondiendo a otras solicitudes. Puede abrir eleditor de blocs de notas con el bloc de notas enmodo local. El código que se basa en los procesosdel clúster no se ejecuta y genera un error.

Stopping (Deteniéndose) El bloc de notas se está cerrando o el clúster alque está asociado se está terminando. Mientrasse detiene un bloc de notas, no se puede abrir eleditor de blocs de notas, detenerlo, eliminarlo nicambiar de clúster.

Stopped (Detenido) El bloc de notas se ha cerrado. Puede iniciar elbloc de notas en el mismo clúster, siempre queeste siga ejecutándose. Puede cambiar de clústery eliminar el clúster.

Deleting (Eliminándose) El clúster se está eliminando de la lista declústeres disponibles. El archivo del bloc denotas, NotebookName.ipynb , permanece enAmazon S3 y continúa acumulando los cargos dealmacenamiento correspondientes.

Uso del editor de blocs de notasUna ventaja de usar un Cuaderno de EMR es que puede lanzar el bloc de notas en Jupyter o JupyterLabdirectamente desde la consola.

Con Cuadernos de EMR, el editor de blocs de notas al que se obtiene acceso desde la consola de AmazonEMR es el conocido editor de blocs de notas de Jupyter de código abierto o JupyterLab. Dado que eleditor de blocs de notas se lanza en la consola de Amazon EMR, resulta más eficaz configurar el accesoque en el caso de un bloc de notas alojado en un clúster de Amazon EMR. No es necesario configurar elcliente del usuario para poder disponer de acceso web a través de SSH, reglas de grupos de seguridad yconfiguraciones de proxy. Si el usuario tiene permisos suficientes, solo tiene que abrir el editor de blocs denotas en la consola de Amazon EMR.

Solo un usuario puede abrir un Cuaderno de EMR a la vez desde Amazon EMR. Si otro usuario intentaabrir un Cuaderno de EMR que ya está abierto, se produce un error.

Important

Amazon EMR crea una URL prefirmada única para cada sesión del editor de blocs de notas,que es válida solamente durante un breve período. Le recomendamos que no comparten la URLdel editor de bloc de notas. De hacerlo se crea un riesgo de seguridad ya que los destinatariosde la URL adoptan sus permisos para editar el bloc de notas y ejecutar el código del bloc denotas durante la vida útil de la URL. Si otras personas necesitan acceso a un bloc de notas,proporcione permisos a su usuario de IAM mediante políticas de permisos y asegúrese de que elrol de servicio de Cuadernos de EMR tenga acceso a la ubicación Amazon S3. Para obtener másinformación, consulte the section called “Seguridad” (p. 34) y Rol de servicio para Cuadernosde EMR (p. 216).

29

Page 37: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCambio de clúster

Para abrir el editor de blocs de notas con un Cuaderno de EMR

1. Seleccione un bloc de notas cuyo Status (Estado) sea Ready (Listo) o Pending (Pendiente) en la listaNotebooks (Blocs de notas).

2. Elija Open in JupyterLab (Abrir en JupyterLab) o Open in Jupyter (Abrir en Jupyter).

El editor de blocs de notas de JupyterLab o Jupyter se abre en una pestaña nueva del navegador.3. En el menú Kernel, elija Change kernel (Cambiar kernel) y, a continuación, seleccione el kernel

correspondiente al lenguaje de programación que utilice.

Ahora está preparado para escribir y ejecutar código desde el editor de blocs de notas.

Cómo guardar el contenido de un bloc de notasCuando se trabaja en el editor de blocs de notas, el contenido de las celdas del bloc de notas y la salidase guardan automáticamente de forma periódica en el archivo del bloc de notas en Amazon S3. Un blocde notas que no ha sufrido cambios desde la última vez que se ha editado una celda muestra la cadena(autosaved) (guardado automático) junto al nombre del bloc de notas en el editor. Si los cambios no se hanguardado todavía, aparece la cadena unsaved changes (cambios sin guardar).

Puede guardar un bloc de notas manualmente. En el menú File (Archivo), elija Save andCheckpoint (Guardar y crear punto de comprobación) o pulse CTRL+S. Esto crea un archivodenominado NotebookName.ipynb en la carpeta checkpoints dentro de la carpeta del blocde notas en Amazon S3. Por ejemplo, s3://MyBucket/MyNotebookFolder/NotebookID/checkpoints/NotebookName.ipynb. En esta ubicación, solo se guarda el archivo de punto decomprobación más reciente.

Cambio de clústerPuede cambiar el clúster al que está asociado un Cuaderno de EMR sin cambiar el contenido del propiobloc de notas. Solo se pueden cambiar de clúster los blocs de notas que tengan el estado Stopped(Detenido).

Para cambiar el clúster de un Cuaderno de EMR

1. Si el bloc de notas que desea cambiar se está ejecutando, selecciónelo en la lista Notebooks (Blocsde notas) y elija Stop (Detener).

2. Cuando el estado del bloc de notas sea Stopped (Detenido), selecciónelo en la lista Notebooks (Blocsde notas) y, a continuación, elija View details (Ver detalles).

3. Elija Change cluster (Cambiar clúster).4. Si tiene un clúster activo que ejecuta Hadoop, Spark y Livy al que desea asociar el bloc de notas, deje

el valor predeterminado y seleccione un clúster en la lista. En la lista solo aparecerán los clústeres quecumplan los requisitos.

—o bien—

Elija Create a cluster (Crear clúster) y, a continuación, elija las opciones del clúster. Para obtener másinformación, consulte Requisitos del clúster (p. 24).

5. Elija una opción para Security groups (Grupos de seguridad) y, a continuación, elija Change clusterand start notebook (Cambiar clúster e iniciar bloc de notas).

30

Page 38: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEliminación de blocs de notas y archivos de blocs de notas

Eliminación de blocs de notas y archivos de blocs denotasCuando se elimina un Cuaderno de EMR mediante la consola de Amazon EMR, se elimina el bloc de notasde la lista de blocs de notas disponibles. Sin embargo, los archivos de blocs de notas permanecen enAmazon S3 y continúan acumulando cargos de almacenamiento.

Para eliminar un bloc de notas y sus archivos asociados

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Notebooks (Blocs de notas), seleccione el bloc de notas en la lista y, a continuación, elija View

details (Ver detalles).3. Elija el icono de carpeta que se encuentra junto a Notebook location (Ubicación del bloc de notas) y

copie la URL, que tiene el patrón s3://MyNotebookLocationPath/NotebookID/.4. Elija Delete (Eliminar).

El bloc de notas se elimina de la lista y los detalles de este ya no se pueden consultar.5. Siga las instrucciones que aparecen en ¿Cómo puedo eliminar carpetas de un bucket de S3? en la

Guía del usuario de la consola de Amazon Simple Storage Service. Vaya al bucket y la carpeta delpaso 3.

—o bien—

Si ha instalado la AWS CLI, abra un símbolo del sistema y escriba el comando que aparece al finalde este párrafo. Sustituya la ubicación de Amazon S3 por la ubicación que ha copiado anteriormente.Asegúrese de que la AWS CLI se ha configurado con las claves de acceso de un usuario quetenga permisos para eliminar la ubicación de Amazon S3. Para obtener más información, consulteConfiguración de la AWS CLI en la AWS Command Line Interface Guía del usuario.

aws s3 rm s3://MyNotebookLocationPath/NotebookID

Uso compartido de archivos de blocs de notasCada Cuaderno de EMR se guarda en Amazon S3 como un archivo denominado NotebookName.ipynb.Siempre que un archivo de bloc de notas sea compatible con la misma versión de Jupyter Notebook en laque está basado ese Cuadernos de EMR, puede abrir el bloc de notas como un Cuaderno de EMR.

La forma más fácil de abrir un archivo de bloc de notas de otro usuario es guardar el archivo*.ipynb de otrousuario en el sistema de archivos local y, a continuación, utilizar la función de carga en los editores Jupytery JupyterLab.

Puede emplear este proceso para utilizar blocs de notas de EMR compartidos por otros usuarios, blocs denotas compartidos en la comunidad de Jupyter o para restaurar un bloc de notas que se ha eliminado de laconsola mientras aún se conserva el archivo de bloc de notas.

Para utilizar un archivo de bloc de notas diferente como base de un Cuaderno de EMR

1. Antes de continuar, cierre el editor de blocs de notas para los blocs de notas con los que va a trabajary, a continuación, detenga el bloc de notas si se trata de un Cuaderno de EMR.

2. Cree un Cuaderno de EMR y asígnele un nombre. El nombre que escriba para el bloc de notas será elnombre del archivo que necesita reemplazar. El nombre de archivo nuevo debe coincidir exactamentecon el nombre de este archivo.

31

Page 39: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónSuplantación de usuario para Spark

3. Anote la ubicación en Amazon S3 que ha elegido para el bloc de notas. El archivo que va asustituir está en una carpeta con una ruta y un nombre de archivo que tienen el siguiente patrón:s3://MyNotebookLocation/NotebookID/MyNotebookName.ipynb.

4. Detenga el bloc de notas.5. Sustituya el antiguo archivo de bloc de notas en la ubicación de Amazon S3 por el nuevo y utilice

exactamente el mismo nombre.

El siguiente comando de la AWS CLI para Amazon S3 sustituye un archivo guardado en un equipolocal denominado SharedNotebook.ipynb por un Cuaderno de EMR llamado MyNotebookcuyo ID es e-12A3BCDEFJHIJKLMNO45PQRST y que se ha creado especificando MyBucket/MyNotebooksFolder en Amazon S3. Para obtener información sobre cómo utilizar la consola deAmazon S3 para copiar y sustituir archivos, consulte Carga, descarga y administración de objetos enla Guía del usuario de la consola de Amazon Simple Storage Service.

aws s3 cp SharedNotebook.ipynb s3://MyBucket/MyNotebooksFolder/-12A3BCDEFJHIJKLMNO45PQRST/MyNotebook.ipynb

Habilitar la suplantación de usuario para monitorizarla actividad del usuario y del trabajo de Spark

Cuadernos de EMR le permite configurar la suplantación de usuarios en un clúster de Spark. Estacaracterística le ayuda a realizar un seguimiento de la actividad de los trabajos iniciados desde el propioeditor de blocs de notas. Además, Cuadernos de EMR dispone de un widget de Jupyter Notebook paraver los detalles de los trabajos de Spark junto con la salida de las consultas en el editor de blocs de notas.El widget está disponible de forma predeterminada y no requiere ninguna configuración especial. Sinembargo, para ver los servidores del historial, el cliente debe configurarse para ver las interfaces web deAmazon EMR que se alojan en el nodo principal.

Configuración de la suplantación de usuarios de SparkDe forma predeterminada, los trabajos de Spark que los usuarios envían mediante el editor de blocsde notas parecen proceder de una identidad de usuario de livy indefinida. Es posible configurar lasuplantación de usuarios para dicho clúster para que estos trabajos se asocien a la identidad del usuariode IAM que ejecutó el código. Se crean directorios de usuario de HDFS en el nodo principal para cadaidentidad de usuario que ejecuta código en el bloc de notas. Por ejemplo, si el usuario NbUser1 ejecutacódigo desde el editor de blocs de notas, puede conectarse con el nodo principal y comprobar que hadoopfs -ls /user muestra el directorio /user/user_NbUser1.

Para habilitar esta característica, establezca las propiedades de las clasificaciones de configuración core-site y livy-conf. Esta característica no está disponible de forma predeterminada si se indica a AmazonEMR que cree un clúster junto con un bloc de notas. Para obtener más información sobre cómo usarclasificaciones de configuración para personalizar aplicaciones, consulte Configuración de aplicaciones enla Guía de publicación de Amazon EMR.

Utilice los siguientes valores y clasificaciones de configuración para habilitar la suplantación de usuarios enCuadernos de EMR:

[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*"

32

Page 40: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del widget de monitorización de trabajos de Spark

} }, { "Classification": "livy-conf", "Properties": { "livy.impersonation.enabled": "true" } }]

Uso del widget de monitorización de trabajos de SparkCuando se ejecuta código en el editor de blocs de notas que ejecuta a su vez trabajos de Spark en elclúster de EMR, la salida incluye un widget de Jupyter Notebook para la monitorización de trabajos deSpark. El widget proporciona detalles del trabajo y enlaces útiles a la página del servidor de historial deSpark y a la página del historial de trabajos de Hadoop, junto con los enlaces correspondientes a registrosde trabajos en Amazon S3 para los trabajos con errores.

Para ver las páginas del servidor de historial en el nodo principal del clúster, debe configurar un clienteSSH y un proxy de forma adecuada. Para obtener más información, consulte Ver las interfaces webalojadas en clústeres de Amazon EMR (p. 359). Para ver los registros en Amazon S3, el registro declúster debe estar habilitado, que es la opción predeterminada para los clústeres nuevos. Para obtenermás información, consulte Ver archivos de registro archivados en Amazon S3 (p. 321).

A continuación, se muestra un ejemplo del widget de monitorización de trabajos de Spark.

33

Page 41: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónSeguridad

Control de acceso y seguridad de los blocs denotas de EMR

Dispone de varias características que le pueden ayudar a personalizar el nivel de seguridad de Cuadernosde EMR. Esto ayuda a garantizar que únicamente los usuarios autorizados tienen acceso a un Cuadernode EMR, pueden trabajar con los blocs de notas y utilizar el editor de blocs de notas para ejecutar códigoen el clúster. Estas características operan junto con las características de seguridad disponibles para losclústeres de Amazon EMR y Amazon EMR. Para obtener más información, consulte Seguridad en AmazonEMR (p. 169).

• Puede utilizar instrucciones de política de AWS Identity and Access Management junto conetiquetas del bloc de notas para limitar el acceso. Para obtener más información, consulte Claves decondición (p. 203) y Ejemplo de instrucciones de políticas basadas en identidades para Cuadernos deEMR (p. 239).

• Los grupos de seguridad de EC2 actúan como firewalls virtuales que controlan el tráfico de red entre lainstancia principal del clúster y el editor de blocs de notas. Puede utilizar los valores predeterminadoso personalizar estos grupos de seguridad. Para obtener más información, consulte Especificación degrupos de seguridad de EC2 para blocs de notas de EMR (p. 300).

• Debe especificar un rol de servicio de AWS que determine los permisos que tiene un Cuaderno de EMRal interactuar con los demás servicios de AWS. Para obtener más información, consulte Rol de serviciopara Cuadernos de EMR (p. 216).

Instalación y uso de kernels y bibliotecasCada Cuaderno de EMR viene con un conjunto de bibliotecas y kernels preinstalados. Puede instalarbibliotecas y kernels adicionales en un clúster de Amazon EMR si el clúster tiene acceso al repositoriodonde se encuentran los kernels y bibliotecas. Por ejemplo, para clústeres en subredes privadas, esposible que tenga que configurar la traducción de direcciones de red (NAT) y proporcionar una ruta paraque el clúster acceda al repositorio PyPI público para instalar una biblioteca. Para obtener más informaciónacerca de cómo configurar el acceso externo para diferentes configuraciones de red, consulte Escenarios yejemplos en la Guía del usuario de Amazon VPC.

Instalación de kernels y bibliotecas de Python en unnodo maestro de clústerCon Amazon EMR versión 5.30.0 y posterior, exceptuando 6.0.0, puede instalar bibliotecas y kernels dePython adicionales en el nodo maestro del clúster. Después de la instalación, estos kernels y bibliotecasestán disponibles para cualquier usuario que ejecute un Cuaderno de EMR asociado al clúster. Lasbibliotecas de Python instaladas de esta manera solo están disponibles para procesos que se ejecutanen el nodo maestro. Las bibliotecas no están instaladas en nodos principales o de tareas y no estándisponibles para los ejecutores que se ejecutan en esos nodos.

Puede instalar kernels y bibliotecas ejecutando pip o conda en /emr/notebook-env/bin en el nodomaestro.

Puede ejecutarse pip como un comando de terminal desde dentro de una celda de bloc de notas. Eluso de conda requiere acceso sudo. Debe conectarse al nodo maestro usando SSH y luego ejecutarconda desde el terminal. Para obtener más información, consulte Conexión al nodo principal utilizandoSSH (p. 354).

El siguiente ejemplo muestra la instalación de sas_kernel mediante un comando de terminal desdedentro de una celda de Cuaderno de EMR utilizando el kernel de Python:

34

Page 42: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de bibliotecas adaptadas al bloc de notas

!emr/notebook-env/bin/pip install sas_kernel

Uso de bibliotecas adaptadas al bloc de notasLas bibliotecas adaptadas al bloc de notas están disponibles utilizando clústeres creados con AmazonEMR versión 5.26.0 o posterior. Las bibliotecas adaptadas al bloc de notas están pensadas para usarsesolo con el kernel PySpark. Cualquier usuario puede instalar bibliotecas adaptadas al bloc de notasadicionales desde una celda de bloc de notas. Estas bibliotecas solo están disponibles para ese usuario debloc de notas durante una sola sesión de bloc de notas. Si otros usuarios necesitan las mismas bibliotecaso el mismo usuario necesita las mismas bibliotecas en una sesión diferente, la biblioteca debe volver ainstalarse.

Condiciones y limitacionesTenga en cuenta lo siguiente al utilizar bibliotecas adaptadas al bloc de notas:

• Solo puede desinstalar las bibliotecas que se instalan mediante la API de install_pypi_package. Nopuede desinstalar ninguna biblioteca preinstalada en el clúster.

• Si se instalan las mismas bibliotecas con diferentes versiones en el clúster y como bibliotecas adaptadasal bloc de notas, la versión de la biblioteca con ámbito de bloc de notas anula la versión de la bibliotecadel clúster.

Uso de bibliotecas adaptadas al bloc de notasPara instalar bibliotecas, el clúster de Amazon EMR debe tener acceso al repositorio PyPI en el que seencuentran las bibliotecas.

Los siguientes ejemplos muestran comandos simples para enumerar, instalar y desinstalar bibliotecasdesde una celda de bloc de notas mediante las API y kernel de PySpark. Para obtener ejemplosadicionales, consulte el post Install Python libraries on a running cluster with EMR Notebooks en el blogAWS Big Data.

Example – Listado de bibliotecas actuales

El siguiente comando muestra los paquetes de Python disponibles para la sesión de bloc de notas deSpark actual. Esto muestra las bibliotecas instaladas en el clúster y las bibliotecas adaptadas al bloc denotas.

sc.list_packages()

Example – Instalación de la biblioteca de Celery

El siguiente comando instala la biblioteca de Celery como una biblioteca adaptada al bloc de notas.

sc.install_pypi_package("celery")

Después de instalar la biblioteca, el siguiente comando confirma que la biblioteca está disponible en elcontrolador Spark y los ejecutores.

import celerysc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()

35

Page 43: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAsociación de repositorios basados

en Git con Cuadernos de EMR

Example – Instalación de la biblioteca Arrow, especificación de la versión y el repositorio

El siguiente comando instala la biblioteca Arrow como una biblioteca adaptada al bloc de notas, con unaespecificación de la versión de la biblioteca y la URL del repositorio.

sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")

Example – Desinstalación de una biblioteca

El siguiente comando desinstala la biblioteca Arrow y la elimina de la sesión actual como bibliotecaadaptada al bloc de notas.

sc.uninstall_package("arrow")

Asociación de repositorios basados en Git conCuadernos de EMR

Puede asociar repositorios basados en Git con sus blocs de notas de Amazon EMR para guardar los blocsde notas en un entorno con control de versiones. Puede asociar hasta tres repositorios a un bloc de notas.Se admiten los siguientes servicios basados en Git:

• AWS CodeCommit• GitHub• Bitbucket

La asociación de repositorios basados en Git con su bloc de notas tiene las siguientes ventajas.

• Control de versiones: Puede registrar los cambios de código en un sistema de control de versiones paraque pueda revisar el historial de los cambios e invertirlos de forma selectiva.

• Colaboración: Los compañeros de trabajo que usan blocs de notas diferentes pueden compartir código através de repositorios remotos basados en GIT. Puede clonar o combinar código de repositorios remotose insertar los cambios en esos repositorios remotos.

• Reutilización de código: muchos blocs de notas de Jupyter que muestran técnicas de análisis de datos oaprendizaje automático están disponibles en repositorios de alojados públicamente como, por ejemplo,en GitHub. Puede asociar sus blocs de notas a un repositorio para reutilizar los blocs de notas deJupyter incluidos en un repositorio.

Para usar repositorios basados en Git con Cuadernos de EMR, añada los repositorios como recursos enla consola de Amazon EMR, asocie credenciales a los repositorios que requieran autenticación y vinculelos repositorios con sus blocs de notas. Puede ver una lista de repositorios que se almacenan en sucuenta y obtener más información sobre cada repositorio en la consola de Amazon EMR. Puede asociar unrepositorio basado en Git existente con un bloc de notas al crearlo.

Temas• Requisitos previos y consideraciones (p. 37)• Añadir un repositorio basado en Git a Amazon EMR (p. 37)• Actualizar o eliminar un repositorio basado en Git (p. 38)• Vincular o desvincular un repositorio basado en Git (p. 39)• Creación de un nuevo bloc de notas con un repositorio de Git asociado (p. 40)• Uso de repositorios de Git en un bloc de notas (p. 41)

36

Page 44: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónRequisitos previos y consideraciones

Requisitos previos y consideracionesTenga en cuenta lo siguiente al planear integrar un repositorio basado en Git con Cuadernos de EMR.

AWS CodeCommitSi usa un repositorio de CodeCommit, debe usar credenciales de Git y HTTPS con CodeCommit.Las claves SSH y HTTPS junto con el asistente de credenciales de la AWS CLI no son compatibles.CodeCommit no admite tokens de acceso personal (PAT). Para obtener más información, consulteUsing IAM with CodeCommit: Git Credentials, SSH Keys y AWS Access Keys en la Guía del usuario deIAM y Configuración de usuarios HTTPS mediante credenciales de Git en la Guía del usuario de AWSCodeCommit.

Consideraciones de acceso y permisosAntes de asociar un repositorio a su bloc de notas, debe asegurarse de que el clúster, el rol de Cuadernosde EMR y los grupos de seguridad tengan la configuración y los permisos correctos.

• Se requiere acceso a Internet: La interfaz de red que se inicia solo tiene una dirección IP privada. Estosignifica que el clúster al que se conecta el bloc de notas debe estar en una subred privada con unagateway de traducción de direcciones de red (NAT) o debe poder obtener acceso a Internet a través deuna gateway privada virtual. Para obtener más información, consulte Opciones de Amazon VPC.

Los grupos de seguridad del bloc de notas deben incluir una regla de salida que permita que el blocde notas envíe tráfico a Internet desde el clúster. Le recomendamos que cree sus propios grupos deseguridad. Para obtener más información, consulte Especificación de grupos de seguridad de EC2 parablocs de notas de EMR.

Important

Si la interfaz de red se inicia en una subred pública, no podrá comunicarse con Internet a travésde una gateway de Internet (IGW).

• Permisos para AWS Secrets Manager: Si utiliza Secrets Manager para almacenar secretos que utilizapara tener acceso a un repositorio, the section called “Rol de Cuadernos de EMR.” (p. 216) debe teneradjunta una política de permisos que permita la acción secretsmanager:GetSecretValue.

Añadir un repositorio basado en Git a Amazon EMRPara añadir un repositorio basado en Git como recurso en su cuenta de Amazon EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Git repositories (Repositorios de Git) y, a continuación, seleccione Add repository (Añadir

repositorio).3. En Repository name (Nombre del repositorio), escriba el nombre que desee utilizar para el repositorio

en Amazon EMR.

Los nombres solo pueden contener caracteres alfanuméricos, guiones (-) o guiones bajos (_).4. En Git repository URL (URL del repositorio de Git), escriba la URL del repositorio. Cuando se utiliza

un repositorio de CodeCommit, esta es la URL que se copia cuando elige Clone URL (Clonar URL)y, a continuación, Clone HTTPS (Clonar HTTPS), por ejemplo, https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyCodeCommitRepoName.

5. En Branch (Rama), escriba un nombre de rama.6. En Git credentials (Credenciales de Git), elija las opciones de acuerdo con las siguientes pautas.

Puede usar un nombre de usuario y una contraseña de Git o un token de acceso personal (PAT) para

37

Page 45: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónActualizar o eliminar un repositorio basado en Git

autenticarse en su repositorio. Cuadernos de EMR accede a sus credenciales de Git usando secretosalmacenados en Secrets Manager.

Opción Descripción

Usar un secreto de AWS existente Elija esta opción si ya ha guardado suscredenciales como un secreto en SecretsManager, a continuación, seleccione el nombredel secreto en la lista.

Si selecciona un secreto asociado conun nombre de usuario y contraseña deGit, el secreto debe estar en el formato{"gitUsername": MyUserName,"gitPassword": MyPassword}.

Crear un nuevo secreto Elija esta opción para asociar las credencialesde Git existentes con un nuevo secreto quecree en Secrets Manager. Realice una de lassiguientes acciones basadas en las credencialesde Git que utilice para el repositorio.

Si usa un nombre de usuario y una contraseñade Git para acceder al repositorio, seleccioneUsername and password (Nombre de usuario ycontraseña), escriba el Secret name (Nombre delsecreto) que va a usar en Secrets Manager y acontinuación escriba el Username (Nombre deusuario) y la Password (Contraseña) que asociarcon el secreto.

–O BIEN–

Si utiliza un token de acceso personal paraacceder al repositorio, seleccione Personalaccess token (PAT) (Token de acceso personal(PAT)), escriba el Secret name (Nombre delsecreto) para usar en Secrets Manager ya continuación escriba su token de accesopersonal. Para obtener más información,consulte Creating a personal access tokenfor the command line for GitHub y Personalaccess tokens for Bitbucket. Los repositoriosde CodeCommit no son compatibles con estaopción.

Usar un repositorio público sin credenciales Elija esta opción para acceder a un repositoriopúblico.

7. Elija Add repository (Añadir repositorio).

Actualizar o eliminar un repositorio basado en GitPara actualizar un repositorio basado en Git

1. En la página Git repositories (Repositorios de Git), elija el repositorio que desea actualizar.

38

Page 46: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVincular o desvincular un repositorio basado en Git

2. En la página del repositorio, elija Edit repository (Editar repositorio).3. Actualice el valor de Git credentials (Credenciales de Git) en la página del repositorio.

Para eliminar un repositorio de Git

1. En la página Git repositories (Repositorios de Git), elija el repositorio que desea eliminar.2. En la página del repositorio, elija todos los blocs de notas que están actualmente vinculados al

repositorio. Elija Unlink notebook (Desvincular bloc de notas).3. En la página del repositorio, elija Delete (Eliminar).

Note

Para eliminar el repositorio local de Git de Amazon EMR, primero debe desvincular todos los blocsde notas de este repositorio. Para obtener más información, consulte Vincular o desvincular unrepositorio basado en Git (p. 39). Al eliminar un repositorio de Git no se eliminan los secretoscreados para el repositorio. Puede eliminar el secreto en AWS Secrets Manager.

Vincular o desvincular un repositorio basado en GitPara vincular un repositorio basado en Git a un bloc de notas de EMR

El repositorio se puede vincular a un bloc de notas cuando este último tenga el estado Ready (Listo).

1. En la lista Notebooks (Blocs de notas) elija el bloc de notas que desea actualizar.2. En la sección Git repositories (Repositorios de Git), en la página Notebook (Bloc de notas), elija Link

new repository (Vincular nuevo repositorio).3. En la lista de repositorios de la ventana Link Git repository to notebook (Vincular repositorio de Git a

bloc de notas), seleccione los repositorios que desee vincular a su bloc de notas y, a continuación,elija Link repository (Vincular repositorio).

O bien

1. En la página Git repositories (Repositorios de Git), elija el repositorio que desea vincular a su bloc denotas.

2. En la lista EMR notebooks (Blocs de notas de EMR), elija Link new notebook (Vincular nuevo bloc denotas) para vincular este repositorio a un bloc de notas existente.

Para desvincular un repositorio de Git de un bloc de notas de EMR

1. En la lista Notebooks (Blocs de notas) elija el bloc de notas que desea actualizar.2. En la lista Git repositories (Repositorios de Git), seleccione el repositorio que desea desvincular del

bloc de notas y, a continuación, elija Unlink repository (Desvincular repositorio).

O bien

1. En la página Git repositories (Repositorios de Git), elija el repositorio que desea actualizar.2. En la lista EMR notebooks (Blocs de notas de EMR), seleccione el bloc de notas que desea

desvincular del repositorio y, a continuación, elija Unlink notebook (Desvincular bloc de notas).

39

Page 47: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de un nuevo bloc de notascon un repositorio de Git asociado

Note

Cuando se vincula un repositorio de Git a un bloc de notas, el repositorio remoto se clona en subloc de notas local de Jupyter. Cuando se desvincula el repositorio de Git de un bloc de notas,solo se desconecta el bloc de notas del repositorio remoto: no se elimina el repositorio local deGit.

Descripción del estado del repositorioUn repositorio Git puede tener cualquiera de los siguientes estados en la lista de repositorios. Paraobtener más información sobre cómo vincular EMR Notebooks con los repositorios Git, consulte Vincular odesvincular un repositorio basado en Git (p. 39).

Estado Significado

Linking (En proceso de vinculación) El repositorio de Git se está vinculando al blocde notas. Mientras el repositorio tiene el estadoLinking (En proceso de vinculación), no se puededetener el bloc de notas.

Linked (Vinculado) El repositorio de Git está vinculado al bloc denotas. Mientras el repositorio tenga el estadoLinked (Vinculado), estará conectado al repositorioremoto.

Link Failed (Error al vincular) El repositorio de Git no pudo vincularse al bloc denotas. Puede intentar vincularlo de nuevo.

Unlinking (En proceso de desvinculación) El repositorio de Git se está desvinculando del blocde notas. Mientras el repositorio tenga el estadoUnlinking (En proceso de desvinculación), no podrádetener el bloc de notas. Cuando se desvinculaun repositorio de Git de un bloc de notas solo sedesconecta del repositorio remoto: no se eliminaningún código del bloc de notas.

Unlink Failed (Error al desvincular) El repositorio de Git no se pudo desvincular delbloc de notas. Puede intentar desvincularlo denuevo.

Creación de un nuevo bloc de notas con un repositoriode Git asociadoPara crear un bloc de notas y asociarlo con repositorios de Git en la Consola de administración deAWS

1. Siga las instrucciones de Creación de un bloc de notas (p. 26).2. En Security group (Grupo de seguridad), elija Use your own security group (Usar su propio grupo de

seguridad).

Note

Los grupos de seguridad del bloc de notas deben incluir una regla de salida para permitirque el bloc de notas envíe tráfico a Internet a través del clúster. Es recomendable que cree

40

Page 48: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de repositorios de Git en un bloc de notas

sus propios grupos de seguridad. Para obtener más información, consulte Especificación degrupos de seguridad de EC2 para blocs de notas de EMR.

3. En Git repositories (Repositorios de Git), elija el repositorio que desee asociar al bloc de notas.

1. Elija un repositorio almacenado como recurso en su cuenta y, a continuación, elija Save (Guardar).2. Para añadir un nuevo repositorio como recurso a su cuenta, elija add a new repository (añadir un

nuevo repositorio). Complete el flujo de trabajo Add repository (Añadir repositorio) en una ventananueva.

Uso de repositorios de Git en un bloc de notasPuede elegir Open in JupyterLab (Abrir en JupyterLab) o Open in Jupyter (Abrir en Jupyter) al abrir un blocde notas.

Si elige abrir el bloc de notas en Jupyter, se muestra una lista expandible de archivos y carpetas dentro delbloc de notas. Puede ejecutar manualmente comandos de Git como los siguientes en una celda del bloc denotas.

!git pull origin master

Para abrir cualquiera de los repositorios adicionales, desplácese hasta otras carpetas.

Si decide abrir el bloc de notas con una interfaz de JupyterLab, se instala la extensión jupyter-git y estádisponible para su uso. Para obtener información sobre la extensión jupyter-git de JupyterLab, consultejupyterlab-git.

41

Page 49: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar la ubicación del clúster

y el almacenamiento de datos

Planificar y configurar clústeresEn esta sección se explican las opciones de configuración y las instrucciones de planificación,configuración y lanzamiento de clústeres con Amazon EMR. Antes de lanzar un clúster, elija opciones delsistema en función de los datos que está procesando y de los requisitos de costo, velocidad, capacidad,disponibilidad, seguridad y capacidad de administración. Las opciones incluyen:

• La región donde ejecutar un clúster, dónde y cómo almacenar datos y cómo extraer resultados. ConsulteConfigurar la ubicación del clúster y el almacenamiento de datos (p. 42).

• Si está ejecutando Amazon EMR clústeres en Outposts o Zonas locales. Consulte Clústeres de EMR enAWS Outposts (p. 69) o Clústeres de EMR en Zonas locales de AWS (p. 71).

• Si un clúster es de ejecución prolongada o transitorio y el software que ejecuta. Consulte Configuraciónde un clúster para la terminación automática o para continuar (p. 101) y Configuración de software declúster (p. 116).

• Si un clúster tiene un único nodo principal o tres nodos principales. Consulte Planificación yconfiguración de nodos principales (p. 60).

• Las opciones de hardware y red que optimizan costos, el desempeño y la disponibilidad para laaplicación. Consulte Configuración del hardware y las redes de los clústeres (p. 120).

• Cómo configurar los clústeres para que pueda administrarlos con más facilidad y monitorizar la actividad,el desempeño y la salud. Consulte Configurar el registro de clúster y depuración (p. 157) y Etiquetadode clústeres (p. 163).

• Cómo autenticar y autorizar el acceso a los recursos de clústeres y cómo cifrar los datos. ConsulteSeguridad en Amazon EMR (p. 169).

• Cómo integrarlo con otro software y servicios. Consulte Integración de controladores y aplicación deterceros (p. 167).

Configurar la ubicación del clúster y elalmacenamiento de datos

Esta sección describe cómo configurar la región para un clúster, los diferentes sistemas de archivosdisponibles cuando utilice Amazon EMR y cómo utilizarlos. También trata la preparación o carga de datosen Amazon EMR si es necesario, así como la manera de preparar una ubicación de salida para archivosde registro y cualquier archivo de datos de salida que configure.

Temas• Elija una región de AWS. (p. 42)• Trabajo con almacenamiento y sistemas de archivos (p. 44)• Preparar datos de entrada (p. 46)• Configurar una ubicación de salida (p. 55)

Elija una región de AWS.Amazon Web Services se ejecuta en servidores de centros de datos de todo el mundo. Los centros dedatos están organizados en regiones geográficas. Al lanzar un clúster de Amazon EMR, debe especificaruna región. Puede elegir la región para reducir la latencia, minimizar los costos o satisfacer los requisitosreglamentarios. Para ver la lista de regiones y puntos de enlace admitidos por Amazon EMR, consulteRegiones y puntos de enlace en la Referencia general de Amazon Web Services.

42

Page 50: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónElija una región de AWS.

Para obtener el máximo rendimiento, debe lanzar el clúster en la misma región que los datos. Por ejemplo,si el bucket de Amazon S3 que almacena los datos de entrada se encuentra en la región EE.UU. Oeste(Oregón), debe lanzar el clúster en la región EE.UU. Oeste (Oregón) para evitar las tarifas de transferenciade datos entre regiones. Si utiliza un bucket de Amazon S3 para recibir la salida del clúster, tambiéndebería crearlo en la región EE.UU. Oeste (Oregón).

Si tiene previsto asociar un par de claves de Amazon EC2 con el clúster (necesarias para usar SSH parainiciar sesión en el nodo principal), el par de claves debe crearse en la misma región que el clúster. Delmismo modo, los grupos de seguridad que crea Amazon EMR para administrar el clúster se crean en lamisma región que el clúster.

Si se registró en una cuenta de AWS el 17 de mayo de 2017 o después, la región predeterminada cuandotiene acceso a un recurso desde la Consola de administración de AWS es EE.UU. Este (Ohio) (us-east-2);para cuentas anteriores a esa fecha, la región predeterminada es EE.UU. Oeste (Oregón) (us-west-2) o USEast (N. Virginia) (us-east-1). Para obtener más información, consulte Regiones y puntos de enlace.

Algunas características de AWS solo están disponibles en algunas regiones. Por ejemplo, las instanciasde informática en clúster solo están disponibles en la región US East (N. Virginia), y la región Asia Pacífico(Sídney) admite solo Hadoop 1.0.3 y versiones posteriores. Cuando elija una región, compruebe queadmite las características que desea utilizar.

Para obtener el máximo rendimiento, utilice la misma región para todos los recursos de AWS que seutilizarán con el clúster. La siguiente tabla asigna los nombres de región entre servicios. Para ver una listade las regiones de Amazon EMR, consulte Regiones y puntos de enlace de AWS en la Referencia generalde Amazon Web Services.

Elegir una región utilizando la consolaLa región predeterminada se muestra automáticamente.

Para cambiar las regiones mediante la consola

• Para cambiar las regiones, elija la lista de regiones a la derecha de la información de su cuenta en labarra de navegación.

Especificar una región mediante la AWS CLIPara especificar una región predeterminada en la AWS CLI, utilice el comando aws configure o la variablede entorno AWS_DEFAULT_REGION. Para obtener más información, consulte Configuración de la región deAWS en la AWS Command Line Interface Guía del usuario.

Elegir una región utilizando un SDK o la APIPara elegir una región con un SDK, configure su aplicación para que utilice el punto de enlace de esaregión. Si está creando una aplicación cliente mediante un SDK de AWS, puede cambiar el punto deenlace del cliente llamando setEndpoint, tal y como se muestra en el ejemplo siguiente:

client.setEndpoint("elasticmapreduce.us-west-2.amazonaws.com");

Después de que la aplicación haya especificado una región definiendo el punto de enlace, puedeconfigurar la zona de disponibilidad de las instancias EC2 de su clúster. Las zonas de disponibilidad sonregiones geográficas diferentes que están diseñadas para estar aisladas de errores que se produzcanen otras zonas de disponibilidad y que proporcionan conectividad de red de baja latencia a otras Zonasde disponibilidad de la misma región. Una región consta de una o varias zonas de disponibilidad. Paraoptimizar el rendimiento y reducir la latencia, todos los recursos deben estar situados en la misma zona dedisponibilidad que el clúster que los utiliza.

43

Page 51: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTrabajo con almacenamiento y sistemas de archivos

Trabajo con almacenamiento y sistemas de archivosAmazon EMR y Hadoop proporcionan una variedad de sistemas de archivos que puede utilizar al procesarpasos de clústeres. Puede especificar qué sistema de archivos utilizar mediante el prefijo del URI utilizadopara acceder a los datos. Por ejemplo, s3://AWSDOC-EXAMPLE-BUCKET1/path hace referencia aun bucket de Amazon S3 mediante EMRFS. En la siguiente tabla se muestran los sistemas de archivosdisponibles, con recomendaciones sobre la hora que es mejor utilizar cada una de ellas.

Amazon EMR y Hadoop suelen utilizar dos o más de los siguientes sistemas de archivos al procesar unclúster. HDFS y EMRFS son los dos sistemas de archivos principales que se utilizan con Amazon EMR.

Important

A partir de la versión de lanzamiento 5.22.0 de Amazon EMR, Amazon EMR utiliza AWSSignature Version 4 en exclusiva para autenticar solicitudes para Amazon S3. Las versiones delanzamiento de Amazon EMR anteriores utilizan AWS Signature Version 2 en algunos casos,salvo que las notas de la versión indiquen que se utiliza Signature Version 4 en exclusiva. Paraobtener más información, consulte Autenticación de solicitudes (AWS Signature Version 4) yAutenticación de solicitudes (AWS Signature Version 2) en la Guía para desarrolladores deAmazon Simple Storage Service.

Sistema de archivos Prefix Descripción

HDFS hdfs:// (osin prefijo)

HDFS es un sistema de archivos distribuido, escalabley portátil para Hadoop. Una ventaja de HDFS es elreconocimiento de datos entre los nodos de clúster deHadoop que administran los clústeres y los nodos declúster de Hadoop que administran los pasos individuales.Para obtener más información, consulte la documentaciónde Hadoop.

Los nodos principales y los nodos secundarios utilizanHDFS. Una ventaja es que es rápido; una desventajaes que se trata de almacenamiento efímero que sereclama cuando el clúster finaliza. Es mejor utilizarlo paraalmacenar en caché los resultados producidos por pasosde flujos de trabajo intermedios.

EMRFS s3:// EMRFS es una implementación del sistema de archivosHadoop utilizada para lectura y escritura de archivos detamaño normal desde Amazon EMR directamente enAmazon S3. EMRFS ofrece la comodidad de almacenarlos datos persistentes en Amazon S3 para su uso conHadoop además de ofrecer características como el cifradodel lado del servidor de Amazon S3, la consistencia delectura tras escritura y la consistencia de lista.

Note

Anteriormente, Amazon EMR utilizaba el sistemade archivos nativo de S3 con el esquema deURI, s3n. Aunque esto todavía funciona, serecomienda utilizar el esquema de URI s3 para unmejor rendimiento, seguridad y fiabilidad.

sistema de archivos local   El sistema de archivos local se refiere a un discoconectado a nivel local. Cuando se crea un clúster deHadoop, cada nodo se crea a partir de una instanciaEC2 que viene con un bloque preconfigurado de

44

Page 52: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTrabajo con almacenamiento y sistemas de archivos

Sistema de archivos Prefix Descripciónalmacenamiento en disco preasociado que se denominaalmacén de instancias. Los datos en volúmenes delalmacén de instancias se conservan solo durante la vidade su instancia EC2. Los volúmenes de almacén deinstancias son ideales para el almacenamiento temporal dedatos que cambian constantemente, como los búferes, lascachés, los datos de pruebas y otro contenido temporal.Para obtener más información, consulte Almacén deinstancias Amazon EC2.

Sistema de archivos debloques de Amazon S3(heredado)

s3bfs:// El sistema de archivos de bloque de Amazon S3 esun sistema de almacenamiento de archivos heredado.Recomendamos encarecidamente evitar el uso de estesistema.

Important

Le recomendamos que no use este sistema dearchivos, ya que puede activar una condiciónde carrera que podrían provocar un error delclúster. Sin embargo, es posible que aplicacionesheredadas lo requieran.

Note

No se admite el protocolo s3a. Le recomendamos que utilice s3 en lugar de s3a.

Sistemas de archivo de accesoPuede especificar qué sistema de archivos utilizar mediante el prefijo del identificador de recursos uniforme(URI) utilizado para acceder a los datos. Los siguientes procedimientos ilustran cómo hacer referencia adiferentes tipos de sistemas de archivos.

Para acceder a una HDFS local

• Especifique el prefijo hdfs:/// en el URI. Amazon EMR resuelve las rutas que no especifican unprefijo en el URI ala HDFS local. Por ejemplo, los dos siguientes URI resolverían la misma ubicaciónen HDFS.

hdfs:///path-to-data /path-to-data

Para acceder a una HDFS remota

• Incluya la dirección IP del nodo principal en el URI, tal y como se muestra en los siguientes ejemplos.

hdfs://master-ip-address/path-to-data master-ip-address/path-to-data

45

Page 53: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

Para acceder a Amazon S3

• Utilice el prefijo s3://.

s3://bucket-name/path-to-file-in-bucket

Para acceder al sistema de archivos de bloques de Amazon S3

• Se utiliza únicamente por las aplicaciones tradicionales que requieren el sistema de archivos debloques de Amazon S3. Para acceder a datos o almacenar datos con este sistema de archivos, utiliceel prefijo s3bfs:// en el URI.

El sistema de archivos de bloques de Amazon S3 es un sistema de archivos heredado que se utilizabapara soportar cargas en Amazon S3 de más de 5 GB. Con la funcionalidad de carga multiparte queAmazon EMR proporciona a través del AWS SDK para Java, puede cargar archivos de hasta 5 TB enel sistema de archivos nativo de Amazon S3, y el sistema de archivos de bloques de Amazon S3 estáobsoleto.

Warning

Dado que este sistema de archivos heredado puede crear condiciones de carrera quepodrían provocar daños en el sistema de archivos, debe evitar este formato y usar EMRFS ensu lugar.

s3bfs://bucket-name/path-to-file-in-bucket

Preparar datos de entradaLa mayoría de los clústeres cargan los datos de entrada y, a continuación, procesan dichos datos. Paracargar datos, tiene que estar en una ubicación a la que el clúster pueda acceder y en un formato que elclúster pueda procesar. La situación más habitual consiste en cargar los datos de entrada en Amazon S3.Amazon EMR proporciona herramientas para el clúster para importar o leer datos desde Amazon S3.

El formato de entrada predeterminado en Hadoop son archivos de texto, aunque puede personalizarHadoop y utilizar herramientas para importar los datos almacenados en otros formatos.

Temas• Tipos de entrada que Amazon EMR puede aceptar (p. 46)• Cómo obtener datos en Amazon EMR (p. 47)

Tipos de entrada que Amazon EMR puede aceptarEl formato de entrada predeterminado para un clúster son archivos de texto con cada línea separada porun carácter de nueva línea (\n), que es el formato de entrada usado con más frecuencia.

Si los datos de entrada se encuentran en un formato que no sean los archivos de texto predeterminados,puede utilizar la interfaz de Hadoop InputFormat para especificar otros tipos de entrada. Puede inclusocrear una subclase de la clase FileInputFormat para gestionar tipos de datos personalizados. Paraobtener más información, consulte http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/InputFormat.html.

46

Page 54: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

Si utiliza Hive, puede utilizar un serializador/deserializador (SerDe) para leer datos desde un formato dadoen HDFS. Para obtener más información, consulte https://cwiki.apache.org/confluence/display/Hive/SerDe.

Cómo obtener datos en Amazon EMRAmazon EMR proporciona varias formas de obtener datos en un clúster. La forma más común consisteen cargar los datos en Amazon S3 y utilizar las características integradas de Amazon EMR para cargarlos datos en el clúster. También puede utilizar la función de caché distribuida de Hadoop para transferirarchivos desde un sistema de archivos distribuido en el sistema de archivos local. La implementación deHive proporcionada por Amazon EMR (Hive versión 0.7.1.1 y posteriores) incluye la funcionalidad quepuede utilizar para importar y exportar datos entre DynamoDB y un clúster de Amazon EMR. Si tiene unagran cantidad de datos on-premises para procesar, puede encontrar útil el servicio AWS Direct Connect.

Temas• Cargar datos en Amazon S3 (p. 47)• Importar archivos con caché distribuida (p. 51)• Cómo procesar archivos comprimidos (p. 54)• Importar datos de DynamoDB en Hive (p. 54)• Conectarse a datos con AWS DirectConnect (p. 54)• Cargar grandes cantidades de datos con AWS Import/Export (p. 55)

Cargar datos en Amazon S3Para obtener información sobre cómo cargar objetos en Amazon S3, consulte Añadir un objeto a un bucketen la Guía de introducción a Amazon Simple Storage Service. Para obtener más información sobre el usode Amazon S3 con Hadoop, consulte http://wiki.apache.org/hadoop/AmazonS3.

Temas• Creación y configuración de un bucket de Amazon S3 (p. 47)• Configuración de carga multiparte para Amazon S3 (p. 48)• Prácticas recomendadas de (p. 50)

Creación y configuración de un bucket de Amazon S3

Amazon EMR utiliza el AWS SDK for Java con Amazon S3 para almacenar los datos de entrada, losarchivos de registro y los datos de salida. En Amazon S3, estas ubicaciones de almacenamiento sedenominan buckets. Los buckets tienen ciertas restricciones y limitaciones para cumplir con los requisitosde Amazon S3 y DNS. Para obtener más información, consulte Bucket Restrictions and Limitations en Guíapara desarrolladores de Amazon Simple Storage Service.

En esta sección, se muestra cómo utilizar la Consola de administración de AWS de Amazon S3 para creary después definir permisos para un bucket de Amazon S3. También puede crear y establecer permisospara un bucket de Amazon S3 con la API o la AWS CLI de Amazon S3. También puede utilizar Curl juntocon una modificación para pasar los parámetros de autenticación correspondientes a Amazon S3.

Consulte los siguientes recursos:

• Para crear un bucket mediante la consola, consulte Crear un bucket en la Guía del usuario de la consolade Amazon Simple Storage Service.

• Para crear y trabajar con buckets mediante la AWS CLI, consulte Uso de comandos de S3 de alto nivelcon la AWS Command Line Interface en la Guía del usuario de la consola de Amazon Simple StorageService.

• Para crear un bucket con un SDK, consulte Ejemplos de creación de buckets en la Guía paradesarrolladores de Amazon Simple Storage Service.

47

Page 55: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

• Para trabajar con buckets mediante Curl, consulte el tema relacionado con la Herramienta deautenticación de Amazon S3 para Curl.

• Para obtener más información sobre la especificación de buckets específicos de una región, consulteAcceso a un bucket en la Guía para desarrolladores de Amazon Simple Storage Service.

Note

Si habilita el registro para un bucket, se habilitan únicamente los registros de acceso al bucket, nolos registros de los clústeres de Amazon EMR.

Durante la creación de un bucket o posteriormente, puede definir los permisos adecuados para teneracceso a él, en función de su aplicación. Lo habitual es que se conceda a sí mismo (el propietario) accesode lectura y de escritura, así como acceso de lectura a los usuarios autenticados.

Los buckets de Amazon S3 necesarios deben existir para poder crear un clúster. Debe cargar en AmazonS3 todos los scripts o datos necesarios a los que se hace referencia en el clúster. En la siguiente tabla sedescriben ubicaciones de ejemplo de datos, scripts y archivos de registro.

Configuración de carga multiparte para Amazon S3

Amazon EMR admite la carga multiparte de Amazon S3 a través del AWS SDK para Java. La cargamultiparte permite cargar un solo objeto como un conjunto de partes. Puede cargar estas partes de objetode forma independiente y en cualquier orden. Si la transmisión de cualquier parte falla, puede retransmitiresta parte sin que las demás partes se vean afectadas. Después de cargar todas las partes del objeto,Amazon S3 combina las partes y crea el objeto.

Para obtener más información, consulte Información general de carga multiparte en la Guía paradesarrolladores de Amazon Simple Storage Service.

Además, Amazon EMR ofrece propiedades que le permiten controlar de manera más precisa la limpiezade partes de carga multiparte con errores.

En la siguiente tabla, se describen las propiedades de configuración de Amazon EMR para la cargamultiparte. Puede configurarlas utilizando la clasificación de configuración core-site. Para obtener másinformación, consulte Configuración de aplicaciones en la Guía de publicación de Amazon EMR.

Nombre de parámetro deconfiguración

Valorpredeterminado

Descripción

fs.s3n.multipart.uploads.enabledtrue Un tipo booleano que indica si habilitar lascargas multiparte. Cuando EMRFS Vistaconsistente (p. 76) está habilitado, lascargas multiparte están habilitadas de formapredeterminada y si se configura este valor enfalse, no se tiene en cuenta.

fs.s3n.multipart.uploads.split.size134217728 Especifica el tamaño máximo de una parte,en bytes, para que EMRFS inicie la carga deuna parte nueva cuando las cargas multiparteestán habilitadas. El valor mínimo es 5242880(5 MB). Si se especifica un valor menor,se utiliza 5242880. El valor máximo es5368709120 (5 GB). Si se especifica un valormayor, se utiliza 5368709120.

Si el cifrado del lado del cliente de EMRFSestá deshabilitado y el confirmador optimizadode Amazon S3 también está deshabilitado,

48

Page 56: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

Nombre de parámetro deconfiguración

Valorpredeterminado

Descripción

este valor también controla el tamaño máximoque puede alcanzar un archivo de datos paraque EMRFS utilice cargas multiparte en lugarde una solicitud PutObject para cargarel archivo. Para obtener más información,consulte

fs.s3n.ssl.enabled true Un tipo booleano que indica si se debe utilizarhttp o https.

fs.s3.buckets.create.enabledfalse Un tipo booleano que indica si se debecrear un bucket en caso de que no exista.Si se establece en false, se provocará unaexcepción en las operaciones CreateBucket.

fs.s3.multipart.clean.enabledfalse Un tipo booleano que indica si se debe habilitarla limpieza periódica en segundo plano de lascargas multiparte incompletas.

fs.s3.multipart.clean.age.threshold604800 Un tipo long que especifica la edad mínimade una carga multiparte, en segundos, antesde que se la incluya en la limpieza. El valorpredeterminado es una semana.

fs.s3.multipart.clean.jitter.max10000 Un tipo entero que especifica la cantidadmáxima de retraso de fluctuación aleatorio,en segundos, que se añade al retraso fijo de15 minutos antes de programar la próximaronda de limpieza.

Deshabilitar la carga multiparte mediante la consola de Amazon EMR

Este procedimiento explica cómo deshabilitar la carga multiparte utilizando la consola de Amazon EMR alcrear un clúster.

Para deshabilitar las cargas multiparte

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. En Edit Software Settings (Editar configuración de software), introduzca la configuración siguiente:

classification=core-site,properties=[fs.s3.multipart.uploads.enabled=false]

4. Continúe con la creación del clúster.

Deshabilitar la carga multiparte mediante la AWS CLI

Este procedimiento explica cómo deshabilitar la carga multiparte utilizando la AWS CLI. Para deshabilitar lacarga multiparte, escriba el comando create-cluster con el parámetro --bootstrap-actions.

Para deshabilitar la carga multiparte mediante la AWS CLI

1. Cree un archivo myConfig.json con el siguiente contenido y guárdelo en el mismo directorio en elque va a ejecutar el comando:

[

49

Page 57: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

{ "Classification": "core-site", "Properties": { "fs.s3n.multipart.uploads.enabled": "false" } }]

2. Escriba el comando siguiente y sustituya myKey por el nombre del par de claves de EC2.Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --name "Test cluster" \--release-label emr-5.30.0 --applications Name=Hive Name=Pig \--use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \--instance-count 3 --configurations file://myConfig.json

Deshabilitar la carga multiparte mediante la API

Para obtener información sobre cómo utilizar las cargas multiparte de Amazon S3 mediante programación,consulte Uso de AWS SDK para Java para carga multiparte en la Guía para desarrolladores de AmazonSimple Storage Service.

Para obtener más información sobre el AWS SDK para Java, consulte AWS SDK para Java.

Prácticas recomendadas de

A continuación se indican las recomendaciones para utilizar buckets de Amazon S3 con clústeres de EMR.

Habilitar el control de versiones

El control de versiones es una configuración recomendada para su bucket de Amazon S3. Al habilitar elcontrol de versiones, se asegura de que incluso si se eliminan o se sobrescriben involuntariamente losdatos, se puedan recuperar. Para obtener más información, consulte Uso del control de versiones en laGuía para desarrolladores de Amazon Simple Storage Service.

Limpiar las cargas multiparte con errores

Los componentes del clúster de EMR utilizan cargas multiparte a través del AWS SDK para Java con lasAPI de Amazon S3 para escribir los archivos de registro y los datos de salida en Amazon S3 de formapredeterminada. Para obtener más información sobre cómo cambiar las propiedades relacionadas conesta configuración mediante Amazon EMR, consulte Configuración de carga multiparte para AmazonS3 (p. 48). En ocasiones, la carga de un archivo de gran tamaño puede dar lugar a una carga multipartede Amazon S3 incompleta. Cuando una carga multiparte no se puede completar de forma satisfactoria,la carga multiparte en curso sigue ocupando su bucket e incurre en costos de almacenamiento. Lerecomendamos las siguientes opciones para evitar un almacenamiento de archivos excesivo:

• Para los buckets que utilice con Amazon EMR, use una regla de configuración del ciclo de vida enAmazon S3 que elimine las cargas multiparte incompletas tres días después de la fecha de inicio de lacarga. Las reglas de configuración del ciclo de vida le permiten controlar la clase de almacenamiento y elciclo de vida de los objetos. Para obtener más información, consulte Administración del ciclo de vida delos objetos y Anulación de cargas multiparte incompletas con la política de ciclo de vida de buckets.

• Habilite la característica de limpieza de cargas multiparte de Amazon EMR estableciendofs.s3.multipart.clean.enabled en TRUE y ajustando otros parámetros de limpieza. Estacaracterística es útil con volúmenes altos y a gran escala, así como con clústeres que tienen untiempo de actividad limitado. En este caso, el parámetro DaysAfterIntitiation de una regla de

50

Page 58: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

configuración del ciclo de vida puede ser demasiado largo, incluso si se establece en su valor mínimo,provocando picos en el almacenamiento de Amazon S3. La limpieza de cargas multiparte de AmazonEMR permite un control más preciso. Para obtener más información, consulte Configuración de cargamultiparte para Amazon S3 (p. 48).

Administrar los marcadores de versiones

Recomendamos habilitar una regla de configuración del ciclo de vida en Amazon S3 para eliminar losmarcadores de eliminación de objetos caducados de los buckets con control de versiones que utilicecon Amazon EMR. Al eliminar un objeto de un bucket con control de versiones, se crea un marcador deeliminación. Si todas las versiones anteriores del objeto caducan posteriormente, queda un marcadorde eliminación de objeto caducado en el bucket. Aunque no se aplican cargos por los marcadores deeliminación, si borra los marcadores caducados puede mejorar el rendimiento de las solicitudes deLIST. Para obtener más información, consulte Configuración ciclo de vida para un bucket con control deversiones en la Guía del usuario de la consola de Amazon Simple Storage Service.

Prácticas recomendadas de rendimiento

En función de las cargas de trabajo, los tipos específicos de uso de clústeres de EMR y las aplicacionesen dichos clústeres pueden dar lugar a un número elevado de solicitudes en su bucket. Para obtener másinformación, consulte Velocidad de solicitudes y directrices de desempeño en la Guía para desarrolladoresde Amazon Simple Storage Service.

Importar archivos con caché distribuida

Temas• Tipos de archivo admitidos (p. 51)• Ubicación de los archivos en caché (p. 52)• Acceso a archivos almacenados en caché desde aplicaciones de streaming (p. 52)• Acceso a archivos almacenados en caché desde aplicaciones de streaming utilizando la consola de

Amazon EMR (p. 52)• Acceso a archivos almacenados en caché desde aplicaciones de streaming utilizando la AWS

CLI (p. 53)

La caché distribuida es una característica de Hadoop que puede aumentar la eficacia cuando una tareaMap o Reduce necesita acceder a datos comunes. Si el clúster depende de aplicaciones existentes obinarios que no se instalaron al crear el clúster, puede utilizar la caché distribuida para importar estosarchivos. Esta característica permite a un nodo de clúster leer los archivos importados desde su sistema dearchivos local, en lugar de recuperar los archivos desde otros nodos del clúster.

Para obtener más información, visite http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html.

Invoca la caché distribuida al crear el clúster. Los archivos se almacenan en caché justo antes de empezarel trabajo de Hadoop y los archivos permanecen almacenados en la memoria caché durante el tiempo quedura el trabajo. Puede almacenar en caché los archivos almacenados en cualquier sistema de archivoscompatible con Hadoop, por ejemplo, HDFS o Amazon S3. El tamaño predeterminado de la caché dearchivos es de 10 GB. Para cambiar el tamaño de la caché, vuelva a configurar el parámetro de Hadoop,local.cache.size a través de la acción de arranque. Para obtener más información, consulte Creaciónde acciones de arranque para instalar software adicional (p. 116).

Tipos de archivo admitidos

La caché distribuida única permite tanto archivos individuales como archivos de almacenamiento. Losarchivos individuales se almacenan en caché como de solo lectura. Los archivos ejecutables y binariostienen establecidos permisos de ejecución.

51

Page 59: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

Los archivos de almacenamiento son uno o más archivos empaquetados a través de una utilidad, porejemplo gzip. La caché distribuida transfiere los archivos comprimidos a cada nodo secundario ydescomprime el archivo como parte del proceso de almacenamiento en caché. La caché distribuida escompatible con los siguientes formatos de compresión:

• zip• tgz• tar.gz• tar• jar

Ubicación de los archivos en caché

La caché distribuida únicamente copia los archivos en los nodos secundarios. Si no hay nodos secundariosen el clúster, la caché distribuida copia los archivos en el nodo principal.

La caché distribuida asocia los archivos en caché al directorio de trabajo actual al mapeador y reductorutilizando symlinks. Un symlink es un alias a una ubicación de archivo, no la ubicación de archivo real. Elvalor del parámetro yarn.nodemanager.local-dirs de yarn-site.xml especifica la ubicación delos archivos temporales. Amazon EMR establece este parámetro en , /mnt/mapred o en alguna variaciónbasada en el tipo de instancia y la versión de EMR. Por ejemplo, una configuración podría tener /mnt/mapred y /mnt1/mapred dado que el tipo de instancia tiene dos volúmenes efímeros. Los archivosde caché se encuentran en un subdirectorio de la ubicación de archivos temporales en /mnt/mapred/taskTracker/archive.

Si almacena en caché un único archivo, la caché distribuida coloca el archivo en el directorio archive.Si almacena en caché un archivo de almacenamiento, la caché distribuida descomprime el archivo,crea un subdirectorio en /archive con el mismo nombre que el nombre de archivo del archivo dealmacenamiento. Los archivos individuales se encuentran en el nuevo subdirectorio.

Puede utilizar la caché distribuida solo cuando se utiliza Streaming.

Acceso a archivos almacenados en caché desde aplicaciones de streaming

Para acceder a los archivos almacenados en la memoria caché de sus aplicaciones de mapeadoro reductor, asegúrese de añadir el directorio de trabajo actual (./) en la ruta de la aplicación y hacerreferencia a los archivos en caché aunque estén presentes en el directorio de trabajo actual.

Acceso a archivos almacenados en caché desde aplicaciones de streaming utilizando la consolade Amazon EMR

Puede utilizar la consola de Amazon EMR para crear clústeres de caché que utilizan la caché distribuida.

Para especificar los archivos de caché distribuida utilizando la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Step execution (Ejecución de pasos) como modo de lanzamiento.4. En la sección Steps (Pasos), en el campo Add step (Añadir paso), elija Streaming program (Programa

de streaming) en la lista y haga clic en Configure and add (Configurar y añadir).5. En el campo Arguments (Argumentos), incluya los archivos y archivos de almacenamiento que desea

guardar en la memoria caché y haga clic en Add (Añadir).

El tamaño del archivo (o tamaño total de los archivos en un archivo de almacenamiento) debe sermenor que el tamaño de la memoria caché asignado.

52

Page 60: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

Sidesea…

Acción Ejemplo

Añadirunarchivoindividuala lacachédistribuida

Especifique -cacheFile seguido delnombre y la ubicacióndel archivo, el signode almohadilla (#) y, acontinuación, el nombreque desea dar al archivocuando se coloca en lacaché local.

–cacheFile \s3://bucket_name/file_name#cache_file_name

Añadirunarchivodearchivodealmacenamientoa lacachédistribuida

Escriba -cacheArchive seguidode la ubicación de losarchivos en Amazon S3,el signo de almohadilla(#) y, a continuación, elnombre que desee dar ala colección de archivosde la caché local.

–cacheArchive \s3://bucket_name/archive_name#cache_archive_name

6. Continúe con la configuración y el lanzamiento del clúster. El clúster copia los archivos en la ubicaciónde caché antes de procesar ningún paso de clúster.

Acceso a archivos almacenados en caché desde aplicaciones de streaming utilizando la AWS CLI

Puede utilizar la CLI para crear clústeres de caché que utilizan la caché distribuida.

Para especificar los archivos de caché distribuida utilizando la AWS CLI

• Para enviar un paso de streaming cuando se crea un clúster, escriba el comando create-clustercon el parámetro --steps. Para especificar archivos de caché distribuida con la AWS CLI,especifique los argumentos adecuados al enviar un paso de streaming.

Si desea… Añada los siguientes parámetros al clúster...

añadir un archivo individuala la caché distribuida

especifique -cacheFile seguido del nombre y la ubicación delarchivo, el signo de almohadilla (#) y, a continuación, el nombre quedesea dar al archivo cuando se coloca en la caché local.

añadir un archivo dearchivo de almacenamientoa la caché distribuida

Escriba -cacheArchive seguido de la ubicación de los archivos enAmazon S3, el signo de almohadilla (#) y, a continuación, el nombreque desee dar a la colección de archivos de la caché local.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Example 1

Escriba el siguiente comando para lanzar un clúster y enviar un paso de streaming que utiliza -cacheFile para añadir un archivo sample_dataset_cached.dat, a la caché.

53

Page 61: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPreparar datos de entrada

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheFile","s3://my_bucket/sample_dataset.dat#sample_dataset_cached.dat"]

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos los nodosutilizarán el tipo de instancia especificado en el comando.

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil de instancia EC2,escriba aws emr create-default-roles para crearlos antes de escribir el subcomando create-cluster.

Example 2

El siguiente comando muestra la creación de un clúster de streaming y utiliza -cacheArchive paraañadir un archivo de almacenamiento de archivos a la caché.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheArchive","s3://my_bucket/sample_dataset.tgz#sample_dataset_cached"]

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos los nodosutilizarán el tipo de instancia especificado en el comando.

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil de instancia EC2,escriba aws emr create-default-roles para crearlos antes de escribir el subcomando create-cluster.

Cómo procesar archivos comprimidosHadoop comprueba la extensión de archivo para detectar archivos comprimidos. Los tipos de compresióncompatibles con Hadoop son: gzip, bzip2 y LZO. No tiene que tomar ninguna medida adicional para extraerarchivos utilizando estos tipos de compresión; Hadoop se encarga por usted.

Para indexar los archivos LZO, puede utilizar la biblioteca hadoop-lzo que se puede descargar desdehttps://github.com/kevinweil/hadoop-lzo. Tenga en cuenta que dado que se trata de una biblioteca deterceros, Amazon EMR no ofrece soporte al desarrollador sobre cómo utilizar esta herramienta. Paraobtener información sobre su uso, consulte el archivo readme de hadoop-lzo.

Importar datos de DynamoDB en HiveLa implementación de Hive proporcionada por Amazon EMR incluye funcionalidad que puede utilizar paraimportar y exportar datos entre DynamoDB y un clúster de Amazon EMR. Esto resulta útil si los datos deentrada se almacenan en DynamoDB. Para obtener más información, consulte Exportación, importación,consulta y unión de tablas en DynamoDB mediante Amazon EMR.

Conectarse a datos con AWS DirectConnectAWS Direct Connect es un servicio que puede utilizar para establecer una conexión de red dedicadaprivada a AWS desde su centro de datos, oficina o entorno de coubicación. Si dispone de grandescantidades de datos de entrada, el uso de AWS Direct Connect puede reducir los costos de red, mejorar

54

Page 62: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar una ubicación de salida

el consumo de ancho de banda y proporcionar una experiencia de red más coherente que las conexionesbasadas en Internet. Para obtener más información, consulte la Guía del usuario de AWS Direct Connect.

Cargar grandes cantidades de datos con AWS Import/ExportAWS Import/Export es un servicio que puede utilizar para transferir grandes cantidades de datos desdedispositivos de almacenamiento físicos a AWS. Debe enviar por correo los dispositivos de almacenamientoportátil a AWS e AWS Import/Export transfiere los datos directamente desde los dispositivos dealmacenamiento utilizando la red interna de alta velocidad de Amazon. La carga de sus datos normalmentecomienza el siguiente día hábil después de que su dispositivo de almacenamiento llega a AWS. Ledevolveremos el dispositivo de almacenamiento una vez completada la exportación o importación dedatos. Para grandes conjuntos de datos, la transferencia de datos de AWS puede ser considerablementemás rápida que cuando se realizan transferencias a través de Internet y más económica que cuandohay que invertir en mejorar la conectividad. Para obtener más información, consulte AWS Import/ExportDeveloper Guide.

Configurar una ubicación de salidaEl formato de salida más común de un clúster de Amazon EMR, son los archivos de texto, ya seacomprimidos o sin comprimir. Normalmente, están escritos en un bucket de Amazon S3. Este bucket sedebe crear antes de lanzar el clúster. Puede especificar el bucket de S3 como ubicación de salida al lanzarel clúster.

Para obtener más información, consulte los siguientes temas:

Temas• Creación y configuración de un bucket de Amazon S3 (p. 55)• ¿Qué formatos puede devolver Amazon EMR? (p. 56)• Cómo escribir datos en un bucket de Amazon S3 que no le pertenece (p. 57)• Comprimir la salida de su clúster (p. 59)

Creación y configuración de un bucket de Amazon S3Amazon EMR (Amazon EMR) usa Amazon S3 para almacenar los datos de entrada, los archivos deregistro y los datos de salida. Amazon S3 denomina estas ubicaciones de almacenamiento buckets.Los buckets tienen ciertas restricciones y limitaciones para cumplir con los requisitos de Amazon S3 yDNS. Para obtener más información, consulte Restricciones y limitaciones de los buckets en la Guía paradesarrolladores de Amazon Simple Storage Service.

En esta sección, se muestra cómo utilizar la Consola de administración de AWS de Amazon S3 paracrear y después definir permisos para un bucket de Amazon S3. Sin embargo, también puede crear ydefinir permisos para un bucket de Amazon S3 mediante la API de Amazon S3 o la herramienta de líneade comandos de Curl. Para obtener información acerca de Curl, visite Herramienta de autenticación deAmazon S3 para Curl. Para obtener información acerca de cómo usar la API de Amazon S3 para crear yconfigurar un bucket de Amazon S3, consulte la Amazon Simple Storage Service API Reference.

Para crear un bucket de Amazon S3 con la consola

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

2. Seleccione la opción Create Bucket.

Se abre el cuadro de diálogo Create a Bucket (Crear un bucket).3. Escriba un nombre del bucket, como AWSDOC-EXAMPLE-BUCKET1.

Este nombre debe ser único a escala global y no puede ser el mismo nombre usado por otro bucket.

55

Page 63: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar una ubicación de salida

4. Seleccione un valor en Region (Región) para el bucket. Para evitar pagar gastos en concepto deancho de banda entre regiones, cree el bucket de Amazon S3 en la misma región que su clúster.

Consulte Elija una región de AWS. (p. 42) para obtener información sobre cómo elegir una región.5. Seleccione Create.

Ha creado un bucket con el URI s3n://AWSDOC-EXAMPLE-BUCKET1/.

Note

Si habilita el registro en el asistente Create a Bucket (Crear un bucket), solo se habilitan losregistros de acceso al bucket, no los registros del clúster.

Note

Para obtener más información acerca de cómo especificar buckets específicos de la región,consulte Buckets y regiones en la Guía para desarrolladores de Amazon Simple Storage Service yPuntos de enlace de región disponibles para los SDK de AWS.

Después de crear su bucket puede definir los permisos correspondientes. Lo habitual es que se conceda así mismo (el propietario) acceso de lectura y escritura, y acceso de lectura a los usuarios autenticados.

Para definir permisos en un bucket de Amazon S3 mediante la consola

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

2. En el panel Buckets, abra (haga clic con el botón derecho del ratón) en el bucket que acaba de crear.3. Seleccione Properties (Propiedades).4. En el panel Properties (Propiedades), seleccione la pestaña Permissions (Permisos).5. Elija Add more permissions (Añadir más permisos).6. Seleccione Authenticated Users (Usuarios autenticados) en el campo Grantee (Beneficiario).7. A la derecha de la lista desplegable Grantee (Beneficiario), seleccione List (Lista).8. Seleccione Save.

Ha creado un bucket y permisos restringidos para los usuarios autenticados.

Los buckets de Amazon S3 necesarios deben existir para poder crear un clúster. Debe cargar en AmazonS3 todos los scripts o datos necesarios a los que se hace referencia en el clúster. En la siguiente tabla sedescriben ubicaciones de ejemplo de datos, scripts y archivos log.

Información Ubicación de ejemplo en Amazon S3

script o programa s3://AWSDOC-EXAMPLE-BUCKET1/script/MapperScript.py

archivos log s3://AWSDOC-EXAMPLE-BUCKET1/logs

datos de entrada s3://AWSDOC-EXAMPLE-BUCKET1/input

datos de salida s3://AWSDOC-EXAMPLE-BUCKET1/output

¿Qué formatos puede devolver Amazon EMR?El formato de salida predeterminado para un clúster es texto con parejas de clave, valor escritas en líneasindividuales de los archivos de texto. Este es el formato de salida usado con más frecuencia.

56

Page 64: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar una ubicación de salida

Si los datos de salida se tienen que escribir en un formato que no sean los archivos de textopredeterminados, puede utilizar la interfaz de Hadoop OutputFormat para especificar otros tipos desalida. Puede incluso crear una subclase de la clase FileOutputFormat para gestionar tipos de datospersonalizados. Para obtener más información, consulte http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/OutputFormat.html.

Si está lanzando un clúster de Hive, puede utilizar un serializador/deserializador (SerDe) para generardatos desde HDFS en un formato dado. Para obtener más información, consulte https://cwiki.apache.org/confluence/display/Hive/SerDe.

Cómo escribir datos en un bucket de Amazon S3 que no leperteneceCuando escriba un archivo en un bucket de Amazon Simple Storage Service (Amazon S3), de formapredeterminada, usted es el único capaz de leer dicho archivo. La suposición es que escribirá archivos ensus propios buckets y esta configuración predeterminada protege la privacidad de sus archivos.

Sin embargo, si está ejecutando un clúster y desea que la salida escriba en el bucket de Amazon S3 deotro usuario de AWS y desea que otro usuario de AWS pueda leer la salida, debe hacer dos cosas:

• Hacer que el otro usuario de AWS le otorgue permisos de escritura para su bucket de Amazon S3. Elclúster que lanza se ejecuta con sus credenciales de AWS, por lo que los clústeres que lance tambiénpodrán escribir en el bucket del otro usuario de AWS.

• Defina los permisos de lectura del otro usuario de AWS en los archivos que usted o el clúster escribenen el bucket de Amazon S3. La forma más sencilla de definir estos permisos de lectura consiste enutilizar listas de control de acceso (ACL) predefinidas, un conjunto de políticas de acceso predefinidasdefinido por Amazon S3.

Para obtener información sobre cómo el otro usuario de AWS puede otorgarle permisos para escribirarchivos en el bucket de Amazon S3 del otro usuario, consulte Edición de permisos de bucket en la Guíadel usuario de la consola de Amazon Simple Storage Service.

Para que el clúster utilice las ACL predefinidas cuando escriba archivos en Amazon S3, defina la opciónde configuración del clúster fs.s3.canned.acl en la ACL predefinida que desee utilizar. En la siguientetabla se muestran las ACL predefinidas definidas en la actualidad.

ACL predefinidas Descripción

AuthenticatedRead Especifica que al usuario se le otorgaPermission.FullControl y al beneficiario del grupoGroupGrantee.AuthenticatedUsers se le otorga accesoPermission.Read.

BucketOwnerFullControl Especifica que al propietario del bucket se le otorgaPermission.FullControl. El propietario del bucket no esnecesariamente el mismo que el propietario del objeto.

BucketOwnerRead Especifica que al propietario del bucket se le otorgaPermission.Read. El propietario del bucket no esnecesariamente el mismo que el propietario del objeto.

LogDeliveryWrite Especifica que al propietario se le otorgaPermission.FullControl y al beneficiario del grupoGroupGrantee.LogDelivery se le otorga accesoPermission.Write, de modo que se puedan enviar losregistros de acceso.

57

Page 65: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar una ubicación de salida

ACL predefinidas Descripción

Private Especifica que al propietario se le otorgaPermission.FullControl.

PublicRead Especifica que al usuario se le otorgaPermission.FullControl y al beneficiario delgrupo GroupGrantee.AllUsers se le otorga accesoPermission.Read.

PublicReadWrite Especifica que al usuario se le otorgaPermission.FullControl y al beneficiario delgrupo GroupGrantee.AllUsers se le otorga accesoPermission.Read y Permission.Write.

Existen muchas formas de definir las opciones de configuración del clúster, en función del tipo de clústerque esté ejecutando. Los siguientes procedimientos muestran cómo definir la opción para casos comunes.

Para escribir archivos mediante las ACL predefinidas en Hive

• Desde la línea de comandos de Hive, establezca la opción de configuración fs.s3.canned.acl enla ACL predefinida que desea que el clúster defina para los archivos que escriba en Amazon S3. Paraacceder a la línea de comandos de Hive conéctese al nodo principal mediante SSH y escriba Hive enla línea de comandos de Hadoop. Para obtener más información, consulte Conexión al nodo principalutilizando SSH (p. 354).

El ejemplo siguiente establece la opción de configuración fs.s3.canned.acl enBucketOwnerFullControl, que proporciona al propietario del bucket de Amazon S3 un controlcompleto sobre el archivo. Tenga en cuenta que el comando definido distingue entre mayúsculas yminúsculas y no contiene comillas ni espacios.

hive> set fs.s3.canned.acl=BucketOwnerFullControl; create table acl (n int) location 's3://acltestbucket/acl/'; insert overwrite table acl select count(n) from acl;

Las dos últimas líneas del ejemplo crean una tabla que se almacena en Amazon S3 y escribe datos enla tabla.

Para escribir archivos mediante las ACL predefinidas en Pig

• Desde la línea de comandos de Pig, establezca la opción de configuración fs.s3.canned.acl enla ACL predefinida que desea que el clúster defina para los archivos que escriba en Amazon S3. Paraacceder a la línea de comandos de Pig conéctese al nodo principal mediante SSH y escriba Pig en lalínea de comandos de Hadoop. Para obtener más información, consulte Conexión al nodo principalutilizando SSH (p. 354).

El ejemplo siguiente establece la opción de configuración fs.s3.canned.acl enBucketOwnerFullControl, que proporciona al propietario del bucket de Amazon S3 un control completosobre el archivo. Tenga en cuenta que el comando definido incluye un espacio antes del nombre deACL predefinido y no contiene comillas.

pig> set fs.s3.canned.acl BucketOwnerFullControl; store some data into 's3://acltestbucket/pig/acl';

58

Page 66: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar una ubicación de salida

Para escribir archivos mediante las ACL predefinidas en un JAR personalizado

• Defina la opción de configuración fs.s3.canned.acl utilizando Hadoop con la marca -D. Esto semuestra en el siguiente ejemplo.

hadoop jar hadoop-examples.jar wordcount -Dfs.s3.canned.acl=BucketOwnerFullControl s3://mybucket/input s3://mybucket/output

Comprimir la salida de su clústerTemas

• Compresión de datos de salida (p. 59)• Compresión de datos intermedia (p. 59)• Uso de la biblioteca Snappy con Amazon EMR (p. 60)

Compresión de datos de salida

Esto comprime la salida del trabajo de Hadoop. Si utiliza TextOutputFormat el resultado es un archivo detexto comprimido en gzip. Si está escribiendo en SequenceFiles entonces el resultado es un SequenceFileque está comprimido internamente. Esto se puede habilitar definiendo el ajuste de configuraciónmapred.output.compress en true.

Si está ejecutando un trabajo de streaming puede habilitarlo transfiriendo estos argumentos al trabajo destreaming.

-jobconf mapred.output.compress=true

También puede utilizar una acción de arranque para comprimir automáticamente todas las salidas detrabajo. Aquí se muestra cómo hacerlo con el cliente de Ruby.

--bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hadoop \--args "-s,mapred.output.compress=true"

Por último, si se escribe un JAR personalizado puede habilitar la compresión de salida con la siguientelínea al crear el trabajo.

FileOutputFormat.setCompressOutput(conf, true);

Compresión de datos intermedia

Si el trabajo reorganiza una cantidad de datos importante desde los mapeadores a los reductores,puede obtener una mejora del rendimiento habilitando la compresión intermedia. Comprima la salida

59

Page 67: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPlanificación y configuración de nodos principales

de mapeado y descomprímala cuando llegue al nodo secundario. El ajuste de configuración esmapred.compress.map.output. Puede habilitarlo de manera similar a la compresión de salida.

Al escribir un archivo JAR personalizado, utilice el siguiente comando:

conf.setCompressMapOutput(true);

Uso de la biblioteca Snappy con Amazon EMRSnappy es una biblioteca de compresión y descompresión optimizada para velocidad. Está disponibleen las AMI de Amazon EMR versión 2.0 y posteriores y se utiliza como predeterminada para compresiónintermedia. Para obtener más información sobre Snappy, consulte http://code.google.com/p/snappy/.

Planificación y configuración de nodos principalesCuando se lanza un clúster de EMR, es posible tener uno o tres nodos principales en el clúster. Ellanzamiento de un clúster con tres nodos principales solo se admite en la versión 5.23.0 y posteriores deAmazon EMR.

Un Clúster de EMR con varios nodos principales proporciona los siguientes beneficios principales:

• El nodo principal ya no es un punto de error único. Si deja de funcionar uno de los nodos principales,el clúster utiliza uno de los otros dos nodos principales y se ejecuta sin interrupción. Mientras tanto,Amazon EMR sustituye automáticamente el nodo principal que ha dejado de funcionar por uno nuevoque tiene la misma configuración y las mismas acciones de arranque.

• EMR es compatible con las características de alta disponibilidad de Hadoop de HDFS NameNode yYARN ResourceManager y admite la alta disponibilidad para algunas otras aplicaciones de códigoabierto.

Para obtener más información sobre cómo un Clúster de EMR con varios nodos principales escompatible con las aplicaciones de código abierto y otras características de EMR, consulte Aplicacionesy características compatibles (p. 60).

Note

El clúster pueden encontrarse únicamente en una zona de disponibilidad o subred.

Esta sección proporciona información sobre las aplicaciones y las características compatibles deun Clúster de EMR con varios nodos principales, así como los detalles de configuración, prácticasrecomendadas y consideraciones para lanzar el clúster.

Temas• Aplicaciones y características compatibles (p. 60)• Lanzamiento de un clúster de EMR con varios nodos principales (p. 66)• Consideraciones y prácticas recomendadas (p. 68)

Aplicaciones y características compatiblesEste tema contiene información sobre las características de alta disponibilidad de Hadoop de HDFSNameNode y YARN ResourceManager en un clúster de EMR y cómo funcionan las características de altadisponibilidad con las aplicaciones de código abierto y otras características de EMR.

60

Page 68: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAplicaciones y características compatibles

HDFS de alta disponibilidadUn Clúster de EMR con varios nodos principales permite utilizar la característica de alta disponibilidad deHDFS NameNode en Hadoop. Para obtener más información, consulte HDFS High Availability.

En un clúster de EMR, NameNode se ejecuta únicamente en dos de los tres nodos principales. UnNameNode está en el estado active y el otro en el estado standby. Si deja de funcionar el nodoprincipal que tiene NameNode en estado active, EMR inicia un proceso de conmutación por errorautomático de HDFS. El nodo principal con NameNode en estado standby cambia al estado active y seencarga de todas las operaciones de cliente del clúster. EMR sustituye el nodo principal que ha dejado defuncionar por uno nuevo que se une al clúster en el estado standby.

Si necesita saber qué NameNode tiene el estado active, puede utilizar SSH para conectarse a cualquiernodo principal del clúster y ejecutar el comando siguiente:

hdfs haadmin -getAllServiceState

La salida muestra los dos nodos en que está instalado NameNode y su estado. Por ejemplo,

ip-##-#-#-##1.ec2.internal:8020 activeip-##-#-#-##2.ec2.internal:8020 standby

YARN ResourceManager de alta disponibilidadUn Clúster de EMR con varios nodos principales permite utilizar la característica de alta disponibilidadYARN ResourceManager de Hadoop. Para obtener más información, consulte ResourceManager HighAvailability.

En un Clúster de EMR con varios nodos principales, YARN ResourceManager se ejecuta en los tresnodos principales. Un ResourceManager está en estado active y los otros dos en estado standby. Sideja de funcionar el nodo principal que tiene el ResourceManager en estado active, EMR comienzaun proceso de conmutación por error automática. Un nodo principal que tiene un ResourceManager enestado standby se hace cargo todas las operaciones. EMR sustituye el nodo principal que ha dejado defuncionar por uno nuevo que se une al cuórum de ResourceManager con el estado standby.

Puede conectarse a "http://master-public-dns-name:8088/cluster" para cualquier nodo principal,lo que le dirigirá automáticamente al administrador de recursos en estado active. Para saber quéadministrador de recursos tiene el estado active, utilice SSH para conectarse a cualquier nodo principaldel clúster. A continuación, ejecute el comando siguiente para obtener una lista de los tres nodosprincipales y su estado:

yarn rmadmin -getAllServiceState

Aplicaciones admitidas en un clúster de EMR con varios nodosprincipalesPuede instalar y ejecutar las siguientes aplicaciones en un Clúster de EMR con varios nodos principales:Para cada aplicación, el proceso de conmutación por error del nodo principal varía.

Aplicación Disponibilidad durante laconmutación por error del nodoprincipal

Notas

Flink La conmutación por error delnodo principal no afecta a ladisponibilidad

Los trabajos de Flink en Amazon EMR se ejecutancomo aplicaciones YARN. Los JobManager deFlink se ejecutan como ApplicationMasters de

61

Page 69: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAplicaciones y características compatibles

Aplicación Disponibilidad durante laconmutación por error del nodoprincipal

Notas

YARN en los nodos principales. JobManager nose ve afectado por el proceso de conmutación porerror del nodo principal.

Si utiliza Amazon EMR versión 5.27.0 o anteriores,JobManager es el punto único de error. Cuando seproduce un error en JobManager, pierde todos losestados de trabajo y no reanudará los trabajos enejecución. Puede habilitar la alta disponibilidad deJobManager configurando el recuento de intentosde la aplicación, los puntos de comprobación yhabilitando ZooKeeper como almacenamiento deestado para Flink. Para obtener más información,consulte Configuración de Flink en un clúster deEMR con varios nodos maestros.

A partir de Amazon EMR versión 5.28.0, no senecesita ninguna configuración manual para activarla alta disponibilidad de JobManager.

Ganglia La conmutación por error delnodo principal no afecta a ladisponibilidad

Ganglia está disponible en todos los nodosprincipales, por lo que se puede seguir ejecutandodurante el proceso de conmutación por error delnodo principal.

Hadoop Alta disponibilidad HDFS NameNode y YARN ResourceManagerrealizan una conmutación por error automática alnodo en espera cuando el nodo principal activodeja de funcionar.

HBase Alta disponibilidad HBase realiza una conmutación por errorautomática al nodo en espera cuando el nodoprincipal activo deja de funcionar.

Si la conexión a HBase se realiza través de unservidor REST o Thrift, se debe cambiar a otronodo principal cuando el nodo principal activo dejede funcionar.

HCatalog La conmutación por error delnodo principal no afecta a ladisponibilidad

HCatalog está basado en un metaalmacén deHive, que existe fuera del clúster. HCatalogpermanece disponible durante el proceso deconmutación por error del nodo principal.

JupyterHub Alta disponibilidad JupyterHub está instalado en las tres instanciasprincipales. Se recomienda configurar lapersistencia de los blocs de notas con el finde evitar su pérdida en caso de error del nodoprincipal. Para obtener más información, consulteConfiguración de la persistencia de los blocs denotas en Amazon S3.

62

Page 70: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAplicaciones y características compatibles

Aplicación Disponibilidad durante laconmutación por error del nodoprincipal

Notas

Livy Alta disponibilidad Livy está instalado en los tres nodos principales.Cuando deja de funcionar el nodo principal activo,se pierde el acceso a la sesión actual de Livy y esnecesario crear una nueva sesión de Livy en otronodo principal o en el nodo de sustitución nuevo.

Mahout La conmutación por error delnodo principal no afecta a ladisponibilidad

Dado que Mahout no tiene demonio, no se veafectado por el proceso de conmutación por errordel nodo principal.

MXNet La conmutación por error delnodo principal no afecta a ladisponibilidad

Dado que MXNet no tiene demonio, no se veafectado por el proceso de conmutación por errordel nodo principal.

Phoenix Alta disponibilidad El QueryServer de Phoenix se ejecuta únicamenteen uno de los tres nodos principales. En los tresnodos principales, Phoenix está configuradopara conectar el QueryServer de Phoenix. Puedeencontrar la IP privada del QueryServer dePhoenix mediante el archivo /etc/phoenix/conf/phoenix-env.sh.

Pig La conmutación por error delnodo principal no afecta a ladisponibilidad

Dado que Pig no tiene demonio, no se ve afectadopor el proceso de conmutación por error del nodoprincipal.

Spark Alta disponibilidad Todas las aplicaciones de Spark se ejecutan encontenedores de YARN y pueden reaccionar anteuna conmutación por error del nodo principal dela misma forma que las características de altadisponibilidad de YARN.

Sqoop Alta disponibilidad De forma predeterminada, sqoop-job y sqoop-metastore almacenan los datos (descripciones detrabajos) en el disco local del nodo principal queejecuta el comando. Si desea guardar los datosdel metaalmacén en una base de datos externa,consulte la documentación de Apache Sqoop.

Tez Alta disponibilidad Dado que los contenedores de Tez se ejecutan enYARN, Tez se comporta de la misma forma queYARN durante el proceso de conmutación por errordel nodo principal.

TensorFlow La conmutación por error delnodo principal no afecta a ladisponibilidad

Dado que TensorFlow no tiene demonio, no se veafectado por el proceso de conmutación por errordel nodo principal.

63

Page 71: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAplicaciones y características compatibles

Aplicación Disponibilidad durante laconmutación por error del nodoprincipal

Notas

Zeppelin Alta disponibilidad Zeppelin está instalado en los tres nodosprincipales. Zeppelin almacena las notas y lasconfiguraciones de intérprete en HDFS de formapredeterminada para evitar que se pierdan datos.Las sesiones de intérprete están completamenteaisladas en las tres instancias principales. Losdatos de la sesión se perderán en caso de error dela instancia principal. Se recomienda no modificarla misma nota simultáneamente en diferentesinstancias principales.

ZooKeeper Alta disponibilidad ZooKeeper es la base de la característica deconmutación por error automática de HDFS.ZooKeeper proporciona un servicio de altadisponibilidad para mantener los datos decoordinación, notificar a los clientes los cambios enesos datos y monitorizar los clientes para ver si seproducen errores. Para obtener más información,consulte HDFS Automatic Failover.

Para ejecutar las siguientes aplicaciones en un clúster de EMR con varios nodos principales, debeconfigurar una base de datos externa. La base de datos externa se encuentra fuera del clúster y hace quepersistan los datos durante el proceso de conmutación por error del nodo principal. Para las siguientesaplicaciones, los componentes de servicio se recuperarán automáticamente durante el proceso deconmutación por error del nodo principal, pero se pueden producir errores en los trabajos activos, en cuyocaso deberán repetirse.

Aplicación Disponibilidad durante laconmutación por error del nodoprincipal

Notas

Hive Alta disponibilidad únicamentepara los componentes de servicio

Se requiere un metaalmacén externo paraHive. Para obtener más información, consulteConfiguración de un metaalmacén externo paraHive.

Hue Alta disponibilidad únicamentepara los componentes de servicio

Se requiere una base de datos externa para Hue.Para obtener más información, consulte Uso deHue con una base de datos remota en AmazonRDS.

Oozie Alta disponibilidad únicamentepara los componentes de servicio

Se requiere una base de datos externa para Oozie.Para obtener más información, consulte Uso deOozie con una base de datos remota en AmazonRDS.

Oozie-server se instala en un solo nodo principal,mientras que oozie-client se instala en lostres nodos principales. Los oozie-client estánconfigurados para conectarse al oozie-servercorrecto de forma predeterminada. Para encontrarel nombre de DNS privado del nodo principal en

64

Page 72: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAplicaciones y características compatibles

Aplicación Disponibilidad durante laconmutación por error del nodoprincipal

Notas

el que está instalado el oozie-server, consulte lavariable OOZIE_URL en cualquier nodo principalen el archivo /etc/oozie/conf.dist/oozie-client-env.sh.

Presto Alta disponibilidad únicamentepara los componentes de servicio

Se requiere una metaalmacén de Hive externopara Presto. Puede usar Presto con AWS GlueData Catalog o una base de datos MySQL externapara Hive.

Note

Cuando un nodo principal deja de funcionar, Java Database Connectivity (JDBC) u OpenDatabase Connectivity (ODBC) termina su conexión con el nodo principal. Puede conectarsea cualquiera de los demás nodos principales para continuar su trabajo porque el demonio delmetaalmacén de Hive se ejecuta en todos los nodos principales. También puede esperar a que sesustituya el nodo principal que ha dejado de funcionar.

Funcionamiento de las características de EMR en un clúster convarios nodos principalesConexión con los nodos principales mediante SSH

Puede conectarse con cualquiera de los tres nodos principales de un clúster de EMR utilizando SSH dela misma forma que se conecta con un nodo principal único. Para obtener más información, consulteConexión al nodo principal utilizando SSH.

Si un nodo principal deja de funcionar, la conexión SSH a ese nodo principal finaliza. Para continuar con sutrabajo, puede conectarse con uno de los otros dos nodos principales. Si lo prefiere, puede tener acceso alnuevo nodo principal después de que EMR sustituya el que ha dejado de funcionar por uno nuevo.

Note

La dirección IP privada del nodo principal de sustitución es la misma que la del anterior. Ladirección IP pública del nodo principal de sustitución puede cambiar. Puede recuperar la nuevadirección IP en la consola o mediante el comando describe-cluster de la CLI de AWS.NameNode solo se ejecuta en dos de los nodos principales. Sin embargo, puede ejecutarcomandos hdfs en la CLI y ejecutar trabajos para tener acceso a HDFS en los tres nodosprincipales.

Cómo trabajar con pasos en un clúster de EMR con varios nodos principales

Puede enviar pasos a un Clúster de EMR con varios nodos principales del mismo modo que trabaja conpasos en un clúster de un solo nodo principal. Para obtener más información, consulte Enviar trabajo a unclúster.

A continuación se indican consideraciones para trabajar con pasos en un Clúster de EMR con varios nodosprincipales:

• Si un nodo principal deja de funcionar, los pasos que se están ejecutando en el nodo principal se marcancomo FAILED. Los datos que se hayan escrito localmente se pierden. Sin embargo, el estado FAILEDpuede que no refleje el estado real de los pasos.

65

Page 73: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzamiento de un clúster de

EMR con varios nodos principales

• Si un paso en ejecución ha iniciado una aplicación de YARN cuando el nodo principal deja de funcionar,el paso puede continuar y finalizar correctamente debido a la conmutación por error automática del nodoprincipal.

• Se recomienda que compruebe el estado de los pasos consultando la salida de los trabajos. Porejemplo, los trabajos de MapReduce utilizan un archivo _SUCCESS para determinar si el trabajo finalizacorrectamente.

• Se recomienda que establezca el parámetro ActionOnFailure en CONTINUE o CANCEL_AND_WAIT, enlugar de establecerlo en TERMINATE_JOB_FLOW o TERMINATE_CLUSTER.

Características no admitidas en un clúster de EMR con varios nodos principalesLas siguientes características de EMR no están disponibles actualmente en un Clúster de EMR con variosnodos principales:

• Cuadernos de EMR• Flotas de instancias• Acceso de un clic al servidor del historial de Spark persistente

Note

Para utilizar la autenticación de Kerberos en un clúster, debe configurar un KDC externo.A partir de la versión 5.27.0 de Amazon EMR, puede configurar el cifrado transparente de HDFSen un Clúster de EMR con varios nodos principales. Para obtener más información, consulteCifrado transparente en HDFS en Amazon EMR.

Lanzamiento de un clúster de EMR con varios nodosprincipalesEn este tema, se ofrecen detalles de configuración y ejemplos para lanzar un Clúster de EMR con variosnodos principales.

Requisitos previos• Puede lanzar un Clúster de EMR con varios nodos principales en subredes de VPC públicas y privadas.

EC2-Classic no se admite. Para lanzar un Clúster de EMR con varios nodos principales en unasubred pública, debe habilitar las instancias de dicha subred para que reciban una dirección IP públicaseleccionando Auto-assign IPv4 (Asignar automáticamente IPv4) en la consola o ejecutando delcomando siguiente. Sustituya 22XXXX01 por su ID de subred.

aws ec2 modify-subnet-attribute --subnet-id subnet-22XXXX01 --map-public-ip-on-launch

• Para ejecutar Hive, Hue u Oozie en un Clúster de EMR con varios nodos principales, debe crear unmetaalmacén externo. Para obtener más información, consulte Configuración de un metaalmacénexterno para Hive, Uso de Hue con una base de datos remota en Amazon RDS o Apache Oozie.

• Para utilizar la autenticación de Kerberos en un clúster, debe configurar un KDC externo. Para obtenermás información, consulte Configuración de Kerberos en Amazon EMR.

Lanzamiento de un clúster de EMR con varios nodos principalesDebe especificar un valor de recuento de instancias de tres para el grupo de instancias del nodo principalal lanzar un Clúster de EMR con varios nodos principales. En los ejemplos siguientes, se muestra cómolanzar el clúster utilizando la AMI predeterminada o una AMI personalizada.

66

Page 74: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzamiento de un clúster de

EMR con varios nodos principales

Note

Debe especificar el ID de subred al lanzar Clúster de EMR con varios nodos principales usandoAWS CLI. Sustituya 22XXXX01 por su ID de subred en los ejemplos siguientes.

Example – Lanzamiento de un Clúster de EMR con varios nodos principales utilizando una AMIpredeterminada

aws emr create-cluster \--name "ha-cluster" \--release-label emr-5.30.0 \--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name=Spark

Example – Lanzamiento de un Clúster de EMR con varios nodos principales utilizando una AMIpersonalizada

aws emr create-cluster \--name "custom-ami-ha-cluster" \--release-label emr-5.30.0 \--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name=Spark \--custom-ami-id ami-MyAmiID

Example – Lanzamiento de un Clúster de EMR con varios nodos principales con un metaalmacénexterno de Hive

Para ejecutar Hive en un Clúster de EMR con varios nodos principales, debe especificar un metaalmacénexterno para Hive, tal y como se muestra en el ejemplo siguiente,

1. Cree un archivo hiveConfiguration.json temporal que contenga las credenciales del metaalmacén deHive.

[ { "Classification": "hive-site", "Properties": { "javax.jdo.option.ConnectionURL": "jdbc:mysql:\/\/hostname:3306\/hive?createDatabaseIfNotExist=true", "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver", "javax.jdo.option.ConnectionUserName": "username", "javax.jdo.option.ConnectionPassword": "password" } }]

2. Lance el clúster con el metaalmacén de Hive.

aws emr create-cluster \--name "ha-cluster-with-hive-metastore" \--release-label emr-5.30.0 \

67

Page 75: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConsideraciones y prácticas recomendadas

--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name= Spark Name=Hive \--configurations ./hiveConfiguration.json

Terminación de un clúster de EMR con varios nodos principalesPara terminar un Clúster de EMR con varios nodos principales, debe deshabilitar la protección determinación antes de terminar el clúster, tal y como se muestra en el ejemplo siguiente. Sustituyaj-3KVTXXXXXX7UG por su ID de clúster.

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protectedaws emr terminate-clusters --cluster-id j-3KVTXXXXXX7UG

Consideraciones y prácticas recomendadasLimitaciones de un Clúster de EMR con varios nodos principales

• Si dos nodos principales dejan de funcionar simultáneamente, EMR no puede recuperar el clúster.• Los clústeres de EMR con varios nodos principales no toleran errores de zonas de disponibilidad. En el

caso de que deje de funcionar una zona de disponibilidad, se perderá el acceso al clúster de EMR.• EMR no garantiza las características de alta disponibilidad de aplicaciones de código abierto

distintas de las especificadas en Aplicaciones admitidas en un clúster de EMR con varios nodosprincipales (p. 61).

Consideraciones para la configuración la subred:

• Un Clúster de EMR con varios nodos principales solo puede encontrarse en una zona de disponibilidado subred. EMR no puede sustituir un nodo principal que ha dejado de funcionar si la subred se utiliza ensu totalidad o por encima de su capacidad en caso de que se produzca una conmutación por error. Paraevitar esta situación, se recomienda que dedique una subred completa a un clúster de Amazon EMR.Además, debe asegurarse de que haya suficientes direcciones IP privadas disponibles en la subred.

Consideraciones para configurar los nodos principales:

• Para garantizar que el grupo de instancias del nodo principal también tenga un alto nivel dedisponibilidad, se recomienda que lance al menos cuatro nodos principales. Si decide lanzar un clústermás pequeño con tres o menos nodos principales, configure HDFS con suficiente replicación de DFSestableciendo dfs.replication parameter en 2 como mínimo. Para obtener más información,consulte Configuración de HDFS.

Consideraciones para configurar alarmas de métricas:

• En la actualidad, EMR no proporciona métricas específicas para las aplicacionesrelacionadas con HDFS o YARN. Se recomienda que configure alarmas para monitorizarel recuento de instancias del nodo principal. Puede configurar las alarmas utilizando lassiguientes métricas de CloudWatch: MultiMasterInstanceGroupNodesRunning,MultiMasterInstanceGroupNodesRunningPercentage oMultiMasterInstanceGroupNodesRequested. Se le notificará en el caso de que un nodo principaldeje de funcionar y sea sustituido. Por ejemplo,

68

Page 76: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónClústeres de EMR en AWS Outposts

• Si el MultiMasterInstanceGroupNodesRunningPercentage es inferior a 1,0 y superior a 0,5,es posible que el clúster haya perdido un nodo principal. En esta situación, EMR intenta sustituir unnodo principal.

• Si el MultiMasterInstanceGroupNodesRunningPercentage cae por debajo de 0,5, es posibleque hayan dejado de funcionar dos nodos principales. En esta situación, se pierde el cuórum y elclúster no se puede recuperar. Es necesaria la intervención manual para migrar los datos de esteclúster.

Para obtener más información, consulte Configurar alarmas de métricas.

Clústeres de EMR en AWS OutpostsA partir de Amazon EMR versión 5.28.0, puede crear y ejecutar clústeres de EMR en AWS Outposts. AWSOutposts permite los servicios, la infraestructura y los modelos operativos nativos de AWS en instalacioneslocales. En los entornos de AWS Outposts, puede usar las mismas API, herramientas e infraestructurade AWS que utiliza en la nube de AWS. Amazon EMR en AWS Outposts es ideal para cargas de trabajode baja latencia que deben ejecutarse próximas a los datos y las aplicaciones locales. Para obtener másinformación sobre AWS Outposts, consulte la Guía del usuario de AWS Outposts.

Requisitos previosA continuación se indican los requisitos previos para utilizar Amazon EMR en AWS Outposts:

• Debe haber instalado y configurado AWS Outposts en el centro de datos local.• Debe tener una conexión de red de confianza entre su entorno de Outpost y una región de AWS.• Debe tener capacidad suficiente para los tipos de instancias compatibles con EMR disponibles en su

instancia de Outpost.

LimitacionesA continuación se indican las limitaciones al usar Amazon EMR en AWS Outposts:

• Las instancias bajo demanda son la única opción admitida para las instancias Amazon EC2. Lasinstancias de spot no están disponibles para Amazon EMR en AWS Outposts.

• Si necesita volúmenes de almacenamiento de Amazon EBS adicionales, solo se admite SSD de usogeneral (GP2).

• Únicamente los siguientes tipos de instancias de Amazon EMR son compatibles con AWS Outposts:

Clase de instancia Tipos de instancia

Uso general m5.xlarge | m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge| m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.12xlarge |m5d.24xlarge

Optimizada para computación c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge |c5d.xlarge | c5d.2xlarge | c5d.4xlarge| c5d.9xlarge | c5d.18xlarge

Optimizada para memoria r5.xlarge | r5.2xlarge | r5.4xlarge | r5.12xlarge | r5d.xlarge |r5d.2xlarge | r5d.4xlarge | r5d.12xlarge | r5d.24xlarge

Con optimización delalmacenamiento

i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge |i3en.12xlarge | i3en.24xlarge

69

Page 77: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConsideraciones sobre la conectividad de red

Consideraciones sobre la conectividad de red• Si se pierde la conectividad de red entre la instancia de Outpost y la región de AWS, los clústeres

seguirán ejecutándose. Sin embargo, no podrá crear nuevos clústeres ni realizar nuevas accionesen clústeres existentes hasta que se restablezca la conectividad. En caso de errores de instancia, lainstancia no se sustituirá automáticamente. Además, se retrasarán algunas acciones, como agregarpasos a un clúster en ejecución, comprobar el estado de ejecución de pasos o enviar métrica y eventosde CloudWatch.

• Le recomendamos que proporcione una conectividad de red de confianza y de alta disponibilidad entrela instancia de Outpost y la región de AWS. Si la conectividad de red entre Outpost y su región de AWSse pierde durante un tiempo superior a algunas horas, los clústeres que tienen habilitada la protecciónde terminación seguirán ejecutándose y aquellos que la tengan deshabilitada se podrán terminar.

• Si la conectividad de red se ve afectada debido a un mantenimiento rutinario, se recomienda habilitarproactivamente la protección de terminación. De manera más general, la interrupción de la conectividadsignifica que no se podrá acceder a ninguna dependencia externa que no esté accesible localmente enla instancia de Outpost o en la red del cliente. Esto incluye Amazon S3, DynamoDB usado con la vistade coherencia de EMRFS y Amazon RDS si se utiliza una instancia intrarregión para un Clúster de EMRcon varios nodos principales.

Creación de un clúster de Amazon EMR en AWSOutpostsCrear un clúster de Amazon EMR en AWS Outposts es similar a crear un clúster de Amazon EMR en lanube de AWS. Al crear un clúster de Amazon EMR en AWS Outposts, debe especificar una subred deAmazon EC2 asociada a la instancia de Outpost.

Una Amazon VPC puede abarcar todas las zonas de disponibilidad de una región de AWS. Los AWSOutposts son extensiones de las zonas de disponibilidad; por ello, puede ampliar una Amazon VPC deuna cuenta de forma que abarque varias zonas de disponibilidad y ubicaciones de Outpost asociadas. Alconfigurar Outpost, se le asocia una subred para ampliar el entorno de VPC regional a la instalación local.Las instancias de Outpost y los servicios relacionados aparecen como parte de la VPC regional, de maneraparecida a una zona de disponibilidad con subredes asociadas. Para obtener más información, consulte laGuía del usuario de AWS Outposts.

Consola

Para crear un nuevo clúster de Amazon EMR en AWS Outposts con la Consola de administración de AWS,especifique una subred de Amazon EC2 asociada a Outpost.

1. Abra la consola de Amazon EMR.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En Software Configuration (Configuración de software), elija 5.28.0 o una versión posterior en Release

(Versión).5. En Hardware Configuration (Configuración de hardware), para la EC2 Subnet (Subred de EC2),

seleccione una subred de EC2 con un ID de Outpost en este formato: op-123456789.6. Elija el tipo de instancia o añada volúmenes de almacenamiento de Amazon EBS para grupos de

instancias uniformes o flotas de instancias. En los AWS Outposts se admiten para Amazon EMR lostipos de instancias y volúmenes de Amazon EBS limitados.

AWS CLI

70

Page 78: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónClústeres de EMR en Zonas locales de AWS

Para crear un nuevo clúster de Amazon EMR en AWS Outposts con la AWS CLI, especifique una subredde EC2 asociada a la instancia de Outpost.

En el siguiente ejemplo se crea un clúster de Amazon EMR en una instancia de Outpost. Sustituyasubnet-22XXXX01 por una subred de EC2 asociada a la instancia de Outpost.

aws emr create-cluster \--name "Outpost cluster" \--release-label emr-5.30.0 \--applications Name=Spark \--ec2-attributes KeyName=myKey SubnetId=subnet-22XXXX01 \--instance-type m5.xlarge --instance-count 3 --use-default-roles

Clústeres de EMR en Zonas locales de AWSA partir de Amazon EMR versión 5.28.0, puede crear y ejecutar clústeres de Amazon EMR en una subredde Zonas locales de AWS como una extensión lógica de una región de AWS que es compatible con Zonaslocales. Una Zona local permite que las características de Amazon EMR y un subconjunto de servicios deAWS, como los servicios informáticos y de almacenamiento, se encuentren más cerca de los usuarios, loque proporciona un acceso de latencia muy baja a las aplicaciones que se ejecutan localmente. Para verla lista de Zonas locales disponibles, consulte Zonas locales de AWS. Para obtener información acerca delacceso a Zonas locales de AWS disponibles, consulte Regiones, zonas de disponibilidad y zonas locales.

Tipos de instancias admitidosLos siguientes tipos de instancias están disponibles para los clústeres de Amazon EMR en Zonas locales.La disponibilidad de los distintos tipos de instancias puede variar según la región.

Clase de instancia Tipos de instancia

Uso general m5.xlarge | m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge| m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.12xlarge |m5d.24xlarge

Optimizada para computación c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge |c5d.xlarge | c5d.2xlarge | c5d.4xlarge| c5d.9xlarge | c5d.18xlarge

Optimizada para memoria r5.xlarge | r5.2xlarge | r5.4xlarge | r5.12xlarge | r5d.xlarge |r5d.2xlarge | r5d.4xlarge | r5d.12xlarge | r5d.24xlarge

Con optimización delalmacenamiento

i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.12xlarge| i3en.24xlarge

Creación de un clúster de Amazon EMR en ZonaslocalesCree un clúster de Amazon EMR en Zonas locales de AWS lanzando el clúster de Amazon EMR en unasubred de la Amazon VPC asociada con una Zona local. Puede acceder al clúster utilizando el nombre dela Zona local (por ejemplo, us-west-2-lax-1a) en la consola de EE.UU. Oeste (Oregón).

Actualmente, las zonas locales no son compatibles con blocs de notas de Amazon EMR ni admitenconexiones directamente a Amazon EMR con el punto de enlace de la interfaz de la VPC (AWSPrivateLink).

71

Page 79: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de Docker

Para crear un clúster de EMR en una Zona local mediante la consola de Amazon EMR

Para crear un nuevo clúster de Amazon EMR en Zonas locales con la Consola de administración de AWS,especifique una subred de Amazon EC2 asociada a su Zona local.

1. Abra la consola de Amazon EMR.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En Software Configuration (Configuración de software), elija 5.28.0 o una versión posterior en Release

(Versión).5. En Hardware Configuration (Configuración de hardware), para la EC2 Subnet (Subred de EC2),

seleccione una subred de EC2 con un ID de Zona local en este formato: subnet 123abc | us-west-2-lax-1a.

6. Añada volúmenes de almacenamiento de Amazon EBS para grupos de instancias uniformes o flotasde instancias y elija un tipo de instancia.

Para crear un clúster de Amazon EMR en una Zona local mediante la AWS CLI

Utilice el comando create-cluster, junto con el SubnetId para la Zona local como se muestra en el ejemplosiguiente. Sustituya subnet-22XXXX1234567 por el SubnetId de la Zona local y sustituya otras opcionessegún sea necesario. Para obtener más información, consulte https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html.

aws emr create-cluster \--name "Local Zones cluster" \--release-label emr-5.29.0 \--applications Name=Spark \--ec2-attributes KeyName=myKey,SubnetId=subnet-22XXXX1234567 \--instance-type m5.xlarge --instance-count 3 --use-default-roles

Configuración de DockerAmazon EMR 6.0.0 es compatible con Hadoop 3, que permite que YARN NodeManager lancecontenedores, bien directamente en la máquina host del clúster o bien dentro de un contenedor de Docker.Los contenedores de Docker proporcionan entornos de ejecución personalizados en los que se ejecutael código de aplicación. El entorno de ejecución personalizado está aislado del entorno de ejecución deYARN NodeManager y otras aplicaciones.

Los contenedores de Docker pueden incluir bibliotecas especiales utilizadas por la aplicación yproporcionar diferentes versiones de las herramientas y las bibliotecas nativas, como R y Python. Puedeutilizar las herramientas de Docker conocidas para definir dependencias en tiempo de ejecución ybibliotecas para sus aplicaciones.

Los clústeres de Amazon EMR 6.0.0 están configurados de forma predeterminada para permitir que lasaplicaciones de YARN, como Spark, se ejecuten utilizando contenedores de Docker. Para personalizarla configuración del contenedor, edite las opciones de soporte de Docker definidas en los archivoscontainer-executor.cfg y yarn-site.xml disponibles en el directorio /etc/hadoop/conf. Paraobtener información detallada sobre cada opción de configuración y cómo se utiliza, consulte el artículosobre cómo iniciar aplicaciones mediante contenedores de Docker.

Si lo desea, puede usar Docker cuando envíe un trabajo. Use las siguientes variables para especificar eltiempo de ejecución de Docker y la imagen de Docker.

• YARN_CONTAINER_RUNTIME_TYPE=docker

72

Page 80: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónRegistros de Docker

• YARN_CONTAINER_RUNTIME_DOCKER_IMAGE={DOCKER_IMAGE_NAME}

Cuando usa contenedores de Docker para ejecutar sus aplicaciones de YARN, YARN descarga la imagende Docker que se ha especificado al enviar el trabajo. Para que YARN resuelva esta imagen de Docker,debe configurarse con un registro de Docker. Las opciones de configuración de un registro de Dockerdependen de si el clúster se ha implementado mediante una subred pública o privada.

Registros de DockerUn registro de Docker es un sistema de almacenamiento y distribución para imágenes de Docker. ParaAmazon EMR 6.0.0, se pueden configurar los siguientes registros de Docker:

• Docker Hub – Registro de Docker público que contiene más de 100.000 imágenes de Docker populares.• Amazon ECR – Un registro de contenedores de Docker completamente administrado que le permite

crear sus propias imágenes personalizadas y alojarlas en una arquitectura escalable y de altadisponibilidad.

Consideraciones sobre la implementación

Los registros de Docker requieren acceso a la red desde cada host del clúster. Esto se debe a que cadahost descarga imágenes del registro de Docker cuando la aplicación de YARN se ejecuta en el clúster.Estos requisitos de conectividad de red pueden limitar la elección del registro de Docker, dependiendo desi el clúster de Amazon EMR se ha implementado en una subred pública o privada.

Public subnet (Subred pública)

Cuando los clústeres de EMR se implementan en una subred pública, los nodos que ejecutan YARNNodeManager pueden acceder directamente a cualquier registro disponible a través de Internet, incluidoDocker Hub, como se muestra en el siguiente diagrama.

Subred privada

Cuando los clústeres de EMR se implementan en una subred privada, los nodos que ejecutan YARNNodeManager no tienen acceso directo a Internet. Las imágenes de Docker se pueden alojar en AmazonECR y se puede acceder a ellas a través de AWS PrivateLink, como se muestra en el siguiente diagrama.

Para obtener más información acerca de cómo utilizar AWS PrivateLink para permitir el acceso a AmazonECR en un escenario de subred privada, consulte el artículo sobre cómo configurar AWS PrivateLink paraAmazon ECS y Amazon ECR.

73

Page 81: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de registros de Docker

Configuración de registros de DockerPara utilizar registros de Docker con Amazon EMR, debe configurar Docker de tal forma que confíeen el registro específico que desea utilizar para resolver las imágenes de Docker. Los registros deconfianza predeterminados son locales (privados) y de Centos (en Docker Hub público). Para utilizar otrosrepositorios públicos o Amazon ECR, puede anular la configuración de docker.trusted.registriesen /etc/hadoop/conf/container-executor.cfg mediante la API de clasificación de EMR con laclave de clasificación container-executor.

En el ejemplo siguiente se muestra cómo configurar el clúster de tal forma que confíe tanto en unrepositorio público denominado your-public-repo, como en un punto de enlace de registro de ECR,123456789123.dkr.ecr.us-east-1.amazonaws.com. Si utiliza ECR, sustituya este punto de enlacepor su punto de enlace de ECR específico. Si utiliza Docker Hub, sustituya este nombre de repositorio porel nombre de su propio repositorio.

[ { "Classification": "container-executor", "Configurations": [ { "Classification": "docker", "Properties": { "docker.trusted.registries": "local,centos,your-public-repo,123456789123.dkr.ecr.us-east-1.amazonaws.com", "docker.privileged-containers.registries": "local,centos,your-public-repo,123456789123.dkr.ecr.us-east-1.amazonaws.com" } } ] }]

Para lanzar un clúster de Amazon EMR 6.0.0 con esta configuración mediante la AWS Command LineInterface (AWS CLI), cree un archivo denominado container-executor.json con el contenido de laconfiguración de JSON anterior. A continuación, utilice los siguientes comandos para lanzar el clúster.

export KEYPAIR=<Name of your Amazon EC2 key-pair>export SUBNET_ID=<ID of the subnet to which to deploy the cluster>export INSTANCE_TYPE=<Name of the instance type to use>export REGION=<Region to which to deploy the cluster>

aws emr create-cluster \ --name "EMR-6.0.0" \ --region $REGION \ --release-label emr-6.0.0 \ --applications Name=Hadoop Name=Spark \ --service-role EMR_DefaultRole \ --ec2-attributes KeyName=$KEYPAIR,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=$SUBNET_ID \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=$INSTANCE_TYPE InstanceGroupType=CORE,InstanceCount=2,InstanceType=$INSTANCE_TYPE \ --configuration file://container-executor.json

Configuración de YARN para acceder a Amazon ECRSi es la primera vez que usa Amazon ECR, siga las instrucciones de ¿Qué es Amazon ECR? y compruebeque dispone de acceso a ECR desde cada instancia del clúster de Amazon EMR.

Para acceder a ECR mediante el comando de Docker, antes debe generar unas credenciales. Paraverificar que YARN pueda acceder a las imágenes desde ECR, utilice la variable de entorno contenedora

74

Page 82: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del sistema de archivos de EMR (EMRFS)

YARN_CONTAINER_RUNTIME_DOCKER_CLIENT_CONFIG para pasar una referencia a las credencialesque ha generado.

Ejecute el siguiente comando en uno de los nodos principales para obtener la línea de inicio de sesión desu cuenta de ECR.

aws ecr get-login --region us-east-1 --no-include-email

El comando get-login genera el comando correcto de la CLI de Docker que hay que ejecutar para crearlas credenciales. Copie y ejecute la salida desde get-login.

sudo docker login -u AWS -p <password> https://<account-id>.dkr.ecr.us-east-1.amazonaws.com

Este comando genera un archivo config.json en la carpeta /root/.docker. Copie este archivo enHDFS para que los trabajos enviados al clúster puedan usarlo con el fin de autenticarse en ECR.

Ejecute los siguientes comandos para copiar el archivo config.json en su directorio de inicio.

mkdir -p ~/.dockersudo cp /root/.docker/config.json ~/.docker/config.jsonsudo chmod 644 ~/.docker/config.json

Ejecute los siguientes comandos para poner el archivo config.json en HDFS, de tal forma que puedanusarlo los trabajos que se ejecutan en el clúster.

hadoop fs -put ~/.docker/config.json /user/hadoop/

YARN puede acceder a ECR como un registro de imágenes de Docker y extraer contenedores durante laejecución del trabajo.

Después de configurar los registros de Docker y YARN, puede ejecutar las aplicaciones de YARNutilizando contenedores de Docker. Para obtener más información, consulte Ejecución de aplicacionesSpark con Docker usando Amazon EMR 6.0.0.

Uso del sistema de archivos de EMR (EMRFS)El sistema de archivos de EMR (EMRFS) es una implementación de HDFS que utilizan todos los clústeresde Amazon EMR para leer y escribir archivos normales de Amazon EMR directamente en Amazon S3.EMRFS proporciona la comodidad de almacenar datos persistentes en Amazon S3 para su uso conHadoop, al tiempo que proporciona características como la vista consistente y el cifrado de datos.

La vista consistente ofrece comprobación de consistencia para listas y lectura después de escritura (paranuevas solicitudes PUT) para objetos en Amazon S3. El cifrado de datos permite cifrar los objetos queEMRFS escribe en Amazon S3 y permite a EMRFS trabajar con los objetos cifrados en Amazon S3. Siutiliza la versión 4.8.0 o posterior de Amazon EMR, puede utilizar los ajustes de seguridad para configurarel cifrado para los objetos de EMRFS en Amazon S3, junto con otros ajustes de cifrado. Para obtenermás información, consulte Opciones de cifrado (p. 190). Si utiliza una versión anterior de AmazonEMR, puede configurar manualmente los ajustes de cifrado. Para obtener más información, consulteEspecificación del cifrado de Amazon S3 mediante propiedades de EMRFS (p. 93).

Si utiliza la versión 5.10.0 o posterior de Amazon EMR, puede utilizar roles de IAM diferentes para lassolicitudes de EMRFS a Amazon S3 en función de los usuarios o los grupos del clúster, o de la ubicación

75

Page 83: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

de los datos de EMRFS en Amazon S3. Para obtener más información, consulte Configuración de roles deIAM para las solicitudes de EMRFS a Amazon S3 (p. 225).

Temas• Vista consistente (p. 76)• Autorización de acceso a los datos de EMRFS en Amazon S3 (p. 92)• Especificación del cifrado de Amazon S3 mediante propiedades de EMRFS (p. 93)

Vista consistenteLa vista consistente de EMRFS es una característica opcional que está disponible cuando se utilizala versión 3.2.1 o posterior de Amazon EMR. La vista consistente permite que los clústeres de EMRcomprueben la consistencia de listas y de lectura tras escritura de los objetos de Amazon S3 escritospor EMRFS o sincronizados con él. La vista consistente aborda un problema que puede surgir debidoal modelo de consistencia de datos de Amazon S3. Por ejemplo, si se añaden objetos a Amazon S3 enuna operación y, a continuación, se enumeran inmediatamente los objetos en una operación posterior, esposible que la lista y el conjunto de objetos procesados estén incompletos. Esto suele ser un problemapara los clústeres que ejecutan pasos de forma rápida y secuencial y utilizan Amazon S3 como almacénde datos; por ejemplo, las canalizaciones de procesamiento de datos de extracción, transformación y carga(ETL) de varios pasos.

Cuando se crea un clúster con la vista consistente activada, Amazon EMR utiliza una base de datosde Amazon DynamoDB para almacenar los metadatos de los objetos y realizar un seguimiento de laconsistencia con Amazon S3. Si la vista consistente determina que Amazon S3 no es consistente duranteuna operación del sistema de archivos, vuelve a intentar la operación de acuerdo con reglas que puededefinir el usuario. De forma predeterminada, la base de datos de DynamoDB tiene una capacidad delectura de 400 y una capacidad de escritura de 100. Es posible configurar los ajustes de capacidad delectura/escritura en función del número de objetos supervisados por EMRFS y del número de nodos queutilizan los metadatos de forma simultánea. También puede configurar otros parámetros de funcionamientoy de la base de datos. El uso de la vista consistente genera cargos de DynamoDB, que suelen serpequeños, además de los cargos de Amazon EMR. Para obtener más información, consulte Precios deAmazon DynamoDB.

Cuando se tiene activada la vista consistente, EMRFS devuelve el conjunto de objetos enumeradosen un almacén de metadatos de EMRFS y los que devuelve directamente Amazon S3 para una rutadeterminada. Dado que Amazon S3 sigue siendo la "fuente de confianza" de los objetos de una ruta,EMRFS garantiza que se procese todo en una ruta de Amazon S3 especificada, independientementede que se realice su seguimiento en los metadatos. Sin embargo, la vista consistente de EMRFS sologarantiza que se compruebe la consistencia de los objetos de las carpetas para las que se realiza unseguimiento.

Puede usar la utilidad de EMRFS (emrfs) desde la línea de comandos del nodo principal para realizaroperaciones con los objetos de Amazon S3 cuyo seguimiento se realiza mediante la vista consistente. Porejemplo, puede importar, eliminar y sincronizar objetos de Amazon S3 con el almacén de metadatos deEMRFS. Para obtener más información sobre la utilidad de la CLI de EMRFS, consulte Referencia de laCLI de EMRFS (p. 85).

Si se eliminan directamente objetos de Amazon S3 cuyo seguimiento se realiza con metadatos deEMRFS, EMRFS considera que el objeto es inconsistente y genera una excepción cuando ha agotado losreintentos. Utilice EMRFS para eliminar los objetos de Amazon S3 cuyo seguimiento se realiza mediantela vista consistente. También puede utilizar la línea de comandos de emrfs para purgar las entradasde metadatos de los objetos que se han eliminado directamente, o sincronizar la vista consistente conAmazon S3 inmediatamente después de eliminar los objetos.

Temas

76

Page 84: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

• Habilitación de la vista consistente (p. 77)• Seguimiento de objetos de Amazon S3 mediante la vista consistente de EMRFS (p. 78)• Lógica de reintentos (p. 79)• Metadatos de la vista consistente de EMRFS (p. 79)• Configuración de las notificaciones de consistencia para CloudWatch y Amazon SQS (p. 81)• Configuración de la vista consistente (p. 82)• Referencia de la CLI de EMRFS (p. 85)

Habilitación de la vista consistentePuede habilitar el cifrado del lado del servidor de Amazon S3 o la vista consistente para EMRFS usando laConsola de administración de AWS, la AWS CLI o la emrfs-siteclasificación de configuración.

Para configurar la vista consistente utilizando la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. Elija los valores de Step 1: Software and Steps (Paso 1: Software y pasos) y Step 2: Hardware (Paso

2: Hardware).4. En Step 3: General Cluster Settings (Paso 3: Configuración general del clúster), en Additional Options

(Opciones adicionales), elija EMRFS consistent view (Vista consistente de EMRFS).5. En EMRFS Metadata store (Almacén de metadatos de EMRFS), escriba el nombre del almacén de

metadatos. El valor predeterminado es EmrFSMetadata. Si la tabla EmrFSMetadata no existe, secrea automáticamente en DynamoDB.

Note

Amazon EMR no elimina automáticamente los metadatos de EMRFS desde DynamoDBcuando se termina el clúster.

6. En Number of retries (Número de reintentos), escriba un valor entero. Si se detecta una inconsistencia,EMRFS intenta llamar a Amazon S3 este número de veces. El valor predeterminado es 5.

7. En Retry period (in seconds) (Período de reintento (en segundos)), escriba un valor entero. Se trata dela cantidad de tiempo que EMRFS espera entre reintentos. El valor predeterminado es 10.

Note

Los reintentos siguientes utilizan un retardo exponencial.

Para lanzar un clúster con una vista consistente habilitada utilizando la AWS CLI

Le recomendamos que instale la versión actual de la AWS CLI. Para descargar la versión más reciente,consulte https://aws.amazon.com/cli/.

• Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --instance-type m5.xlarge --instance-count 3 --emrfs Consistent=true \--release-label emr-5.30.0 --ec2-attributes KeyName=myKey

77

Page 85: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Para comprobar si la vista consistente está habilitada utilizando la Consola de administración deAWS

• Para comprobar si la vista consistente está habilitada en la consola, vaya a Cluster List (Lista declústeres) y seleccione el nombre del clúster para ver los Cluster Details (Detalles del clúster). Elcampo "EMRFS consistent view" tiene un valor de Enabled o Disabled.

Para comprobar si la vista consistente está habilitada examinando el archivo emrfs-site.xml

• Puede comprobar si la consistencia está habilitada inspeccionando el archivo de configuraciónemrfs-site.xml en el nodo principal del clúster. Si el valor booleano para fs.s3.consistent seestablece en true, la vista consistente está habilitada para las operaciones del sistema de archivosque afectan a Amazon S3.

Seguimiento de objetos de Amazon S3 mediante la vistaconsistente de EMRFSEMRFS crea una vista consistente de los objetos en Amazon S3 añadiendo información sobre estosobjetos a los metadatos de EMRFS. EMRFS añade estas listas a sus metadatos cuando:

• Un objeto escrito por EMRFS durante el transcurso de un trabajo de Amazon EMR.• Un objeto se sincroniza con o se importa a los metadatos de EMRFS utilizando la CLI de EMRFS.

Los objetos leídos por EMRFS no se añaden automáticamente a los metadatos. Cuando EMRFS eliminaun objeto, su entrada permanece en los metadatos con el estado eliminado hasta que dicha entrada sepurga utilizando la CLI de EMRFS. Para obtener más información sobre la CLI, consulte Referencia de laCLI de EMRFS (p. 85). Para obtener más información sobre la eliminación de listados en los metadatosde EMRFS, consulte Metadatos de la vista consistente de EMRFS (p. 79).

Por cada operación de Amazon S3, EMRFS comprueba los metadatos para obtener información sobre elconjunto de objetos en la vista consistente. Si EMRFS detecta que Amazon S3 es inconsistente duranteuna de estas operaciones, vuelve a intentar la operación, de acuerdo con los parámetros definidos enlas propiedades de configuración de emrfs-site. Cuando EMRFS agota los reintentos, genera unaexcepción ConsistencyException o registra la excepción y continúa el flujo de trabajo. Para obtenermás información acerca de la lógica de reintentos, consulte Lógica de reintentos (p. 79). Puedeencontrar ConsistencyExceptions en sus registros, por ejemplo:

• listStatus: no hay ningún objeto de Amazon S3 para el elemento de metadatos /S3_bucket/dir/object

• getFileStatus: la clave dir/file está en los metadatos pero no en Amazon S3

Si elimina un objeto directamente desde Amazon S3 y se está realizando su seguimiento en la vistaconsistente de EMRFS, EMRFS trata dicho objeto como inconsistente, ya que sigue apareciendo enlos metadatos como presente en Amazon S3. Si los metadatos dejan de estar sincronizados con losobjetos cuyo seguimiento realiza EMRFS en Amazon S3, puede utilizar el subcomando sync de la CLI deEMRFS para restablecer el estado de los metadatos de Amazon S3. Para descubrir discrepancias entrelos metadatos y Amazon S3, utilice el comando diff. Por último, EMRFS solo tiene una vista consistentede los objetos a los que se hace referencia en los metadatos; puede haber otros objetos en la mismaruta de Amazon S3 de los que no se está realizando seguimiento. Cuando EMRFS muestra un listadode los objetos de una ruta de Amazon S3, devuelve el superconjunto de los objetos a los que se haceseguimiento en los metadatos y de los que están en esa ruta de Amazon S3.

78

Page 86: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Lógica de reintentosEMRFS intenta comprobar la consistencia de la lista de objetos a los que se hace seguimientoen sus metadatos un número de reintentos específico. El valor predeterminado es 5. En casode que el número de reintentos supere el trabajo de origen se devuelve un error, a menos quefs.s3.consistent.throwExceptionOnInconsistency se haya establecido en false,donde solo registrará los objetos marcados como inconsistentes. EMRFS utiliza una política dereintento de retardo exponencial de forma predeterminada, pero también puede establecer auna política fija. Es posible que los usuarios también deseen volver a intentar tras un periodo detiempo determinado antes de proceder con el resto de su trabajo sin lanzar una excepción. Puedenconseguirlo configurando fs.s3.consistent.throwExceptionOnInconsistency en false,fs.s3.consistent.retryPolicyType en fixed y fs.s3.consistent.retryPeriodSecondspara el valor deseado. El siguiente ejemplo crea un clúster con la consistencia habilitada, que registra lasinconsistencias y establece un intervalo de reintento fijo de 10 segundos:

Example Establecimiento de un periodo de reintento en una cantidad fija

aws emr create-cluster --release-label emr-5.30.0 \--instance-type m5.xlarge --instance-count 1 \--emrfs Consistent=true,Args=[fs.s3.consistent.throwExceptionOnInconsistency=false, fs.s3.consistent.retryPolicyType=fixed,fs.s3.consistent.retryPeriodSeconds=10] --ec2-attributes KeyName=myKey

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad. Sepueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos o reemplácelos porun signo de intercalación (^).

Para obtener más información, consulte Vista consistente (p. 76).

Metadatos de la vista consistente de EMRFSLa vista consistente de EMRFS realiza un seguimiento de la consistencia mediante una tabla deDynamoDB que permite controlar los objetos de Amazon S3 que se han creado o sincronizado conEMRFS. Los metadatos se utilizan para realizar un seguimiento de todas las operaciones (lectura,escritura, actualización y copia) y no se almacena ningún contenido real. Estos metadatos se utilizanpara validar si los objetos o los metadatos recibidos desde Amazon S3 coinciden con lo que se espera.Esta confirmación ofrece a EMRFS la capacidad de comprobar la consistencia de lista y la consistenciade lectura después de escritura para nuevos objetos que EMRFS escribe en Amazon S3 u objetossincronizados con EMRFS. Varios clústeres pueden compartir los mismos metadatos.

Cómo añadir entradas a metadatos

Puede utilizar los subcomandos sync o import para añadir entradas a los metadatos. sync refleja elestado de los objetos de Amazon S3 de una ruta, mientras que import se utiliza estrictamente paraañadir entradas nuevas a los metadatos. Para obtener más información, consulte Referencia de la CLI deEMRFS (p. 85).

Cómo comprobar las diferencias entre metadatos y objetos en Amazon S3

Para comprobar si hay diferencias entre los metadatos y Amazon S3, utilice el subcomando diff de la CLIde EMRFS. Para obtener más información, consulte Referencia de la CLI de EMRFS (p. 85).

Cómo saber si las operaciones de metadatos se están limitando

EMRFS establece límites de capacidad de rendimiento predeterminados en los metadatos para susoperaciones de lectura y escritura en 400 y 100 unidades, respectivamente. Un gran número deobjetos o buckets podría provocar que las operaciones superen esta capacidad, a partir de la cual

79

Page 87: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

se verán limitadas por DynamoDB. Por ejemplo, una aplicación podría hacer que EMRFS lance unaProvisionedThroughputExceededException si está realizando una operación que supere estoslímites de capacidad. Tras la limitación controlada, la herramienta de la CLI de EMRFS vuelve a intentar laescritura en la tabla de DynamoDB aplicando un retardo exponencial hasta que finaliza la operación o sealcanza el valor máximo de reintentos para escribir objetos desde Amazon EMR en Amazon S3.

También puede ver las métricas de Amazon CloudWatch para los metadatos de EMRFS en la consola deDynamoDB, donde podrá ver el número de solicitudes de lectura y escritura limitadas. Si tiene un valordistinto de cero para las solicitudes limitadas, la aplicación podría potencialmente beneficiarse del aumentode capacidad de rendimiento asignada para operaciones de lectura o escritura. También puede obtener unbeneficio de rendimiento si ve que sus operaciones se aproximan a la capacidad máxima de rendimientoasignada en lecturas o escrituras durante un periodo de tiempo prolongado.

Características de rendimiento para operaciones de EMRFS notables

El valor predeterminado para las operaciones de lectura y escritura es de 400 y 100 unidades decapacidad de rendimiento, respectivamente. Las siguientes características de rendimiento le dan unaidea del rendimiento necesario para determinadas operaciones. Estas pruebas se realizaron a través declúster m3.large de un único nodo. Todas las operaciones tenían un único hilo. El rendimiento varia engran medida en función de las características de la aplicación en particular y es posible que tenga queexperimentar para optimizar las operaciones del sistema de archivos.

Operación Promedio delecturas por segundo

Promedio de escrituras por segundo

create (objeto) 26,79 6,70

delete (objeto) 10,79 10,79

delete (directorio que contiene 1000objetos)

21,79 338,40

getFileStatus (objeto) 34,70 0

getFileStatus (directorio) 19,96 0

listStatus (directorio que contiene unobjeto)

43,31 0

listStatus (directorio que contiene 10objetos)

44,34 0

listStatus (directorio que contiene100 objetos)

84,44 0

listStatus (directorio que contiene1000 objetos)

308,81 0

listStatus (directorio que contiene10 000 objetos)

416,05 0

listStatus (directorio que contiene100 000 objetos)

823,56 0

listStatus (directorio que contiene unmillón de objetos)

882,36 0

mkdir (continuo para 120 segundos) 24,18 4,03

mkdir 12,59 0

80

Page 88: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Operación Promedio delecturas por segundo

Promedio de escrituras por segundo

rename (objeto) 19,53 4,88

rename (directorio que contiene1000 objetos)

23,22 339,34

Para enviar un paso que elimina datos antiguos de su almacén de metadatos

Es posible que los usuarios deseen eliminar entradas particulares en los metadatos basados enDynamoDB. Esto puede ayudar a reducir los costos de almacenamiento asociados a la tabla. Los usuariostienen la posibilidad de eliminar manualmente o mediante programación las entradas particulares a travésdel subcomando delete de la CLI de EMRFS. No obstante, si elimina las entradas desde los metadatos,EMRFS ya no realiza ninguna comprobación de consistencia.

La eliminación mediante programación tras la finalización de un trabajo puede realizarse enviando unúltimo paso al clúster, que ejecuta un comando de la CLI de EMRFS. Por ejemplo, escriba el siguientecomando para enviar un paso a su clúster para eliminar todas las entradas de más de dos días.

aws emr add-steps --cluster-id j-2AL4XXXXXX5T9 --steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"]{ "StepIds": [ "s-B12345678902" ]}

Utilice el valor StepId devuelto para comprobar los registros para el resultado de la operación.

Configuración de las notificaciones de consistencia paraCloudWatch y Amazon SQSPuede habilitar las métricas de CloudWatch y los mensajes de Amazon SQS en EMRFS para solucionarproblemas de consistencia final de Amazon S3.

CloudWatch

Cuando están habilitadas las métricas de CloudWatch, se envía una métrica denominada Inconsistency(Inconsistencia) cada vez que una llamada a la API FileSystem devuelve un error debido a consistenciafinal de Amazon S3.

Para ver las métricas de CloudWatch para problemas de consistencia final de Amazon S3

Para ver la métrica Inconsistency (Inconsistencia) en la consola CloudWatch, seleccione las métricas deEMRFS y, a continuación, seleccione un par JobFlowId/Metric Name (Nombre de métrica). Por ejemplo,j-162XXXXXXM2CU ListStatus, j-162XXXXXXM2CU GetFileStatus etc.

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el Dashboard (Panel), en la sección Metrics (Métricas), elija EMRFS.3. En el panel Job Flow Metrics (Métricas de flujo de trabajo), seleccione uno o más pares

JobFlowId/Metric Name (Nombre de métrica). Aparece una representación gráfica de las métricas enla ventana siguiente.

Amazon SQS

81

Page 89: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Cuando están habilitadas las notificaciones Amazon SQS, se crea una cola de Amazon SQS denominadaEMRFS-Inconsistency-<jobFlowId> cuando se inicializa EMRFS. Los mensajes de AmazonSQS se envían a la cola cuando se produce un error en una llamada a la API FileSystem debido a laconsistencia final de Amazon S3. El mensaje contiene información como JobFlowId, API, una lista de rutasinconsistentes, un seguimiento de la pila, etc. Los mensajes se pueden leer a través de la consola deAmazon SQS o mediante el comando read-sqs de EMRFS.

Para administrar mensajes de Amazon SQS para problemas de consistencia final de Amazon S3

Los mensajes de Amazon SQS para problemas de consistencia final de Amazon S3 se pueden leer conla CLI de EMRFS. Para leer mensajes desde una cola de Amazon SQS de EMRFS, escriba el comandoread-sqs y especifique una ubicación de salida en el sistema de archivos local del nodo principal para elarchivo de salida resultante.

También puede eliminar una cola de Amazon SQS de EMRFS utilizando el comando delete-sqs.

1. Para leer los mensajes de una cola de Amazon SQS, escriba el siguiente comando. Sustituyaqueuename por el nombre de la cola de Amazon SQS que ha configurado y sustituya /path/filename por la ruta al archivo de salida:

emrfs read-sqs --queue-name queuename --output-file /path/filename

Por ejemplo, para leer y generar mensajes de Amazon SQS desde la cola predeterminada, escriba:

emrfs read-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU --output-file /path/filename

Note

También puede utilizar los accesos directos -q y -o en lugar de --queue-name y --output-file respectivamente.

2. Para eliminar una cola de Amazon SQS, escriba el comando siguiente:

emrfs delete-sqs --queue-name queuename

Por ejemplo, para eliminar la cola predeterminada, escriba:

emrfs delete-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU

Note

También puede utilizar el acceso directo -q en lugar de --queue-name.

Configuración de la vista consistentePuede configurar ajustes adicionales para la vista consistente mediante las propiedades de configuraciónde emrfs-site. Por ejemplo, puede elegir otra opción predeterminada de rendimiento de DynamoDBsuministrando los siguientes argumentos a la opción --emrfs de la CLI, utilizando la clasificación deconfiguración emrfs-site (solo para Amazon EMR versión 4.x y posteriores), o mediante una acción dearranque para configurar el archivo emrfs-site.xml en el nodo principal.

Example Cambio de valores de lectura y escritura de metadatos predeterminados en ellanzamiento del clúster

aws emr create-cluster --release-label emr-5.30.0 --instance-type m5.xlarge \

82

Page 90: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

--emrfs Consistent=true,Args=[fs.s3.consistent.metadata.read.capacity=600,\fs.s3.consistent.metadata.write.capacity=300] --ec2-attributes KeyName=myKey

De forma alternativa, utilice el siguiente archivo de configuración y guárdelo de forma local o en AmazonS3:

[ { "Classification": "emrfs-site", "Properties": { "fs.s3.consistent.metadata.read.capacity": "600", "fs.s3.consistent.metadata.write.capacity": "300" } } ]

Utilice la configuración que ha creado con la siguiente sintaxis:

aws emr create-cluster --release-label emr-5.30.0 --applications Name=Hive \--instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad. Sepueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos o reemplácelos porun signo de intercalación (^).

Las siguientes opciones se pueden establecer mediante argumentos --emrfs de la AWS CLI. Paraobtener información sobre estos argumentos, consulte AWS CLI Command Reference.

Propiedades emrfs-site.xml para vista consistente

Propiedad Valorpredeterminado

Descripción

fs.s3.consistent false Cuando se establece en true,esta propiedad configura EMRFSpara utilizar DynamoDB paraproporcionar consistencia.

fs.s3.consistent.retryPolicyType exponential Esta propiedad identifica lapolítica que utilizar a la hora devolver a intentar los problemasde consistencia. Las opcionesincluyen: exponential, fixed o none.

fs.s3.consistent.retryPeriodSeconds 1 Esta propiedad establece laduración que esperar entre lareintentos de consistencia.

fs.s3.consistent.retryCount 10 Esta propiedad establece el númeromáximo de reintentos cuando sedetecta inconsistencia.

fs.s3.consistent.throwExceptionOnInconsistencytrue Esta propiedad determina silanzar o registrar una excepciónde consistencia. Cuando seestablece en true, se lanza unaConsistencyException.

83

Page 91: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Propiedad Valorpredeterminado

Descripción

fs.s3.consistent.metadata.autoCreate true Cuando se establece en true,esta propiedad habilita la creaciónautomática de tablas de metadatos.

fs.s3.consistent.metadata.etag.verification.enabledtrue Con Amazon EMR 5.29.0, estapropiedad está habilitada deforma predeterminada. Cuandoestá habilitada, EMRFS utilizalas ETags de S3 para comprobarque los objetos leídos tienen laúltima versión disponible. Estacaracterística resulta útil paracasos de uso de lectura despuésde la actualización en los que losarchivos de S3 se sobrescribenconservando el mismo nombre.Esta capacidad de comprobaciónde ETag no funciona actualmentecon S3 Select.

fs.s3.consistent.metadata.tableName EmrFSMetadataEsta propiedad especifica elnombre de la tabla de metadatos enDynamoDB.

fs.s3.consistent.metadata.read.capacity500 Esta propiedad especifica lacapacidad de lectura de DynamoDBpara aprovisionar cuando se crea latabla de metadatos.

fs.s3.consistent.metadata.write.capacity100 Esta propiedad especifica lacapacidad de escritura deDynamoDB para aprovisionarcuando se crea la tabla demetadatos.

fs.s3.consistent.fastList true Cuando se establece en true,esta propiedad utiliza variossubprocesos para mostrar undirectorio (cuando sea necesario).La consistencia debe estarhabilitada para utilizar estapropiedad.

fs.s3.consistent.fastList.prefetchMetadatafalse Cuando se establece en true,esta propiedad habilita la capturaprevia de metadatos para losdirectorios que contengan más de20 000 elementos.

fs.s3.consistent.notification.CloudWatchfalse Cuando se establece en true,las métricas de CloudWatch estánhabilitadas para las llamadas a laAPI de FileSystem que devuelvenun error debido a problemas deconsistencia final de Amazon S3.

84

Page 92: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Propiedad Valorpredeterminado

Descripción

fs.s3.consistent.notification.SQS false Cuando se establece en true, lasnotificaciones de consistencia finalse envían a una cola de AmazonSQS.

fs.s3.consistent.notification.SQS.queueNameEMRFS-Inconsistency-<jobFlowId>

Cambiar esta propiedad lepermite especificar su propionombre de cola de SQS paramensajes relativos a problemas deconsistencia final de Amazon S3.

fs.s3.consistent.notification.SQS.customMsgnone Esta propiedad le permiteespecificar informaciónpersonalizada incluida en mensajesde SQS relativos a problemas deconsistencia final de Amazon S3.Si no se especifica ningún valorpara esta propiedad, el campocorrespondiente en el mensaje estávacío.

fs.s3.consistent.dynamodb.endpoint none Esta propiedad le permiteespecificar un punto de enlace deDynamoDB personalizado para susmetadatos de vista consistente.

Referencia de la CLI de EMRFSLa CLI de EMRFS se instala de forma predeterminada en todos los nodos principales del clúster creadoscon la versión 3.2.1 o posterior de Amazon EMR. Puede utilizar la CLI de EMRFS para administrar losmetadatos de la vista consistente.

Note

El comando emrfs solo se admite con la emulación de terminal VT100. Sin embargo, podríafuncionar con otros modos de emulador del terminal.

comando de nivel superior emrfsEl comando de nivel superior emrfs admite la siguiente estructura.

emrfs [describe-metadata | set-metadata-capacity | delete-metadata | create-metadata | \list-metadata-stores | diff | delete | sync | import ] [options] [arguments]

Especifique [opciones], con o sin [argumentos] tal y como se describe en la siguiente tabla. Para [opciones]específicas de subcomandos (describe-metadata, set-metadata-capacity, etc.), consulte cadasubcomando a continuación.

[opciones] para emrfs

Opción Descripción Obligatorio

-a AWS_ACCESS_KEY_ID| --access-keyAWS_ACCESS_KEY_ID

La clave de acceso de AWS que se utiliza para escribirobjetos en Amazon S3 y para crear o tener acceso aun almacén de metadatos en DynamoDB. De forma

No

85

Page 93: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Opción Descripción Obligatoriopredeterminada, AWS_ACCESS_KEY_ID se establece enla clave de acceso que se utilizó para crear el clúster.

-s AWS_SECRET_ACCESS_KEY| --secret-keyAWS_SECRET_ACCESS_KEY

La clave secreta de AWS asociada a la clave deacceso que se utiliza para escribir objetos en AmazonS3 y para crear o tener acceso a un almacén demetadatos en DynamoDB. De forma predeterminada,AWS_SECRET_ACCESS_KEY se define en la clavesecreta asociada a la clave de acceso que se utilizópara crear el clúster.

No

-v | --verbose Hace que la salida sea detallada. No

-h | --help Muestra el mensaje de ayuda para el comando emrfscon una declaración de uso.

No

subcomando emrfs describe-metadata

[opciones] para emrfs describe-metadata

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

Example ejemplo de emrfs describe-metadata

En el siguiente ejemplo se describe la tabla de metadatos predeterminados.

$ emrfs describe-metadataEmrFSMetadata read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 12

subcomando emrfs set-metadata-capacity

[opciones] para emrfs set-metadata-capacity

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

-r READ_CAPACITY | --read-capacity READ_CAPACITY

La capacidad de rendimiento de lectura solicitada parala tabla de metadatos. Si no se facilita el argumentoREAD_CAPACITY, el valor predeterminado es 400.

No

86

Page 94: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Opción Descripción Obligatorio

-w WRITE_CAPACITY| --write-capacityWRITE_CAPACITY

La capacidad de rendimiento de escritura solicitadapara la tabla de metadatos. Si no se facilita elargumento WRITE_CAPACITY, el valor predeterminadoes 100.

No

Example ejemplo de emrfs set-metadata-capacity

El siguiente ejemplo establece la capacidad de rendimiento de lectura en 600 y la capacidad de escrituraen 150 para una tabla de metadatos denominada EmrMetadataAlt.

$ emrfs set-metadata-capacity --metadata-name EmrMetadataAlt --read-capacity 600 --write-capacity 150 read-capacity: 400 write-capacity: 100 status: UPDATING approximate-item-count (6 hour delay): 0

subcomando emrfs delete-metadata

[opciones] para emrfs delete-metadata

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

Example ejemplo de emrfs delete-metadata

En el siguiente ejemplo se elimina la tabla de metadatos predeterminados.

$ emrfs delete-metadata

subcomando emrfs create-metadata

[opciones] para emrfs create-metadata

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

-r READ_CAPACITY | --read-capacity READ_CAPACITY

La capacidad de rendimiento de lectura solicitada parala tabla de metadatos. Si no se facilita el argumentoREAD_CAPACITY, el valor predeterminado es 400.

No

-w WRITE_CAPACITY| --write-capacityWRITE_CAPACITY

La capacidad de rendimiento de escritura solicitadapara la tabla de metadatos. Si no se facilita elargumento WRITE_CAPACITY, el valor predeterminadoes 100.

No

87

Page 95: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Example ejemplo de emrfs create-metadata

El siguiente ejemplo crea una tabla de metadatos denominada EmrFSMetadataAlt.

$ emrfs create-metadata -m EmrFSMetadataAltCreating metadata: EmrFSMetadataAltEmrFSMetadataAlt read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 0

subcomando emrfs list-metadata-stores

El subcomando emrfs list-metadata-stores no tiene opciones.

Example ejemplo de list-metadata-stores

El siguiente ejemplo muestra las tablas de metadatos.

$ emrfs list-metadata-stores EmrFSMetadata

subcomando emrfs diff

[opciones] para emrfs diff

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

s3://s3Path La ruta del bucket de Amazon S3 que se debecomparar con la tabla de metadatos. Los buckets sesincronizan de forma recursiva.

Example ejemplo de emrfs diff

En el siguiente ejemplo se compara la tabla de metadatos predeterminados con un bucket de Amazon S3.

$ emrfs diff s3://elasticmapreduce/samples/cloudfrontBOTH | MANIFEST ONLY | S3 ONLYDIR elasticmapreduce/samples/cloudfrontDIR elasticmapreduce/samples/cloudfront/code/DIR elasticmapreduce/samples/cloudfront/input/DIR elasticmapreduce/samples/cloudfront/logprocessor.jarDIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-14.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-15.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-16.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-17.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-18.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-19.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-20.WxYz1234DIR elasticmapreduce/samples/cloudfront/code/cloudfront-loganalyzer.tgz

88

Page 96: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

subcomando emrfs delete

[opciones] para emrfs delete

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

s3://s3Path La ruta al bucket de Amazon S3 que está siguiendopara una vista consistente. Los buckets se sincronizande forma recursiva.

-t TIME | --time TIME La fecha de vencimiento (interpretada con el argumentode unidad de tiempo). Todas las entradas de metadatosmás antiguas que el argumento TIME se eliminan parael bucket especificado.

 

-u UNIT | --time-unit UNIT La medida utilizada para interpretar el argumento detiempo (nanosegundos, microsegundos, milisegundos,segundos, minutos, horas o días). Si no se especificaningún argumento, el valor predeterminado es days.

 

--read-consumptionREAD_CONSUMPTION

La cantidad solicitada de rendimiento de lecturadisponible utilizada para la operación delete. Si no seespecifica el argumento READ_CONSUMPTION, el valorpredeterminado es 400.

No

--write-consumptionWRITE_CONSUMPTION

La cantidad solicitada de rendimiento de escrituradisponible utilizada para la operación delete. Si no seespecifica el argumento WRITE_CONSUMPTION, el valorpredeterminado es 100.

No

Example ejemplo de emrfs delete

El siguiente ejemplo elimina todos los objetos en un bucket de Amazon S3 desde los metadatos deseguimiento para una vista consistente.

$ emrfs delete s3://elasticmapreduce/samples/cloudfrontentries deleted: 11

subcomando emrfs import

[opciones] para emrfs import

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

s3://s3Path La ruta al bucket de Amazon S3 que está siguiendopara una vista consistente. Los buckets se sincronizande forma recursiva.

89

Page 97: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Opción Descripción Obligatorio

--read-consumptionREAD_CONSUMPTION

La cantidad solicitada de rendimiento de lecturadisponible utilizada para la operación delete. Si no seespecifica el argumento READ_CONSUMPTION, el valorpredeterminado es 400.

No

--write-consumptionWRITE_CONSUMPTION

La cantidad solicitada de rendimiento de escrituradisponible utilizada para la operación delete. Si no seespecifica el argumento WRITE_CONSUMPTION, el valorpredeterminado es 100.

No

Example ejemplo de emrfs import

El siguiente ejemplo importa todos los objetos en un bucket de Amazon S3 con los metadatos deseguimiento para una vista consistente. Todas las claves desconocidas se omiten.

$ emrfs import s3://elasticmapreduce/samples/cloudfront

subcomando emrfs sync

[opciones] para emrfs sync

Opción Descripción Obligatorio

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME es el nombre de la tabla demetadatos de DynamoDB. Si no se facilita el argumentoMETADATA_NAME, el valor predeterminado esEmrFSMetadata.

No

s3://s3Path La ruta al bucket de Amazon S3 que está siguiendopara una vista consistente. Los buckets se sincronizande forma recursiva.

--read-consumptionREAD_CONSUMPTION

La cantidad solicitada de rendimiento de lecturadisponible utilizada para la operación delete. Si no seespecifica el argumento READ_CONSUMPTION, el valorpredeterminado es 400.

No

--write-consumptionWRITE_CONSUMPTION

La cantidad solicitada de rendimiento de escrituradisponible utilizada para la operación delete. Si no seespecifica el argumento WRITE_CONSUMPTION, el valorpredeterminado es 100.

No

Example ejemplo de comando emrfs sync

El siguiente ejemplo importa todos los objetos en un bucket de Amazon S3 con los metadatos deseguimiento para una vista consistente. Todas las claves desconocidas se eliminan.

$ emrfs sync s3://elasticmapreduce/samples/cloudfrontSynching samples/cloudfront 0 added | 0 updated | 0 removed | 0 unchangedSynching samples/cloudfront/code/ 1 added | 0 updated | 0 removed | 0 unchangedSynching samples/cloudfront/ 2 added | 0 updated | 0 removed | 0 unchanged

90

Page 98: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVista consistente

Synching samples/cloudfront/input/ 9 added | 0 updated | 0 removed | 0 unchangedDone synching s3://elasticmapreduce/samples/cloudfront 9 added | 0 updated | 1 removed | 0 unchangedcreating 3 folder key(s)folders written: 3

subcomando emrfs read-sqs

[opciones] para emrfs read-sqs

Opción Descripción Obligatorio

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME es el nombre de la cola de AmazonSQS configurada en emrfs-site.xml. El valorpredeterminado es EMRFS-Inconsistency-<jobFlowId>.

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE es la ruta al archivo de salida en elsistema de archivos local del nodo principal. Losmensajes leídos desde la cola se escriben en estearchivo.

subcomando emrfs delete-sqs

[opciones] para emrfs delete-sqs

Opción Descripción Obligatorio

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME es el nombre de la cola de AmazonSQS configurada en emrfs-site.xml. El valorpredeterminado es EMRFS-Inconsistency-<jobFlowId>.

Envío de comandos de CLI EMRFS CLI como pasos

El siguiente ejemplo muestra cómo usar la utilidad emrfs en el nodo principal utilizando la AWS CLI o laAPI y el archivo script-runner.jar para ejecutar el comando emrfs como un paso. El ejemplo utilizael SDK de AWS para Python (Boto) para añadir un paso a un clúster que añade objetos en un bucket deAmazon S3 a la tabla de metadatos EMRFS predeterminada. Sustituya j-2AL4XXXXXX5T9 por el IDdel clúster.

import boto3from botocore.exceptions import ClientError

# Assign the ID of an existing cluster to the following variablejob_flow_id = 'CLUSTER_ID'

# Define a job flow step. Assign appropriate values as desired.job_flow_step_01 = { 'Name': 'Example EMRFS Sync Step', 'ActionOnFailure': 'CONTINUE', 'HadoopJarStep': { 'Jar': 's3://elasticmapreduce/libs/script-runner/script-runner.jar', 'Args': [ '/usr/bin/emrfs',

91

Page 99: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAutorización de acceso a los

datos de EMRFS en Amazon S3

'sync', 's3://elasticmapreduce/samples/cloudfront' ] }}

# Add the step(s)emr_client = boto3.client('emr')try: response = emr_client.add_job_flow_steps(JobFlowId=job_flow_id, Steps=[job_flow_step_01])except ClientError as e: print(e.response['Error']['Message']) exit(1)

# Output the IDs of the added stepsprint('Step IDs:')for stepId in response['StepIds']: print(stepId)

Puede utilizar el valor devuelto stepId para comprobar los registros para el resultado de la operación.

Autorización de acceso a los datos de EMRFS enAmazon S3De forma predeterminada, el rol de EMR para EC2 determina los permisos para obtener acceso a losdatos de EMRFS en Amazon S3. Las políticas de IAM asociadas a este rol se aplican independientementedel usuario o del grupo que realice la solicitud a través de EMRFS. El valor predeterminado esEMR_EC2_DefaultRole. Para obtener más información, consulte Rol de servicio para instancias EC2 delclúster (perfil de instancia EC2) (p. 211).

A partir de la versión 5.10.0 de Amazon EMR, puede utilizar una configuración de seguridad paraespecificar los roles de IAM para EMRFS. Esto le permite personalizar los permisos para las solicitudesde EMRFS a Amazon S3 para los clústeres que tienen varios usuarios. Puede especificar roles de IAMdiferentes para diferentes usuarios y grupos, y para ubicaciones de buckets de Amazon S3 diferentesbasadas en el prefijo que tienen en Amazon S3. Cuando EMRFS realiza una solicitud a Amazon S3 quecoincide con los usuarios, grupos o ubicaciones especificados, el clúster utiliza el rol correspondienteespecificado en lugar del rol de EMR para EC2. Para obtener más información, consulte Configuración deroles de IAM para las solicitudes de EMRFS a Amazon S3 (p. 225).

Asimismo, si los requisitos de su solución de Amazon EMR no se satisfacen con los roles de IAM queEMRFS proporciona, puede definir una clase de proveedor de credenciales personalizada, que le permitapersonalizar el acceso a los datos de EMRFS en Amazon S3.

Creación de un proveedor de credenciales personalizado para losdatos de EMRFS en Amazon S3Para crear un proveedor de credenciales personalizado, debe implementar las clasesAWSCredentialsProvider y Configurable de Hadoop.

Para obtener una explicación detallada de este método, consulte Securely Analyze Data from AnotherAWS Account with EMRFS en el blog AWS Big Data. La entrada de blog incluye un tutorial que muestrael proceso de íntegro, desde la creación de los roles de IAM hasta el lanzamiento del clúster. Tambiénproporciona un ejemplo de código Java que implementa la clase del proveedor de credencialespersonalizado.

Los pasos básicos son los siguientes:

92

Page 100: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

Para especificar un proveedor de credenciales personalizado

1. Cree una clase de proveedor de credenciales personalizado compilada como un archivo JAR.2. Ejecute un script como una acción de arranque para copiar el archivo JAR del proveedor de

credenciales personalizado en la ubicación /usr/share/aws/emr/emrfs/auxlib del nodoprincipal del clúster. Para obtener más información acerca de las acciones de arranque, consulte(Opcional) Crear acciones de arranque para instalar software adicional.

3. Personalice la clasificación emrfs-site para especificar la clase que va a implementar en el archivoJAR. Para obtener más información sobre cómo especificar objetos de configuración para personalizaraplicaciones, consulte Configuración de aplicaciones en la Guía de publicación de Amazon EMR.

En el siguiente ejemplo se muestra un comando create-cluster que lanza un clúster de Hive conparámetros de configuración comunes, y que también incluye:

• Una acción de arranque que se ejecuta el script, copy_jar_file.sh, que se guarda enmybucket en Amazon S3.

• Una clasificación emrfs-site que especifica un proveedor de credenciales personalizado definidoen el archivo JAR como MyCustomCredentialsProvider.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --applications Name=Hive \--bootstrap-actions '[{"Path":"s3://mybucket/copy_jar_file.sh","Name":"Custom action"}]' \--ec2-attributes '{"KeyName":"MyKeyPair","InstanceProfile":"EMR_EC2_DefaultRole",\"SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\"EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \--service-role EMR_DefaultRole --enable-debugging --release-label emr-5.30.0 \--log-uri 's3n://my-emr-log-bucket/' --name 'test-awscredentialsprovider-emrfs' \--instance-type=m5.xlarge --instance-count 3 \--configurations '[{"Classification":"emrfs-site",\"Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\"Configurations":[]}]'

Especificación del cifrado de Amazon S3 mediantepropiedades de EMRFS

Important

A partir de la versión 4.8.0 de Amazon EMR, puede utilizar las configuraciones de seguridad paraaplicar la configuración de cifrado con mayor facilidad y con más opciones. Recomendamos queutilice las configuraciones de seguridad. Para obtener información, consulte Configuración delcifrado de datos (p. 172). Las instrucciones de la consola que se describen en esta secciónestán disponibles para las versiones anteriores a la 4.8.0. Si utiliza la AWS CLI para configurarel cifrado de Amazon S3 tanto en la configuración del clúster como en una configuración deseguridad en las versiones posteriores, la configuración de seguridad anula la configuración delclúster.

Al crear un clúster, puede especificar el cifrado del lado del servidor (SSE) o el cifrado del lado del cliente(CSE) para los datos de EMRFS en Amazon S3 usando la consola o mediante las propiedades de

93

Page 101: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

clasificación emrfs-site a través de la AWS CLI o del SDK de EMR. SSE y de CSE de Amazon S3 sonmutuamente excluyentes, puede elegir uno de ellos, pero no ambos.

Para obtener instrucciones para la AWS CLI, consulte la sección correspondiente al tipo de cifrado queaparece a continuación.

Para especificar las opciones de cifrado de EMRFS con la Consola de administración de AWS

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. Para Release (Versión), elija 4.7.2 o anterior.4. Elija otras opciones para Software and Steps (Software y pasos) adecuadas para su aplicación y, a

continuación, elija Next (Siguiente).5. En los paneles Hardware y General Cluster Settings (Configuración general del clúster), elija opciones

adecuadas para su aplicación.6. En el panel Security (Seguridad), en Authentication and encryption (Autenticación y cifrado),

seleccione la opción S3 Encryption (with EMRFS) (Cifrado de S3 (con EMRFS)).

Note

La opción S3 server-side encryption with KMS Key Management (Cifrado del lado del servidorde S3 con AWS Key Management Service) (SSE-KMS) no está disponible cuando se utilizaAmazon EMR versión 4.4 o anterior.

• Si elige una opción que utiliza AWS Key Management, elija un identificador en el campo AWS KMSKey ID (ID de clave de AWS KMS). Para obtener más información, consulte Uso de claves maestrasdel cliente (CMK) de AWS KMS para el cifrado de EMRFS (p. 94).

• Si elige S3 client-side encryption with custom materials provider (Cifrado del lado del cliente de S3con el proveedor de materiales de cifrado personalizado), rellene los campos Class name (Nombrede la clase) y JAR location (Ubicación de JAR). Para obtener más información, consulte Cifrado dellado del cliente de Amazon S3 (p. 96).

7. Elija las demás opciones que sean necesarias para su aplicación y, a continuación, elija CreateCluster (Crear clúster).

Uso de claves maestras del cliente (CMK) de AWS KMS para elcifrado de EMRFSLa clave de cifrado de AWS KMS debe crearse en la misma región que la instancia de clúster de AmazonEMR y los buckets de Amazon S3 utilizados con EMRFS. Si la clave especificada está en una cuentadistinta de la que utiliza para configurar un clúster, debe especificar dicha clave mediante su ARN.

El rol para el perfil de instancia de Amazon EC2 debe tener permisos para utilizar la CMKque se especifique. El rol predeterminado para el perfil de instancia en Amazon EMR esEMR_EC2_DefaultRole. Si utiliza un rol distinto para el perfil de instancia, o usa roles de IAM paralas solicitudes de EMRFS a Amazon S3, asegúrese de que cada rol se añade como usuario de clavessegún corresponda. Esto proporciona al rol permisos para utilizar la CMK. Para obtener más información,consulte Uso de políticas de claves en la AWS Key Management Service Developer Guide y Rol deservicio para instancias EC2 del clúster (perfil de instancia EC2) (p. 211).

Puede utilizar la Consola de administración de AWS para añadir su perfil de instancia o un perfil deinstancia de EC2 a la lista de usuarios clave de la CMK de AWS KMS especificada o puede usar la AWSCLI o un SDK de AWS para asociar una política de claves adecuada.

El siguiente procedimiento describe cómo añadir el perfil de instancia de EMR predeterminado,EMR_EC2_DefaultRole, como un usuario de claves con la Consola de administración de AWS. Se

94

Page 102: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

supone que ya ha creado una CMK. Para crear una nueva CMK, consulte Creación de claves en la AWSKey Management Service Developer Guide.

Para añadir el perfil de instancia EC2 para Amazon EMR a la lista de usuarios de claves de cifrado

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Key ManagementService (AWS KMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la región AWS, utilice el selector de regiones en la esquina superior derecha de lapágina.

3. Seleccione el alias de la CMK que modificar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el cuadro de diálogo Add key users (Agregar usuarios clave), seleccione el rol adecuado. El

nombre del rol predeterminado es EMR_EC2_DefaultRole.6. Elija Add.

Cifrado del lado del servidor de Amazon S3Cuando se configura el cifrado del lado del servidor de Amazon S3, Amazon S3 cifra los datos en el nivelde objeto a medida que escribe los datos en el disco y los descifra cuando se tiene acceso a ellos. Paraobtener más información sobre SSE, consulte Protección de datos con el cifrado del lado del servidor en laGuía para desarrolladores de Amazon Simple Storage Service.

Puede elegir entre dos sistemas de administración de claves distintos al especificar SSE en Amazon EMR:

• SSE-S3: Amazon S3 gestiona las claves por usted.• SSE-KMS: utilice una clave maestra de cliente de AWS KMS (CMK) configurada con políticas

adecuadas para Amazon EMR. Para obtener más información sobre los requisitos de clave paraAmazon EMR, consulte Uso de claves maestras de cliente (CMK) de AWS KMS para cifrado (p. 195).Cuando utilice AWS KMS, se aplican cargos por el almacenamiento y el uso de las claves de cifrado.Para obtener más información, consulte Precios de AWS KMS.

SSE con claves proporcionadas por el cliente (SSE-C) no está disponible para su uso con Amazon EMR.

Para crear un clúster con SSE-S3 habilitado mediante la AWS CLI

• Escriba el siguiente comando:

aws emr create-cluster --release-label emr-4.7.2 or earlier \--instance-count 3 --instance-type m5.xlarge --emrfs Encryption=ServerSide

También puede activar SSE-S3 estableciendo la propiedad fs.s3.enableServerSideEncryption en true enlas propiedades de emrfs-site. Consulte el ejemplo de SSE-KMS a continuación y omita la propiedadpara el ID de clave.

Para crear un clúster con SSE-KMS habilitado mediante la AWS CLI

Note

SSE-KMS solo está disponible en la versión 4.5.0 y posteriores de Amazon EMR.

• Escriba el siguiente comando de la AWS CLI para crear un clúster con SSE-KMS,donde keyID es una clave maestra del cliente (CMK) de AWS KMS, por ejemplo,a4567b8-9900-12ab-1234-123a45678901:

95

Page 103: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 \--instance-type m5.xlarge --use-default-roles \--emrfs Encryption=ServerSide,Args=[fs.s3.serverSideEncryption.kms.keyId=keyId]

--O BIEN--

Escriba el siguiente comando de la AWS CLI utilizando la clasificación emrfs-site y proporcione unarchivo JSON de configuración cuyo contenido sea similar al que se muestra para myConfig.jsonen el ejemplo siguiente:

aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop --configurations file://myConfig.json --use-default-roles

Ejemplo de contenido de myConfig.json:

[ { "Classification":"emrfs-site", "Properties": { "fs.s3.enableServerSideEncryption": "true", "fs.s3.serverSideEncryption.kms.keyId":"a4567b8-9900-12ab-1234-123a45678901" } }]

Propiedades de configuración para SSE-S3 y SSE-KMS

Estas propiedades se pueden configurar mediante la clasificación de configuración emrfs-site. SSE-KMS solo está disponible en la versión 4.5.0 y posteriores de Amazon EMR.

Propiedad Valorpredeterminado

Descripción

fs.s3.enableServerSideEncryption false Cuando se establecen en true, losobjetos almacenados en AmazonS3 se cifran mediante el cifradodel lado del servidor. Si no seespecifica ninguna clave, se utilizaSSE-S3.

fs.s3.serverSideEncryption.kms.keyId n/a Especifica un ID de clave de AWSKMS o ARN. Si se especifica unaclave, se utiliza SSE-KMS.

Cifrado del lado del cliente de Amazon S3Con el cifrado del lado del cliente de Amazon S3, el proceso de cifrado y descifrado de Amazon S3 tienelugar en el cliente de EMRFS en el clúster. Los objetos se cifran antes de cargarlos en Amazon S3 y sedescifran después de que se descarguen. El proveedor que especifique proporciona la clave de cifradoque utiliza el cliente. El cliente puede usar claves proporcionadas por AWS KMS (CSE-KMS) o una claseJava personalizada que proporciona la clave principal del lado del cliente (CSE-C). Los detalles de cifradoson ligeramente diferentes entre CSE-KMS y CSE-C, en función del proveedor especificado y de los

96

Page 104: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

metadatos del objeto que se descifra o se cifra. Para obtener más información acerca de estas diferencias,consulte Protección de datos con el cifrado del lado del cliente en la Guía para desarrolladores de AmazonSimple Storage Service.

Note

CSE de Amazon S3 solo garantiza que los datos de EMRFS intercambiados con Amazon S3 secifren; no se cifran todos los datos en volúmenes de instancias de clúster. Además, ya que Hue noutiliza EMRFS, los objetos que el Hue S3 File Browser escribe en Amazon S3 no se cifran.

Para especificar CSE-KMS para datos de EMRFS en Amazon S3 mediante la AWS CLI

• Escriba el siguiente comando y sustituya MyKMSKeyID por el ID de clave o el ARN de la CMK de AWSKMS que se debe utilizar:

aws emr create-cluster --release-label emr-4.7.2 or earlier--emrfs Encryption=ClientSide,ProviderType=KMS,KMSKeyId=MyKMSKeyId

Creación de un proveedor de claves personalizadasCuando se crea un proveedor de claves personalizadas, se espera que la aplicación implemente lainterfaz EncryptionMaterialsProvider, que está disponible en la versión 1.11.0 y posteriores de AWSSDK for Java. La aplicación puede utilizar cualquier estrategia para proporcionar materiales de cifrado.Puede, por ejemplo, seleccionar proporcionar materiales de cifrado estáticos o integrar con un sistema deadministración de claves más complejo.

El algoritmo de cifrado utilizado para materiales de cifrado personalizados debe ser AES/GCM/NoPadding.

La clase EncryptionMaterialsProvider obtiene materiales de cifrado mediante el contexto de cifrado.Amazon EMR rellena la información de contexto de cifrado en tiempo de ejecución para ayudar alintermediario a determinar los materiales de cifrado correctos que debe devolver.

Example Ejemplo: uso de un proveedor de claves de cifrado personalizadas para cifrado deAmazon S3 con EMRFS

Cuando Amazon EMR recupera los materiales de cifrado desde la clase EncryptionMaterialsProviderpara realizar el cifrado, EMRFS rellena opcionalmente el argumento materialsDescription con doscampos: el URI de Amazon S3 para el objeto y JobFlowId del clúster, que puede utilizar la claseEncryptionMaterialsProvider para devolver materiales de cifrado de manera selectiva.

Por ejemplo, el proveedor podría devolver claves distintas para diferentes prefijos URI de Amazon S3.Se trata de la descripción de los materiales de cifrado devuelta que se almacena finalmente con el objetode Amazon S3 en lugar del valor materialsDescription que genera EMRFS y se transfiere al proveedor.Al descifrar un objeto de Amazon S3, la descripción de materiales de cifrado se transfiere a la claseEncryptionMaterialsProvider, de modo que puede, nuevamente, devolver de forma selectiva la clavecoincidente para descifrar el objeto.

A continuación, se proporciona una implementación de referencia EncryptionMaterialsProvider. Otroproveedor personalizado, EMRFSRSAEncryptionMaterialsProvider, está disponible desde GitHub.

import com.amazonaws.services.s3.model.EncryptionMaterials;import com.amazonaws.services.s3.model.EncryptionMaterialsProvider;import com.amazonaws.services.s3.model.KMSEncryptionMaterials;import org.apache.hadoop.conf.Configurable;import org.apache.hadoop.conf.Configuration;

import java.util.Map;

/**

97

Page 105: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

* Provides KMSEncryptionMaterials according to Configuration */public class MyEncryptionMaterialsProviders implements EncryptionMaterialsProvider, Configurable{ private Configuration conf; private String kmsKeyId; private EncryptionMaterials encryptionMaterials;

private void init() { this.kmsKeyId = conf.get("my.kms.key.id"); this.encryptionMaterials = new KMSEncryptionMaterials(kmsKeyId); }

@Override public void setConf(Configuration conf) { this.conf = conf; init(); }

@Override public Configuration getConf() { return this.conf; }

@Override public void refresh() {

}

@Override public EncryptionMaterials getEncryptionMaterials(Map<String, String> materialsDescription) { return this.encryptionMaterials; }

@Override public EncryptionMaterials getEncryptionMaterials() { return this.encryptionMaterials; }}

Especificación de un proveedor de materiales personalizado mediante la AWSCLIPara usar la AWS CLI, transfiera los argumentos Encryption, ProviderType, CustomProviderClassy CustomProviderLocation a la opción emrfs.

aws emr create-cluster --instance-type m5.xlarge --release-label emr-4.7.2 or earlier --emrfs Encryption=ClientSide,ProviderType=Custom,CustomProviderLocation=s3://mybucket/myfolder/provider.jar,CustomProviderClass=classname

Al definir Encryption en ClientSide, se habilita el cifrado del lado del cliente,CustomProviderClass es el nombre del objeto EncryptionMaterialsProvider yCustomProviderLocation es la ubicación local o de Amazon S3 desde la que Amazon EMR copiaCustomProviderClass en cada nodo del clúster y lo coloca en el classpath.

Especificación de un proveedor de materiales personalizado mediante un SDKPara utilizar un SDK, puede establecer la propiedadfs.s3.cse.encryptionMaterialsProvider.uri para descargar en cada nodo del clúster la claseEncryptionMaterialsProvider personalizada que se almacena en Amazon S3. Esto se configura en elarchivo emrfs-site.xml junto con CSE habilitado y la ubicación correcta del proveedor personalizado.

98

Page 106: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

Por ejemplo, en el AWS SDK for Java utilizando RunJobFlowRequest, su código podría tener el siguienteaspecto:

<snip> Map<String,String> emrfsProperties = new HashMap<String,String>(); emrfsProperties.put("fs.s3.cse.encryptionMaterialsProvider.uri","s3://mybucket/MyCustomEncryptionMaterialsProvider.jar"); emrfsProperties.put("fs.s3.cse.enabled","true"); emrfsProperties.put("fs.s3.consistent","true"); emrfsProperties.put("fs.s3.cse.encryptionMaterialsProvider","full.class.name.of.EncryptionMaterialsProvider");

Configuration myEmrfsConfig = new Configuration() .withClassification("emrfs-site") .withProperties(emrfsProperties);

RunJobFlowRequest request = new RunJobFlowRequest() .withName("Custom EncryptionMaterialsProvider") .withReleaseLabel("emr-5.30.0") .withApplications(myApp) .withConfigurations(myEmrfsConfig) .withServiceRole("EMR_DefaultRole") .withJobFlowRole("EMR_EC2_DefaultRole") .withLogUri("s3://myLogUri/") .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myEc2Key") .withInstanceCount(2) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m5.xlarge") .withSlaveInstanceType("m5.xlarge") ); RunJobFlowResult result = emr.runJobFlow(request);</snip>

EncryptionMaterialsProvider personalizado con argumentos

Es posible que necesite transferir argumentos directamente al proveedor. Para ello, puede utilizar laclasificación de configuración emrfs-site con argumentos personalizadas definidos como propiedades.A continuación se muestra un ejemplo de configuración que se guarda como un archivo, myConfig.json:

[ { "Classification": "emrfs-site", "Properties": { "myProvider.arg1":"value1", "myProvider.arg2":"value2" } } ]

Con el comando create-cluster desde la AWS CLI, puede utilizar la opción --configurations paraespecificar el archivo, tal y como se muestra a continuación:

aws emr create-cluster --release-label emr-5.30.0 --instance-type m5.xlarge --instance-count 2 --configurations file://myConfig.json --emrfs Encryption=ClientSide,CustomProviderLocation=s3://mybucket/myfolder/myprovider.jar,CustomProviderClass=classname

99

Page 107: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del cifrado de AmazonS3 mediante propiedades de EMRFS

Propiedades de emrfs-site.xml para el cifrado del lado del cliente de AmazonS3

Propiedad Valorpredeterminado

Descripción

fs.s3.cse.enabled false Cuando se establece en true, losobjetos de EMRFS almacenados enAmazon S3 se cifran mediante elcifrado del lado del cliente.

fs.s3.cse.encryptionMaterialsProvider.uriN/A Se aplica cuando se utilizanmateriales de cifradopersonalizados. El URI de AmazonS3 donde se encuentra el JAR conel EncryptionMaterialsProvider. Alproporcionar este URI, AmazonEMR descarga automáticamente elJAR a todos los nodos del clúster.

fs.s3.cse.encryptionMaterialsProvider N/A La ruta de clasesEncryptionMaterialsProviderutilizada con el cifrado dellado del cliente. Cuandoutilice CSE-KMS, especifiquecom.amazon.ws.emr.hadoop.fs.cse.KMSEncryptionMaterialsProvider.

fs.s3.cse.materialsDescription.enabled false Cuando se establece entrue, rellena el argumentomaterialsDescription de los objetoscifrados con el URI de AmazonS3 del objeto y con el JobFlowIddel clúster. Establézcalo en truecuando se utilicen materiales decifrado personalizados.

fs.s3.cse.kms.keyId N/A Se aplica cuando se utiliza CSE-KMS. Es el valor del KeyId, el ARNo el alias de la CMK de AWS KMSutilizada para el cifrado.

fs.s3.cse.cryptoStorageMode ObjectMetadataEl modo de almacenamientode Amazon S3. De formapredeterminada, la descripciónde la información de cifrado sealmacena en los metadatos deobjetos. También puede almacenarla descripción en un archivode instrucciones. Los valoresválidos son ObjectMetadata eInstructionFile. Para obtener másinformación, consulte el artículosobre cifrado de datos del ladocliente con el AWS SDK para Javay Amazon S3.

100

Page 108: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónControl de la terminación de los clústeres

Control de la terminación de los clústeresAl crear un clúster con Amazon EMR, puede optar por crear un clúster transitorio que termineautomáticamente después de completar los pasos o por crear un clúster de ejecución prolongadaque continúe su ejecución hasta que se termine deliberadamente. Cuando un clúster termina, todaslas instancias Amazon EC2 del clúster terminan, con lo que los datos del almacén de instancias y losvolúmenes de EBS dejan de estar disponibles y no se pueden recuperar. La comprensión y administraciónde la terminación de los clústeres es fundamental para desarrollar una estrategia que permita administrary preservar los datos escribiéndolos en Amazon S3 y equilibrando los costos. Para obtener informaciónsobre cómo terminar un clúster de forma manual, consulte Terminar un clúster (p. 368).

Cuando se utiliza la terminación automática, el clúster se inicia, ejecuta las acciones de arranqueespecificadas y, a continuación, ejecuta pasos que normalmente introducen datos, los procesan y,por último, producen y guardan una salida. Una vez completados los pasos, Amazon EMR terminaautomáticamente las instancias Amazon EC2 del clúster. Se trata de un modelo eficaz para un clústerque realiza una tarea de procesamiento periódica, como, por ejemplo, un procesamiento de datos diario.La terminación automática de un clúster ayuda a garantizar que solo se facture el tiempo necesario paraprocesar los datos. Para obtener más información acerca de los pasos, consulte Trabajo con pasosutilizando la AWS CLI y la consola (p. 399).

En un clúster de ejecución prolongada, el clúster se inicia de la misma forma. Puede especificar pasoscomo haría con un clúster que termina automáticamente, pero el clúster sigue ejecutándose y acumulandocargos después haber completado los pasos. Este modelo resulta eficaz cuando se requiere consultardatos de forma automática o interactiva, o interactuar con aplicaciones de big data alojadas en el clústerde forma continua. También es eficaz si se procesa periódicamente un conjunto de datos tan grande ocon tanta frecuencia que resulta poco eficiente lanzar clústeres nuevos y cargar los datos cada vez. Esposible habilitar la protección de terminación en los clústeres de ejecución prolongada para ayudar aevitar que se cierren de forma accidental. También puede aprovechar características como el escaladoautomático y las flotas de instancias para ajustar el tamaño del clúster de forma dinámica con el fin deequilibrar el rendimiento y el costo en respuesta a las demandas de las cargas de trabajo. Para obtenermás información, consulte Escalado de recursos de clúster (p. 370) y Configuración de flotas deinstancias (p. 141).

En esta sección, se describe el funcionamiento de la protección de terminación y la terminaciónautomática, así como la interacción que existe entre ellas, junto con otras características de Amazon EMRy otros procesos de datos.

Temas• Configuración de un clúster para la terminación automática o para continuar (p. 101)• Uso de la protección de terminación (p. 102)

Configuración de un clúster para la terminaciónautomática o para continuarDe forma predeterminada, los clústeres creados mediante la consola o la AWS CLI siguen ejecutándosehasta que se cierran manualmente. Para que un clúster termine después de ejecutar los pasos, esnecesario habilitar la terminación automática. Por el contrario, los clústeres que se lanzan mediante la APIde EMR tienen habilitada la terminación automática de forma predeterminada.

Para deshabilitar la terminación automática mediante la API de EMR

• Cuando utilice la acción RunJobFlow para crear un clúster, establezca la propiedadKeepJobFlowAliveWhenNoSteps en true.

101

Page 109: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la protección de terminación

Para habilitar la terminación automática mediante las opciones rápidas en la Consola deadministración de AWS

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Step execution (Ejecución de pasos).4. Elija las demás opciones que sean necesarias para la aplicación y, a continuación, elija Create cluster

(Crear clúster).

Para habilitar la terminación automática mediante las opciones avanzadas de la Consola deadministración de AWS

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En Add steps (optional) (Añadir pasos (opcional)), seleccione Auto-terminate cluster after the last step

is completed (Terminar automáticamente el clúster después de que se complete el último paso).5. Elija las demás opciones que sean necesarias para la aplicación y, a continuación, elija Create cluster

(Crear clúster).

Para habilitar la terminación automática mediante la AWS CLI

• Especifique el parámetro --auto-terminate cuando utilice el comando create-cluster paracrear un clúster transitorio.

El siguiente ejemplo muestra el uso del parámetro --auto-terminate. Puede escribir el comandosiguiente y sustituir myKey por el nombre de su par de claves de EC2.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --name "Test cluster" --release-label emr-5.30.0 \--applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey \--steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,\Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,\INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,\$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]--instance-type m5.xlarge --instance-count 3 --auto-terminate

Para obtener más información sobre cómo utilizar los comandos de Amazon EMR en la AWS CLI, consulteReferencia de la AWS CLI.

Uso de la protección de terminaciónSi la protección de terminación está habilitada en un clúster de ejecución prolongada, puede seguirterminando el clúster, pero primero debe quitar de forma explícita la protección de terminación de este.Esto ayuda a garantizar que las instancias EC2 no se cierren por accidente o por error. La protección determinación resulta especialmente útil si el clúster contiene datos almacenados en discos locales que sedeben recuperar antes de que las instancias se terminen. Puede habilitar la protección de terminación alcrear un clúster y también cambiar este ajuste en un clúster en ejecución.

102

Page 110: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la protección de terminación

Con la protección de terminación habilitada, la acción TerminateJobFlows de la API de Amazon EMRno funciona. Los usuarios no pueden terminar el clúster con esta API ni con el comando terminate-clusters desde la AWS CLI. La API devuelve un error y la CLI se cierra con un código de devolucióndistinto de cero. Cuando utilice la consola de Amazon EMR para terminar un clúster, se le pedirá querealice un paso adicional para desactivar la protección de terminación.

Warning

La protección de terminación no garantiza la conservación de los datos en caso de error humanoo una solución profesional—, por ejemplo, si se emite un comando de reinicio desde la línea decomandos mientras se está conectado a la instancia a través de SSH, si una aplicación o scriptse está ejecutando en la instancia emite un comando de reinicio, o si la API de Amazon EC2 oAmazon EMR se utiliza para deshabilitar la protección de terminación. Incluso con la protecciónde terminación habilitada, los datos se guardan para almacenar las instancias, incluidos los datosde HDFS, que se pueden perder. Escriba la salida de datos en las ubicaciones de Amazon S3y cree estrategias de copias de seguridad, de acuerdo con los requisitos de continuidad de sunegocio.

La protección de terminación no afecta a la capacidad para escalar los recursos del clúster con cualquierade las siguientes acciones:

• Cambiar manualmente el tamaño de un clúster con la Consola de administración de AWS o la AWSCLI. Para obtener más información, consulte Cambiar manualmente el tamaño de un clúster enejecución (p. 391).

• Eliminar instancias de un grupo de instancias secundarias o de tareas mediante una política de escaladodescendente con escalado automático. Para obtener más información, consulte Uso del escaladoautomático con una política personalizada para grupos de instancias (p. 382).

• Eliminar instancias de una flota de instancias reduciendo la capacidad de destino. Para obtener másinformación, consulte Opciones de flota de instancias (p. 142).

Protección de terminación y Amazon EC2Un clúster de Amazon EMR con la protección de terminación habilitada tiene establecido el atributodisableAPITermination en todas las instancias Amazon EC2 del clúster. Si una solicitud determinación procede de Amazon EMR y los ajustes de Amazon EMR y Amazon EC2 para una instanciaentran en conflicto, el ajuste de Amazon EMR tiene prioridad sobre el ajuste de Amazon EC2. Por ejemplo,si utiliza la consola de Amazon EC2 para habilitar la protección de terminación en una instancia AmazonEC2 de un clúster que tiene la protección de terminación deshabilitada, al utilizar la consola de AmazonEMR, los comandos de la AWS CLI para Amazon EMR o la API de Amazon EMR para terminar el clúster,Amazon EMR establece DisableApiTermination en false y termina la instancia junto con las demásinstancias.

Important

Si se crea una instancia como parte de un clúster de Amazon EMR con la protección determinación y se utilizan la API de Amazon EC2 o los comandos de la AWS CLI para modificardicha instancia de forma que DisableApiTermination sea false y, a continuación, la APIde Amazon EC2 o los comandos de la AWS CLI ejecutan la acción TerminateInstances, lainstancia Amazon EC2 termina.

Protección de terminación y nodos de YARN en mal estadoAmazon EMR comprueba periódicamente el estado de Apache Hadoop YARN de los nodos que seejecutan en las instancias Amazon EC2 secundarias y de tareas de un clúster. El estado se notificamediante el NodeManager Health Checker Service. Si un nodo informa de que su estado es UNHEALTHY,el controlador de instancias de Amazon EMR lo añade a la lista negra y no le asigna contenedores YARN

103

Page 111: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la protección de terminación

hasta que vuelva a tener un estado correcto. Por lo general, el mal estado de los nodos se debe a que lautilización del disco es superior al 90 %. Para obtener más información sobre cómo identificar y recuperarlos nodos en mal estado, consulte Errores de recursos (p. 424).

Si el nodo permanece UNHEALTHY durante más de 45 minutos, Amazon EMR realiza la siguiente acción enfunción del estado de la protección de terminación.

Protección de terminación Resultado

Habilitada (recomendado) La instancia Amazon EC2 permanece en la listanegra y se sigue incluyendo a la hora de calcularla capacidad del clúster. Puede conectarse a lainstancia Amazon EC2 para la configuración yla recuperación de datos, así como cambiar eltamaño del clúster para añadir capacidad. Paraobtener más información, consulte Errores derecursos (p. 424).

Deshabilitada La instancia Amazon EC2 se termina. AmazonEMR aprovisiona una instancia nueva en funcióndel número especificado de instancias del grupo deinstancias o la capacidad de destino para las flotasde instancias. Si todos los nodos secundariostienen el estado UNHEALTHY durante más de45 minutos, el clúster se termina e informa de unestado NO_SLAVES_LEFT.

Important

Es posible que se pierdan datos de HDFSsi una instancia secundaria se terminaen mal estado. Si el nodo almacenababloques que no se replicaron a otrosnodos, estos bloques se pierden, lo quepodría dar lugar a pérdida de datos.Recomendamos utilizar la protección determinación para que pueda conectarsea las instancias y recuperar los datoscuando sea necesario.

Protección de terminación, terminación automática y ejecución depasosLa opción de terminación automática prevalece sobre la protección de terminación. Si ambas estánhabilitadas, cuando finalice la ejecución de los pasos, el clúster termina en lugar de entrar en un estado deespera.

Al enviar pasos a un clúster, puede establecer la propiedad ActionOnFailure para determinarqué sucede si el paso no puede completar su ejecución debido a un error. Los valores posibles paraesta propiedad son TERMINATE_CLUSTER (TERMINATE_JOB_FLOW con versiones anteriores),CANCEL_AND_WAIT y CONTINUE. Para obtener más información, consulte Trabajo con pasos utilizando laAWS CLI y la consola (p. 399).

Si se produce un error en un paso que tiene la propiedad ActionOnFailure establecida enCANCEL_AND_WAIT y está habilitada la terminación automática, el clúster termina sin ejecutar los pasossiguientes.

104

Page 112: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la protección de terminación

Si se produce un error en un paso que tiene la propiedad ActionOnFailure establecida enTERMINATE_CLUSTER, utilice la tabla de configuración mostrada a continuación para determinar elresultado.

ActionOnFailure Terminación automática Protección determinación

Resultado

Habilitada Deshabilitada El clúster termina

Habilitada Habilitada El clúster termina

Deshabilitada Habilitada El clúster continúa

TERMINATE_CLUSTER

Deshabilitada Deshabilitada El clúster termina

Protección de terminación e instancias de spotLa protección de terminación de Amazon EMR no impide que una instancia de spot de Amazon EC2termine cuando el precio de spot supera el precio de spot máximo.

Configuración de la protección de terminación al lanzar un clústerPuede habilitar o deshabilitar la protección de terminación al lanzar un clúster con la consola, la AWS CLI ola API.

La configuración predeterminada de la protección de terminación depende de cómo se lance el clúster:

• Opciones rápidas de la consola de Amazon EMR: la protección de terminación está deshabilitada deforma predeterminada.

• Opciones avanzadas de la consola de Amazon EMR: la protección de terminación está habilitada deforma predeterminada.

• AWS CLI aws emr create-cluster: la protección de terminación está deshabilitada a menos que seespecifique --termination-protected.

• Comando RunJobFlow de la API de Amazon EMR: la protección de terminación está deshabilitada amenos que el valor booleano TerminationProtected se establezca en true.

Para habilitar o deshabilitar la protección de terminación al crear un clúster con la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En Step 3: General Cluster Settings (Paso 3: Configuración general del clúster), en General Options

(Opciones generales), asegúrese de que Termination protection (Protección de terminación) estáseleccionada para habilitarla o anule la selección para deshabilitarla.

105

Page 113: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la protección de terminación

5. Elija las demás opciones que sean necesarias para la aplicación, elija Next (Siguiente) y, acontinuación, termine de configurar el clúster.

Para habilitar la protección de terminación al crear un clúster con la AWS CLI

• Utilice la AWS CLI para lanzar un clúster con la protección de terminación habilitada mediante elcomando create-cluster con el parámetro --termination-protected. La protección determinación está deshabilitada de forma predeterminada.

En el siguiente ejemplo, se crea un clúster con la protección de terminación habilitada:

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-5.30.0 \--applications Name=Hadoop Name=Hive Name=Pig \--use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \--instance-count 3 --termination-protected

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Configuración de la protección de terminación para ejecutarclústeresPuede configurar la protección de terminación para ejecutar un clúster utilizando la consola o la AWS CLI.

Para habilitar o deshabilitar la protección de terminación en un clúster en ejecución mediante laconsola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. En la página Clusters (Clústeres), elija el Name (Nombre) del clúster.3. En la pestaña Summary (Resumen), en Termination protection (Protección de terminación), elija

Change (Cambiar).4. Para habilitar la protección de terminación, elija On (Activada). Para deshabilitar la protección de

terminación, elija Off (Desactivada). A continuación, elija la marca de verificación verde para confirmarlos cambios.

106

Page 114: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de las AMI

Para habilitar o deshabilitar la protección de terminación en un clúster en ejecución mediante laAWS CLI

• Para habilitar la protección de terminación en un clúster en ejecución mediante la AWS CLI, utilice elcomando modify-cluster-attributes con el parámetro --termination-protected. Paradeshabilitarla, utilice el parámetro --no-termination-protected.

En el siguiente ejemplo, se habilita la protección de terminación en el clúster que tiene el IDj-3KVTXXXXXX7UG:

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --termination-protected

En el siguiente ejemplo, se deshabilita la protección de terminación en el mismo clúster:

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected

Uso de las AMI de Amazon Linux en Amazon EMRCuando se crea y se lanza un clúster, Amazon EMR utiliza una imagen de máquina de Amazon (AMI)de Amazon Linux para inicializar instancias Amazon EC2. La AMI contiene el sistema operativo AmazonLinux, además del software y las configuraciones necesarias para que cada instancia aloje las aplicacionesdel clúster.

De forma predeterminada, cuando se crea un clúster, Amazon EMR utiliza una AMI de Amazon Linuxpredeterminada que se ha creado específicamente para la versión de Amazon EMR que se esté utilizando.Si utiliza la versión 5.7.0 o posterior de Amazon EMR, puede optar por especificar una AMI de AmazonLinux personalizada en lugar de la AMI de Amazon Linux predeterminada para Amazon EMR. UnaAMI personalizada le permite cifrar el volumen de dispositivo raíz y personalizar las aplicaciones y lasconfiguraciones como alternativa al uso de acciones de arranque.

Amazon EMR asocia automáticamente un volumen SSD de uso general de Amazon EBS como dispositivoraíz para todas las AMI. El uso de una AMI respaldada por EBS mejora el rendimiento. Los costos de EBSse prorratean por hora en función de los cargos de Amazon EBS mensuales para volúmenes gp2 en laregión donde se ejecuta el clúster. Por ejemplo, el costo por hora para el volumen raíz en cada instanciade clúster de una región en la que se cobran 0,10 USD/GB/mes, sería, aproximadamente, de 0,00139 USDpor hora (0,10 USD/GB/mes dividido entre 30 días dividido entre 24 h y multiplicado por 10 GB). Tanto siutiliza la AMI predeterminada de Amazon Linux como una AMI personalizada de Amazon Linux, puedeespecificar el tamaño del volumen de dispositivo raíz de EBS desde 10 a 100 GiB.

Para obtener más información sobre las AMI de Amazon Linux, consulte Imágenes de máquina de Amazon(AMI). Para obtener más información sobre el almacenamiento de instancias para las instancias deAmazon EMR, consulte Almacenamiento de la instancia (p. 127).

Temas• Use de la AMI de Amazon Linux predeterminada para Amazon EMR (p. 108)• Uso de una AMI personalizada (p. 109)• Especificación del tamaño de volumen de dispositivo raíz de Amazon EBS (p. 114)

107

Page 115: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la AMI predeterminada

Use de la AMI de Amazon Linux predeterminada paraAmazon EMRCada versión de Amazon EMR utiliza una AMI de Amazon Linux predeterminada para Amazon EMR amenos que se especifique una AMI personalizada. La AMI predeterminada está basada en la AMI deAmazon Linux más actualizada disponible en el momento del lanzamiento de la versión de Amazon EMR.La AMI se prueba para determinar su compatibilidad con las aplicaciones de big data y las característicasde Amazon EMR incluidas en esa versión.

Cada versión de Amazon EMR está "vinculada" a la versión de la AMI de Amazon Linux para mantenerla compatibilidad. Esto significa que se utiliza la misma versión de la AMI de Amazon Linux para unaversión de Amazon EMR, incluso si están disponibles nuevas AMI de Amazon Linux. Por este motivo,recomendamos utilizar la versión más reciente de Amazon EMR (actualmente, 5.30.0) a menos quenecesite una versión anterior por motivos de compatibilidad y no pueda realizar la migración.

Si tiene que utilizar una versión anterior de Amazon EMR por motivos de compatibilidad, le recomendamosque utilice la versión más reciente de una serie. Por ejemplo, si tiene que utilizar la serie 5.12, utilice la5.12.2 en lugar de la 5.12.0 o la 5.12.1. Si aparece una versión nueva de una serie, considere la posibilidadde migrar las aplicaciones a dicha versión.

Cómo se administran las actualizaciones de softwareCuando una instancia Amazon EC2 de un clúster que está basada en la AMI de Amazon Linuxpredeterminada para Amazon EMR arranca por primera vez, comprueba los repositorios de paqueteshabilitados para Amazon Linux y Amazon EMR con el fin de determinar si existen actualizaciones desoftware para la versión de la AMI. Al igual que con otras instancias Amazon EC2, las actualizaciones deseguridad críticas e importantes de estos repositorios se instalan automáticamente. Para obtener másinformación, consulte Repositorio de paquetes en la Guía del usuario de Amazon EC2 para instancias deLinux. No se instalan otros paquetes de software ni las actualizaciones del kernel, ya que existe el riesgode introducir errores de compatibilidad.

Cuando se conecta a una instancia de clúster mediante SSH, las primeras líneas de la salida en pantallaproporcionan un enlace a las notas de la versión de la AMI de Amazon Linux que utiliza la instancia, unaviso de la versión de la AMI de Amazon Linux más reciente, un aviso del número de paquetes disponiblespara la actualización desde los repositorios habilitados y una directiva para ejecutar sudo yum update.

Important

Recomendamos que no ejecute sudo yum update en las instancias de clúster, ni mientras estáconectado con SSH ni mediante una acción de arranque. Esto puede causar incompatibilidades,ya que todos los paquetes se instalan de forma indiscriminada.

Prácticas recomendadas para administrar las actualizaciones de software

• Si utiliza una versión anterior de Amazon EMR, es conveniente que pruebe una migración a la versiónmás reciente antes de actualizar los paquetes de software.

• Si migra a una versión posterior o actualiza los paquetes de software, pruebe primero la implementaciónen un entorno que no sea de producción. La opción para clonar clústeres mediante la consola deadministración de Amazon EMR resulta muy útil para esto.

• Evalúe las actualizaciones de software para las aplicaciones y para la versión de la AMI de AmazonLinux por separado. Únicamente pruebe e instale en entornos de producción los paquetes que considereabsolutamente necesarios para el nivel de seguridad requerido y la funcionalidad o el rendimiento de lasaplicaciones.

• Visite el Centro de seguridad de Amazon Linux para comprobar si existen actualizaciones.• Evite instalar paquetes conectándose a las instancias de clúster individuales mediante SSH. En su lugar,

utilice una acción de arranque para instalar y actualizar los paquetes en todas las instancias de clúster

108

Page 116: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de una AMI personalizada

que lo necesiten. Para ello, es necesario que termine un clúster y lo vuelva a lanzar. Para obtener másinformación, consulte Creación de acciones de arranque para instalar software adicional (p. 116).

Uso de una AMI personalizadaSi utiliza la versión 5.7.0 o posterior de Amazon EMR, puede optar por especificar una AMI de AmazonLinux personalizada en lugar de la AMI de Amazon Linux predeterminada para Amazon EMR. Una AMIpersonalizada resulta útil si desea hacer lo siguiente:

• Preinstalar aplicaciones y realizar otras personalizaciones en lugar de utilizar acciones de arranque. Estopuede mejorar el tiempo de inicio del clúster y simplificar el flujo de trabajo de inicio. Para obtener másinformación y un ejemplo, consulte Creación de una AMI de Amazon Linux personalizada a partir de unainstancia preconfigurada (p. 111).

• Implementar configuraciones de clúster y de nodo más sofisticadas de lo que permiten las acciones dearranque.

• Cifre los volúmenes del dispositivo raíz de EBS (volúmenes de arranque) de instancias de EC2 ensu clúster si está utilizando una versión de Amazon EMR anterior a la 5.24.0. Para obtener másinformación, consulte Creación de una AMI personalizada con un volumen de dispositivo raíz de AmazonEBS cifrado (p. 113).

Note

A partir de Amazon EMR, versión 5.24.0, puede utilizar una opción de configuración deseguridad para cifrar volúmenes de almacenamiento y dispositivos raíz de EBS cuandoespecifique AWS KMS como proveedor de claves. Para obtener más información, consulteCifrado de disco local (p. 193).

Consideraciones y prácticas recomendadasAl crear una AMI personalizada para Amazon EMR, tenga en cuenta lo siguiente:

• Amazon EMR 5.30.0 y la serie 6.x de Amazon EMR se basan en Amazon Linux 2. Para estas versionesde EMR, debe usar imágenes basadas en Amazon Linux 2 para AMI personalizadas. Para buscar unaAMI personalizada base, consulte Búsqueda de una AMI de Linux.

• Para las versiones de Amazon EMR anteriores a 5.30.0 y 6.x, no se admiten las AMI de Amazon Linux2. Debe usar una AMI de Amazon Linux de 64 bits. Las AMI de Amazon Linux con varios volúmenes deAmazon EBS no se admiten.

• Base la personalización en la AMI de Amazon Linux respaldada por EBS más reciente. Para obtener unalista de las AMI de Amazon Linux y los ID de AMI correspondientes, consulte AMI de Amazon Linux.

• No copie una instantánea de una instancia Amazon EMR existente para crear una AMI personalizada.Esto provoca errores.

• Solo son compatibles el tipo de virtualización HVM y las instancias compatibles con Amazon EMR.Asegúrese de seleccionar la imagen de HVM y un tipo de instancia compatible con Amazon EMR amedida que realice el proceso de personalización de la AMI. Para conocer las instancias y tipos devirtualización compatibles, consulte Tipos de instancias admitidos (p. 123).

• El rol de servicio deben tener permisos de lanzamiento en la AMI, por lo que la AMI debe ser pública odebe ser el propietario de la AMI o que el propietario la haya compartido con usted.

• La creación de usuarios en la AMI con el mismo nombre que las aplicaciones provoca errores (porejemplo, hadoop, hdfs, yarn o spark).

• El contenido de /tmp, /var y /emr, si se encuentran en la AMI, se traslada a /mnt/tmp, /mnt/vary /mnt/emr respectivamente durante el startup. Los archivos se conservan, pero si hay una gran cantidadde datos, el startup puede tardar más de lo esperado.

109

Page 117: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de una AMI personalizada

• Si utiliza la AMI de Amazon Linux personalizada basada en una AMI de Amazon Linux con la fechade creación del 11/08/2018, el servidor de Oozie no se podrá iniciar. Si utiliza Oozie, cree una AMIpersonalizada basada en una ID de AMI de Amazon Linux con una fecha de creación distinta. Puedeutilizar el siguiente comando de AWS CLI para devolver una lista de ID de imagen para todas las AMI deAmazon Linux HVM con la versión 2018.03, con la fecha de lanzamiento, de modo que pueda elegir unaAMI de Amazon Linux adecuada para ello. Reemplace MyRegion (MiRegión) con el identificador de suregión, como us-west-2.

aws ec2 --region MyRegion describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `amzn-ami-hvm-2018.03`) == `true`].[CreationDate,ImageId,Name]' --output text | sort -rk1

Para obtener más información, consulte Creación de una AMI de Linux con el respaldo de Amazon EBS enla Guía del usuario de Amazon EC2 para instancias de Linux.

Especificación de una AMI personalizadaPuede especificar el ID de una AMI personalizada al crear un clúster con la Consola de administración deAWS, la AWS CLI, Amazon CloudWatch o la API de Amazon EMR. La AMI debe existir en la misma regiónde AWS en la que crea el clúster.

Para especificar una AMI personalizada utilizando la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. En Software Configuration (Configuración de software), en Release (Versión), elija emr-5.7.0 o

una versión posterior y, a continuación, elija las demás opciones que necesite para la aplicación.Seleccione Next (Siguiente).

4. Seleccione valores en Hardware Configuration (Configuración de hardware) que sean adecuados parala aplicación y elija Next (Siguiente).

5. En Additional Options (Opciones adicionales), en Custom AMI ID (ID de AMI personalizada),introduzca un valor y deje seleccionada la opción de actualización. Para obtener más informaciónacerca del cambio de la opción de actualización, consulte Administración de actualizaciones derepositorio de paquetes de la AMI (p. 111).

6. Para iniciar el clúster, elija Next (Siguiente) y complete las demás opciones de configuración.

Para especificar una AMI personalizada utilizando la AWS CLI

• Utilice el parámetro --custom-ami-id para especificar el ID de AMI al ejecutar el comando awsemr create-cluster.

110

Page 118: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de una AMI personalizada

El siguiente ejemplo especifica un clúster que utiliza una AMI personalizada con un volumen dearranque de 20 GiB. Para obtener más información, consulte Especificación del tamaño de volumende dispositivo raíz de Amazon EBS (p. 114).

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --name "Cluster with My Custom AMI" \--custom-ami-id MyAmiID --ebs-root-volume-size 20 \--release-label emr-5.7.0 --use-default-roles \--instance-count 2 --instance-type m5.xlarge

Administración de actualizaciones de repositorio de paquetes dela AMIDurante el primer arranque, de forma predeterminada, las AMI de Amazon Linux se conectan a repositoriosde paquetes para instalar las actualizaciones de seguridad antes de que arranquen otros servicios. Enfunción de sus necesidades, puede optar por deshabilitar estas actualizaciones al especificar una AMIpersonalizada para Amazon EMR. La opción de deshabilitar esta característica solo está disponible cuandose utiliza una AMI personalizada.

Warning

Recomendamos encarecidamente que elija actualizar todos los paquetes instalados durante elreinicio al especificar una AMI personalizada. Si se elige no actualizar paquetes se crean riesgosde seguridad adicionales.

Con la Consola de administración de AWS, puede seleccionar la opción de deshabilitar las actualizacionesal elegir Custom AMI ID (ID de AMI personalizada).

Con la AWS CLI, puede especificar --repo-upgrade-on-boot NONE junto con --custom-ami-id alutilizar el comando create-cluster.

Con la API de Amazon EMR, puede especificar NONE para el parámetro RepoUpgradeOnBoot.

Creación de una AMI de Amazon Linux personalizada a partir deuna instancia preconfiguradaLos pasos básicos para preinstalar el software y realizar otras configuraciones para crear una AMI deAmazon Linux personalizada para Amazon EMR son los siguientes:

• Lance una instancia desde la AMI de Amazon Linux de base.• Conéctese a la instancia para instalar software y realizar otras personalizaciones.• Cree una nueva imagen (instantánea de AMI) de la instancia que haya configurado.

Después de crear la imagen en función de su instancia personalizada, puede copiar dicha imagen aun destino cifrado tal y como se describe en Creación de una AMI personalizada con un volumen dedispositivo raíz de Amazon EBS cifrado (p. 113).

111

Page 119: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de una AMI personalizada

Tutorial: Crear una AMI desde una instancia con software personalizado Instalado

Para lanzar una instancia EC2 en función de la AMI de Amazon Linux más reciente

1. Utilice la AWS CLI para ejecutar el siguiente comando, que crea una instancia a partir de una AMIexistente. Sustituya MyKeyName por el par de claves que utiliza para conectarse a la instanciay MyAmiId por el ID de una AMI de Amazon Linux adecuada. Para conocer los ID de AMI másrecientes, consulte Amazon Linux AMI.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws ec2 run-instances --image-id MyAmiID \--count 1 --instance-type m5.xlarge \--key-name MyKeyName --region us-west-2

El valor de salida InstanceId se utiliza como MyInstanceId en el siguiente paso.2. Ejecute el comando siguiente:

aws ec2 describe-instances --instance-ids MyInstanceId

El valor de salida PublicDnsName se utiliza para conectarse a la instancia en el siguiente paso.

Para conectar a la instancia e instalar software

1. Utilice una conexión SSH que le permita ejecutar comandos de shell en su instancia de Linux. Paraobtener más información, consulte Conexión a la instancia de Linux mediante SSH en la Guía delusuario de Amazon EC2 para instancias de Linux.

2. Realice las personalizaciones necesarias. Por ejemplo:

sudo yum install MySoftwarePackagesudo pip install MySoftwarePackage

Para crear una instantánea desde su imagen personalizada

• Después de personalizar la instancia, utilice el comando create-image para crear una AMI desde lainstancia.

aws ec2 create-image --no-dry-run --instance-id MyInstanceId --name MyEmrCustomAmi

El valor de salida imageID se utiliza al lanzar el clúster o crear una instantánea cifrada. Para obtenermás información, consulte Especificación de una AMI personalizada (p. 110) y Creación de una AMIpersonalizada con un volumen de dispositivo raíz de Amazon EBS cifrado (p. 113).

112

Page 120: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de una AMI personalizada

Creación de una AMI personalizada con un volumen dedispositivo raíz de Amazon EBS cifradoPara cifrar el volumen de dispositivo raíz de Amazon EBS de una AMI de Amazon Linux para AmazonEMR, copie una imagen de instantánea desde una AMI sin cifrar a un destino cifrado. Para obtenerinformación sobre la creación de volúmenes de EBS cifrados, consulte Cifrado de Amazon EBS en la Guíadel usuario de Amazon EC2 para instancias de Linux. La AMI de origen para la instantánea puede serla AMI base de Amazon Linux o puede copiar una instantánea de una AMI derivada de la AMI base deAmazon Linux que haya personalizado.

Note

A partir de Amazon EMR, versión 5.24.0, puede utilizar una opción de configuración de seguridadpara cifrar volúmenes de almacenamiento y dispositivos raíz de EBS cuando especifique AWSKMS como proveedor de claves. Para obtener más información, consulte Cifrado de discolocal (p. 193).

Puede utilizar un proveedor de claves externas o una clave maestra cliente de AWS (CMK) para cifrarel volumen raíz de EBS. Se debe permitir al rol de servicio que utiliza Amazon EMR (normalmente, elEMR_DefaultRole predeterminado) que cifre y descifre el volumen, como mínimo, para que AmazonEMR pueda crear un clúster con la AMI. Cuando se utiliza AWS KMS como proveedor de claves, estosignifica que se deben permitir las siguientes acciones:

• kms:encrypt

• kms:decrypt

• kms:ReEncrypt*

• kms:CreateGrant

• kms:GenerateDataKeyWithoutPlaintext"

• kms:DescribeKey"

La forma más sencilla de hacerlo consiste en añadir el rol como usuario clave, tal y como se describeen el siguiente tutorial. Se proporciona la siguiente instrucción de política de ejemplo por si tiene quepersonalizar políticas de rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EmrDiskEncryptionPolicy", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "*" ] } ] }

113

Page 121: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del tamaño de volumen

de dispositivo raíz de Amazon EBS

Tutorial: Creación de una AMI personalizada con un volumen de dispositivo raízcifrado utilizando una CMK de KMS

El primer paso de este ejemplo consiste en encontrar el ARN de una CMK de KMS o crear una nueva.Para obtener más información acerca de la creación de claves, consulte la sección sobre la creación declaves en la AWS Key Management Service Developer Guide. El siguiente procedimiento muestra cómoañadir el rol de servicio predeterminado, EMR_DefaultRole, como un usuario clave a la política declaves. Anote el valor ARN para la clave en el momento de crearla o editarla. Puede utilizar el ARN mástarde, al crear la AMI.

Para añadir el rol de servicio para Amazon EC2 a la lista de usuarios de claves de cifradoutilizando la consola

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Key ManagementService (AWS KMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la región AWS, utilice el selector de regiones en la esquina superior derecha de lapágina.

3. Elija el alias de la CMK que usar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el cuadro de diálogo Attach (Asociar), elija el rol de servicio de Amazon EMR. El nombre del rol

predeterminado es EMR_DefaultRole.6. Elija Attach (Asociar).

Para crear una AMI cifrada usando la AWS CLI

• Utilice el comando aws ec2 copy-image desde la AWS CLI para crear una AMI con un volumende dispositivo raíz de EBS cifrado y la clave que ha modificado. Sustituya el valor --kms-key-idespecificado con todo el ARN de la clave que ha creado o modificado antes.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws ec2 copy-image --source-image-id MyAmiId \--source-region us-west-2 --name MyEncryptedEMRAmi \--encrypted --kms-key-id arn:aws:kms:us-west-2:12345678910:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

La salida del comando proporciona el ID de la AMI que ha creado, que puede especificar al crear unclúster. Para obtener más información, consulte Especificación de una AMI personalizada (p. 110).También puede elegir personalizar esta AMI instalando software y realizando otras configuraciones. Paraobtener más información, consulte Creación de una AMI de Amazon Linux personalizada a partir de unainstancia preconfigurada (p. 111).

Especificación del tamaño de volumen de dispositivoraíz de Amazon EBSEsta opción solo está disponible con Amazon EMR versión 4.x y posterior. Puede especificar el tamañodel volumen desde 10 GiB (el valor predeterminado) hasta 100 GiB al crear un clúster con la Consolade administración de AWS, la AWS CLI o la API de Amazon EMR. Este tamaño se aplica únicamente

114

Page 122: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación del tamaño de volumen

de dispositivo raíz de Amazon EBS

al volumen de dispositivo raíz de EBS a todas las instancias del clúster. No se aplica a volúmenes dealmacenamiento, que se especifican de forma independiente para cada tipo de instancia al crear el clúster.

Note

Si utiliza la AMI predeterminada, Amazon EMR asocia SSD de uso general (gp2) como tipode volumen de dispositivo raíz. Una AMI personalizada puede tener otro tipo de volumen dedispositivo raíz distinto. Para obtener más información, consulte Especificación de una AMIpersonalizada (p. 110).

El costo del volumen de dispositivo raíz de EBS se prorratea por hora, en función de los cargos mensualesde EBS para ese tipo de volumen en la región en la que se ejecuta el clúster. Lo mismo ocurre con losvolúmenes de almacenamiento. Los cargos se muestran en GB, pero debe especificar el tamaño delvolumen raíz en GiB, por lo es posible que desee tener en cuenta esto en las estimaciones (1 GB es0,931323 GiB). Para estimar los cargos asociados con los volúmenes de dispositivo raíz de EBS en suclúster, utilice la siguiente fórmula:

($EBS GBmonth)×0.931323÷30÷24×EMR_EBSRootGiB×InstanceCount

Por ejemplo, tomemos un clúster que tenga un nodo secundario, un nodo de núcleo y que utilice la AMIbase de Amazon Linux con el volumen de dispositivo raíz de 10 GiB predeterminado. Si el costo de EBSen la región es de 0,10 USD/GB mensuales, resulta ser aproximadamente 0,00129 USD por instancia porhora y 0,00258 USD por hora para el clúster (0,10 GB-mes dividido por 30 días, dividido por 24 horas,multiplicado por 10 GB, multiplicado por dos instancias de clúster).

Para especificar el volumen de dispositivo raíz de EBS utilizando la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En Software Configuration (Configuración de software), en Release (Versión), elija el valor 4.x o 5.x y

las demás opciones necesarias para la aplicación y elija Next (Siguiente).5. En Hardware Configuration (Configuración de hardware), en Root device EBS volume size (Tamaño

del volumen de EBS del dispositivo raíz), introduzca un valor entre 10 GiB y 100 GiB.

Para especificar el volumen de dispositivo raíz de EBS utilizando la AWS CLI

• Utilice el parámetro --ebs-root-volume-size del comando create-cluster, tal y como se muestraen el siguiente ejemplo.

115

Page 123: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de software de clúster

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --release-label emr-5.7.0 \--ebs-root-volume-size 20 --instance-groups InstanceGroupType=MASTER,\InstanceCount=1,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m5.xlarge

Configuración de software de clústerCuando se selecciona una versión de software, Amazon EMR utiliza una imagen de máquina de Amazon(AMI) con Amazon Linux para instalar el software elegido al lanzar un clúster, como Hadoop, Spark y Hive.Amazon EMR ofrece nuevas versiones de forma periódica, incorporando nuevas características, nuevasaplicaciones y actualizaciones generales. Le recomendamos que utilice la última versión para lanzar elclúster siempre que sea posible. La última versión es la opción predeterminada al lanzar un clúster desdela consola.

Para obtener más información sobre las versiones de Amazon EMR, así como las versiones de softwaredisponibles con cada versión, consulte la Guía de publicación de Amazon EMR. Para obtener másinformación sobre cómo editar la configuración predeterminada de aplicaciones y software instalada enel clúster, consulte Configuración de aplicaciones en la Guía de publicación de Amazon EMR. Algunasversiones de los componentes del ecosistema de Hadoop y Spark de código abierto que se incluyen enlas versiones de Amazon EMR tienen parches y mejoras, que se documentan en Guía de publicación deAmazon EMR.

Además del software y las aplicaciones estándar que están disponibles para su instalación en su clúster,puede utilizar acciones de arranque para instalar software personalizado. Las acciones de arranque sonscripts que se ejecutan en las instancias cuando se lanza el clúster y que se ejecutan en nuevos nodosque se añaden a su clúster cuando se crean. Las acciones de arranque también son útiles para invocarcomandos de la AWS CLI en cada nodo para copiar objetos desde Amazon S3 a cada nodo del clúster.

Note

Las acciones de arranque se utilizan de forma distinta en Amazon EMR versión 4.x y posteriores.Para obtener más información sobre estas diferencias respecto a las versiones 2.x y 3.x de la AMIde Amazon EMR, consulte las diferencias introducidas en la versión 4.x en la Guía de publicaciónde Amazon EMR.

Creación de acciones de arranque para instalarsoftware adicionalPuede utilizar una acción de arranque para instalar software adicional o personalizar la configuración delas instancias de clúster. Las acciones de arranque son scripts que se ejecutan en el clúster despuésde que Amazon EMR lance la instancia mediante la imagen de máquina de Amazon (AMI) de AmazonLinux. Las acciones de arranque se ejecutan antes de que Amazon EMR instale las aplicaciones que seespecifican al crear el clúster y antes de que los nodos del clúster comiencen a procesar los datos. Siañade nodos a un clúster en ejecución, las acciones de arranque también se ejecutan en esos nodos de lamisma manera. Puede crear acciones de arranque personalizadas y especificarlas al crear el clúster.

La mayoría de las acciones de arranque predefinidas para las versiones 2.x y 3.x de la AMI de AmazonEMR no se admiten en las versiones 4.x de Amazon EMR. Por ejemplo, configure-Hadoop y

116

Page 124: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de acciones de arranque

para instalar software adicional

configure-daemons no se admiten en la versión 4.x de Amazon EMR. En su lugar, Amazon EMRversión 4.x proporciona esta funcionalidad de forma nativa. Para obtener más información sobre cómomigrar las acciones de arranque de las versiones 2.x y 3.x de la AMI de Amazon EMR a la versión 4.x deAmazon EMR, consulte el tema relacionado con las diferencias en las versiones 4.x de Amazon EMR en laGuía de publicación de Amazon EMR.

Temas• Elementos básicos de las acciones de arranque (p. 117)• Acción de arranque Run If (p. 117)• Acciones de apagado (p. 118)• Uso de las acciones de arranque personalizadas (p. 118)

Elementos básicos de las acciones de arranqueLas acciones de arranque se ejecutan como usuario de Hadoop de forma predeterminada. Puede ejecutaruna acción de arranque con privilegios raíz utilizando sudo.

Todas las interfaces de administración de Amazon EMR admiten acciones de arranque. Puede especificarhasta 16 acciones de arranque por clúster proporcionando varios parámetros bootstrap-actionsdesde la consola, la AWS CLI o la API.

Desde la consola de Amazon EMR, puede especificar opcionalmente una acción de arranque al crear unclúster.

Cuando utilice la CLI, puede pasar referencias a scripts de acciones de arranque a Amazon EMR si añadeel parámetro --bootstrap-actions al crear el clúster mediante el comando create-cluster. Lasintaxis de un parámetro --bootstrap-actions es la siguiente:

AWS CLI

--bootstrap-actions Path="s3://mybucket/filename",Args=[arg1,arg2]

Si la acción de arranque devuelve un código de error distinto de cero, Amazon EMR lo trata como un errory termina la instancia. Si hay demasiadas instancias que generen error en sus acciones de arranque,entonces Amazon EMR termina el clúster. Si solo unas pocas instancias generan error, Amazon EMRintenta reasignar las instancias erróneas y continuar. Utilice el código de error lastStateChangeReasondel clúster para identificar los errores provocados por una acción de arranque.

Acción de arranque Run IfAmazon EMR proporciona esta acción de arranque predefinida para ejecutar un comando de formacondicional cuando se encuentra un valor de instancia específico en el archivo instance.json o job-flow.json. El comando puede hacer referencia a un archivo en Amazon S3 que Amazon EMR puededescargar y ejecutar.

La ubicación del script es s3://elasticmapreduce/bootstrap-actions/run-if.

El siguiente ejemplo refleja la cadena "ejecutar en nodo principal" si se trata de un nodo principal.

Para ejecutar un comando de forma condicional utilizando la AWS CLI

Cuando utilice la AWS CLI para incluir una acción de arranque, especifique Path y Args como una listaseparada por comas.

• Para lanzar un clúster con una acción de arranque que ejecuta condicionalmente un comando cuandose encuentra un valor específico de instancia en el archivo instance.json o job-flow.json,escriba el comando siguiente y sustituya myKey por el nombre del par de claves de EC2.

117

Page 125: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de acciones de arranque

para instalar software adicional

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive --instance-count 1 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/run-if",Args=["instance.isMaster=true","echo running on master node"]

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos losnodos utilizarán el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de Amazon EMR predeterminado y elperfil de instancia EC2, escriba aws emr create-default-roles para crearlos antes deescribir el subcomando create-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Acciones de apagadoUna script de acción de arranque puede crear una o más acciones de apagado escribiendo scripts en eldirectorio /mnt/var/lib/instance-controller/public/shutdown-actions/. Cuando un clústerse termina, todos los scripts en este directorio se ejecutan en paralelo. Cada script se debe ejecutar ycompletar en un plazo de 60 segundos.

No se garantiza la ejecución de los scripts de acción de apagado si el nodo termina con un error.

Note

Cuando se utilizan la versión 4.0 y posteriores de Amazon EMR, debe crear manualmente eldirectorio /mnt/var/lib/instance-controller/public/shutdown-actions/ en el nodoprincipal. No existe de forma predeterminada; sin embargo, después de crearlos, los scripts eneste directorio se ejecutan a pesar de todo antes del apagado. Para obtener más informaciónacerca de la conexión al nodo principal para crear directorios, consulte Conexión al nodo principalutilizando SSH (p. 354).

Uso de las acciones de arranque personalizadasPuede crear un script personalizado para realizar una acción de arranque personalizada. Cualquiera de lasinterfaces de Amazon EMR puede hacer referencia a una acción de arranque personalizada.

Contenido• Adición de acciones de arranque personalizadas utilizando la AWS CLI o la CLI de Amazon

EMR (p. 118)• Adición de acciones de arranque personalizadas utilizando la consola (p. 119)• Uso de una acción de arranque personalizada para copiar un objeto de Amazon S3 en cada

nodo (p. 120)

Adición de acciones de arranque personalizadas utilizando la AWS CLI o la CLIde Amazon EMR

En el siguiente ejemplo se utiliza un script de acción de arranque para descargar y extraer unarchivo TAR comprimido desde Amazon S3. El script de muestra está almacenado en https://elasticmapreduce.s3.amazonaws.com/bootstrap-actions/download.sh.

118

Page 126: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de acciones de arranque

para instalar software adicional

El script de ejemplo tiene un aspecto parecido al siguiente:

#!/bin/bashset -ewget -S -T 10 -t 5 http://elasticmapreduce.s3.amazonaws.com/bootstrap-actions/file.tar.gzmkdir -p /home/hadoop/contentstar -xzf file.tar.gz -C /home/hadoop/contents

Para crear un clúster con una acción de arranque personalizada mediante la AWS CLI

Cuando utilice la AWS CLI para incluir una acción de arranque, especifique Path y Args como una listaseparada por comas. El siguiente ejemplo no utiliza una lista de argumentos.

• Para lanzar un clúster con una acción de arranque personalizada, escriba el comando siguiente ysustituya myKey por el nombre del par de claves de EC2.

• Usuarios de Linux, UNIX y Mac OS X:

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \--use-default-roles --ec2-attributes KeyName=myKey \--applications Name=Hive Name=Pig \--instance-count 3 --instance-type m5.xlarge \--bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"

• Usuarios de Windows:

aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos losnodos utilizarán el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de Amazon EMR predeterminado y elperfil de instancia EC2, escriba aws emr create-default-roles para crearlos antes deescribir el subcomando create-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Adición de acciones de arranque personalizadas utilizando la consola

El siguiente procedimiento describe cómo utilizar sus propias acciones de arranque personalizadas.

Para crear un clúster con una acción de arranque personalizada mediante la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Haga clic en Go to advanced options (Ir a las opciones avanzadas).4. En los pasos 1 y 2 de Create Cluster - Advanced Options (Crear clúster: opciones avanzadas), elija las

opciones que desee y continúe en el Step 3: General Cluster Settings (Paso 3: Configuración generaldel clúster).

119

Page 127: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración del hardware y las redes de los clústeres

5. En Bootstrap Actions (Acciones de arranque) seleccione Configure and add (Configurar y añadir) paraespecificar el nombre, la ubicación del JAR y los argumentos de la acción de arranque. Elija Add.

6. Opcionalmente, añada más acciones de arranque como desee.7. Continúe para crear el clúster. Las acciones de arranque se realizarán después de que el clúster se

haya aprovisionado e inicializado.

Mientras el nodo principal del clúster está en ejecución, puede conectar al nodo principal y ver los archivosde registro que el script de la acción de arranque generó en el directorio /mnt/var/log/bootstrap-actions/1.

Temas relacionados

• Ver archivos de registro (p. 320)

Uso de una acción de arranque personalizada para copiar un objeto de AmazonS3 en cada nodoPuede utilizar una acción de arranque para copiar objetos desde Amazon S3 en cada nodo de un clústerantes de que se instalen las aplicaciones. La AWS CLI se instala en cada nodo del clúster, por lo que laacción de arranque puede llamar a los comandos de la AWS CLI.

En el siguiente ejemplo, se muestra un script sencillo de acción de arranque que copia el archivomyfile.jar desde Amazon S3 en la carpeta local /mnt1/myfolder de cada nodo del clúster. El scriptse almacena en Amazon S3 con el nombre de archivo copymyfile.sh y contiene lo siguiente.

#!/bin/bash aws s3 cp s3://mybucket/myfilefolder/myfile.jar /mnt1/myfolder

Al lanzar el clúster, debe especificar el script. En el siguiente ejemplo de la AWS CLI se muestra cómohacerlo:

aws emr create-cluster --name "Test cluster" --release-label emr-5.30.0 \--use-default-roles --ec2-attributes KeyName=myKey \--applications Name=Hive Name=Pig \--instance-count 3 --instance-type m5.xlarge \--bootstrap-actions Path="s3://mybucket/myscriptfolder/copymyfile.sh"

Configuración del hardware y las redes de losclústeres

Una consideración importante al crear un clúster de EMR es cómo configurar instancias Amazon EC2 y lasopciones de red. Las instancias EC2 de un clúster de EMR se organizan en tipos de nodos. Existen trestipos: el nodo principal, el nodo secundario y los nodos de tareas. Cada tipo de nodo realiza un conjunto deroles definidos por las aplicaciones distribuidas que se instalan en el clúster. Durante un trabajo de HadoopMapReduce o Spark, por ejemplo, los componentes de los nodos secundarios y de tareas procesan losdatos, transfieren la salida a Amazon S3 o HDFS y devuelven los metadatos de estado al nodo principal.Para un clúster de un solo nodo, todos los componentes se ejecutan en el nodo principal.

El conjunto de instancias EC2 que aloja cada tipo de nodo se denomina flota de instancias o grupo deinstancias uniforme. La configuración de las flotas de instancias o de los grupos de instancias uniformes es

120

Page 128: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDescripción de los tipos de nodos

una elección que se toma al crear un clúster. Además, se aplica a todos los tipos de nodos y no se puedecambiar más adelante.

Al crear un clúster, debe elegir opciones que, en última instancia, determinan el perfil de rendimiento delclúster. En este capítulo, se tratan estas opciones en detalle y, a continuación, se combinan todas ellas conlas directrices y prácticas recomendadas.

Note

La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 yposteriores de Amazon EMR, excluyendo la 5.0.0 y la 5.0.3.

Temas• Descripción de los nodos principal, secundarios y de tareas (p. 121)• Configuración de instancias EC2 (p. 123)• Configuración de redes (p. 129)• Creación de un clúster con flotas de instancias o grupos de instancias uniformes (p. 140)• Directrices y prácticas recomendadas para la configuración de clústeres (p. 152)

Descripción de los nodos principal, secundarios y detareasUtilice esta sección para entender cómo utiliza Amazon EMR cada uno de estos tipos de nodos y comobase para la planificación de capacidad de los clústeres.

Nodo principalEl nodo principal administra el clúster y normalmente ejecuta los componentes principales de lasaplicaciones distribuidas. Por ejemplo, el nodo principal se ejecuta el servicio ResourceManager de YARNpara administrar recursos para aplicaciones, así como el servicio NameNode de HDFS. También haceun seguimiento del estado de los trabajos enviados al clúster y monitoriza la salud de los grupos deinstancias.

Para supervisar el progreso de un clúster e interactuar directamente con las aplicaciones, puede conectarcon el nodo principal a través de SSH como usuario de Hadoop. Para obtener más información, consulteConexión al nodo principal utilizando SSH (p. 354). La conexión con el nodo principal le permite accederdirectamente a los directorios y los archivos, como los archivos de registro de Hadoop. Para obtener másinformación, consulte Ver archivos de registro (p. 320). También puede ver las interfaces de usuarioque publican las aplicaciones como sitios web que se ejecutan en el nodo principal. Para obtener másinformación, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 359).

Note

Con Amazon EMR 5.23.0 y versiones posteriores, puede lanzar un clúster con tres nodosprincipales para admitir una alta disponibilidad de aplicaciones como YARN Resource Manager,HDFS Name Node, Spark, Hive y Ganglia. El nodo principal ya no es un posible punto únicode fallo con esta característica. Si se produce un error en los nodos principales, se produce unerror automáticamente en Amazon EMR a través de nodo principal en espera y se reemplazael nodo principal erróneo por uno nuevo con las mismas acciones de arranque y configuración.Para obtener más información, consulte Plan and Configure Master Nodes (Planificación yconfiguración de nodos principales).

Nodos secundariosLos nodos secundarios los administra el nodo principal. Los nodos secundarios ejecutan el demonio delnodo de datos para coordinar el almacenamiento de datos como parte del Hadoop Distributed File System

121

Page 129: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDescripción de los tipos de nodos

(HDFS). También ejecutan el demonio Task Tracker y realizan otras tareas de cálculo en paralelo enlos datos que las aplicaciones instaladas requieren. Por ejemplo, un nodo secundario ejecuta demoniosNodeManager de YARN, tareas MapReduce de Hadoop y ejecutores de Spark.

Sin embargo, a diferencia del nodo principal, puede haber varios nodos secundarios y, por lo tanto, variasinstancias EC2, en el grupo de instancias o en la flota de instancias. Solo hay un grupo de instanciassecundarios o flota de instancias. Con los grupos de instancia, puede agregar y eliminar instanciasEC2 mientras se está ejecutando el clúster o se configura el escalado automático. Para obtener másinformación sobre cómo añadir y eliminar instancias EC2 con la configuración de los grupos de instancias,consulte Escalado de recursos de clúster (p. 370). Con las flotas de instancias, puede añadir y eliminarinstancias de forma eficaz modificando la capacidad de destino de la flota de instancias para bajo demanday de spot según corresponda. Para obtener más información acerca de las capacidades de destino,consulte Opciones de flota de instancias (p. 142).

Warning

La eliminación de demonios de HDFS de un nodo secundario de ejecución o la terminación denodos secundarios conlleva el riesgo de pérdida de datos. Tenga cuidado al configurar nodossecundarios que utilizan instancias de spot. Para obtener más información, consulte ¿Cuándo sedeben utilizar las instancias de spot? (p. 153).

Nodos de tareasLos nodos de tareas son opcionales. Puede utilizarlos para añadir potencia para llevar a cabo tareas decomputación paralela en los datos, como, por ejemplo, las tareas de Hadoop MapReduce y ejecutoresde Spark. Los nodos de tareas no ejecutan el demonio de nodo de datos, ni tampoco almacenan datosen HDFS. Al igual que con los nodos secundarios, puede añadir nodos de tareas a un clúster añadiendoinstancias EC2 en un grupo de instancias uniforme o modificando las capacidades de destino para unatarea de la flota de instancias. Los clústeres con la configuración de grupo de instancias uniforme puedentener hasta un total de 48 grupos de instancias de tareas. La capacidad de añadir grupos de instanciasuniformes de este modo le permite combinar tipos de instancia EC2 y opciones de precio, como porejemplo instancias bajo demanda e instancias de spot. Esto le ofrece flexibilidad para responder a losrequisitos de carga de trabajo de forma rentable. Al utilizar la configuración de flota de instancias para suclúster, la capacidad de combinar tipos de instancia y opciones de compra está integrada, por lo que solohay una flota de instancias de tareas.

Como a menudo se utilizan las instancias de spot para ejecutar nodos de tarea, Amazon EMR tiene unafunción predeterminada para programar trabajos de YARN, de manera que la ejecución de los trabajosno produzca un error cuando se terminen los nodos de las tareas que se ejecutan en instancias de spot.Para ello, Amazon EMR permite que los procesos maestros de la aplicación solo se ejecuten en nodosprincipales. El proceso maestro de la aplicación controla la ejecución de los trabajos y necesita estar activodurante la vida útil del trabajo.

Para ello, Amazon EMR versión 5.19.0 y posteriores utiliza la característica integrada de etiquetas denodos de YARN. (Las versiones anteriores utilizaban un parche de código). Las propiedades de lasclasificaciones de configuración yarn-site y capacity-scheduler están configuradas de formapredeterminada, por lo que las clasificaciones capacity-scheduler y fair-scheduler de YARN puedenutilizar etiquetas de nodos. Amazon EMR etiqueta automáticamente los nodos principales con la etiquetaCORE y establece propiedades, de modo que los procesos maestros de la aplicación se programenúnicamente en nodos con la etiqueta CORE. La modificación manual de las propiedades relacionadas enlas clasificaciones de configuración yarn-site y capacity-scheduler, o directamente en los archivos XMLasociados, podría hacer que esta característica dejara de funcionar o modificar su funcionalidad.

A partir de la serie de lanzamiento de la versión 6.x de Amazon EMR, la función de etiquetas de nodoYARN está deshabilitada de forma predeterminada. De forma predeterminada, los procesos maestros dela aplicación se pueden ejecutar tanto en nodos principales como en nodos de tareas. Puede habilitar lafunción de etiquetas de nodo YARN configurando las siguientes propiedades:

• yarn.node-labels.enabled: true

122

Page 130: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de instancias EC2

• yarn.node-labels.am.default-node-label-expression: 'CORE'

Para obtener información sobre propiedades específicas, consulte Configuración de Amazon EMRpara evitar errores en los trabajos debidos a la terminación de instancias de spot de los nodos detareas (p. 154).

Configuración de instancias EC2Las instancias EC2 aparecen en diferentes configuraciones, lo que se conoce como tipos de instancia.Cada tipo de instancia tiene una CPU, entrada/salida y capacidad de almacenamiento diferentes. Ademásdel tipo de instancia, puede elegir distintas opciones de compra para instancias EC2. Puede especificardiferentes tipos de instancia y opciones de compra dentro de grupos de instancias o flotas de instancias.Para obtener más información, consulte Creación de un clúster con flotas de instancias o grupos deinstancias uniformes (p. 140). Para obtener instrucciones sobre cómo elegir las opciones adecuadas,consulte Directrices y prácticas recomendadas para la configuración de clústeres (p. 152).

Important

Cuando elige un tipo de instancia mediante la Consola de administración de AWS, el númerode vCPU mostrado para cada tipo de instancia es el número de YARN vcores para dicho tipo deinstancia, no el número de EC2 vCPU para dicho tipo de instancia. Para obtener más informaciónacerca del número de vCPU para cada tipo de instancia, consulte Tipos de instancias de AmazonEC2.

Temas• Tipos de instancias admitidos (p. 123)• Opciones de compra de instancias (p. 125)• Almacenamiento de la instancia (p. 127)

Tipos de instancias admitidosEn la siguiente tabla se describen los tipos de instancia que admite Amazon EMR. Para obtener másinformación, consulte Tipos de instancias de Amazon EC2 y Matriz de tipo de instancia de la AMI deAmazon Linux.

No todos los tipos de instancias están disponibles en todas las regiones. Si crea un clúster con un tipode instancia que no está disponible, es posible que no se pueda aprovisionar el clúster o que se bloqueedurante el aprovisionamiento. Para obtener información sobre la disponibilidad de las instancias, consultela página de precios de Amazon EC2, haga clic en el enlace de la opción de compra de instancias, yfiltre por Region (Región) para ver si el tipo de instancia que ha seleccionado en la lista siguiente estádisponible en la región.

A partir de la versión de 5.13.0 de Amazon EMR, todas las instancias usan virtualización HVM yalmacenamiento respaldado por EBS para los volúmenes raíz. Cuando se usan versiones de AmazonEMR anteriores a la 5.13.0, algunas instancias de generaciones anteriores utilizan virtualización PVM. Sonlas que se indican en la tabla. Para obtener más información, consulte Tipos de virtualización de AMI deLinux.

Algunos tipos de instancia son compatibles con redes mejoradas. Para obtener más información, consulteRedes mejoradas en Linux.

Amazon EMR admite las Instancias de generaciones anteriores para dar soporte a lasaplicaciones que están optimizadas para estas instancias y que todavía no se han actualizado. Paraobtener más información acerca de estos tipos de instancias y sobre las rutas de actualización, consulteInstancias de generaciones anteriores.

123

Page 131: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de instancias EC2

Clase de instancia Tipos de instancia

Uso general m1.medium¹ | m1.large¹ | m1.xlarge¹ | m2.xlarge¹ |m2.2xlarge¹ | m2.4xlarge¹ | m3.xlarge¹ | m3.2xlarge¹| m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m4.10xlarge |m4.16xlarge | m5.xlarge³ | m5.2xlarge³ | m5.4xlarge³ | m5.8xlarge³| m5.12xlarge³ | m5.16xlarge³ | m5.24xlarge³ | m5a.xlarge |m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.12xlarge |m5a.16xlarge | m5a.24xlarge | m5d.xlarge³ | m5d.2xlarge³ |m5d.4xlarge³ | m5d.8xlarge³ | m5d.12xlarge³ | m5d.16xlarge³ |m5d.24xlarge³

Note

Las instancias de la serie m5a están disponibles cuando seutiliza la versión 5.20.0 de Amazon EMR y posteriores.

Optimizada para computación c1.medium¹ ² | c1.xlarge¹ | c3.xlarge¹ | c3.2xlarge¹ |c3.4xlarge¹ | c3.8xlarge¹ | c4.large | c4.xlarge | c4.2xlarge| c4.4xlarge | c4.8xlarge | c5.xlarge³ | c5.2xlarge³ | c5.4xlarge³ |c5.9xlarge³ | c5.12xlarge³ | c5.18xlarge³ | c5.24xlarge³ | c5d.xlarge³| c5d.2xlarge³ | c5d.4xlarge³ | c5d.9xlarge³ | c5d.18xlarge³ |c5n.xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.18xlarge |cc2.8xlarge | z1d.xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge |z1d.12xlarge

Note

Las instancias de la serie c5n están disponibles cuando seutiliza la versión 5.20.0 de Amazon EMR y posteriores.

Optimizada para memoria r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.xlarge| r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge | r5.xlarge³ |r5.2xlarge³ | r5.4xlarge³ | r5.8xlarge³ | r5.12xlarge³ | r5.16xlarge³ |r5.24xlarge³ | r5a.xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge |r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5d.xlarge³ | r5d.2xlarge³| r5d.4xlarge³ | r5d.8xlarge³ | r5d.12xlarge³ | r5d.16xlarge³ |r5d.24xlarge³ | cr1.8xlarge

Note

Las instancias de la serie r5a están disponibles cuando seutiliza la versión 5.20.0 de Amazon EMR y posteriores.

Optimizada para almacenamiento h1.2xlarge | h1.4xlarge | h1.8xlarge | h1.8xlarge | hs1.8xlarge¹ |i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i3.xlarge| i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.16xlarge | i3en.xlarge |i3en.2xlarge |i3en.3xlarge |i3en.6xlarge |i3en.12xlarge |i3en.24xlarge|d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge

Note

Las instancias de la serie i3 están disponibles cuando seutiliza la versión 5.9.0 de Amazon EMR y posteriores. Lasinstancias de la serie i3en están disponibles cuando seutiliza la versión 5.25.0 de Amazon EMR y posteriores.

Instancias de GPU cg1.4xlarge | g2.2xlarge | g3.4xlarge | g3.8xlarge | g3.16xlarge| g3s.xlarge | p2.xlarge | p2.8xlarge | p2.16xlarge | p3.2xlarge |p3.8xlarge | p3.16xlarge

124

Page 132: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de instancias EC2

Clase de instancia Tipos de instancia

Note

Los controladores NVIDIA y CUDA se instalan en los tiposde instancia P2 y P3 de forma predeterminada.

¹Utiliza la AMI de virtualización PVM con las versiones de Amazon EMR anteriores a la 5.13.0. Paraobtener más información, consulte Tipos de virtualización de AMI de Linux.

²No se admite en la versión 5.15.0.

³Se admite en la versión 5.13.0 y posteriores.

Opciones de compra de instanciasA la hora de configurar un clúster, puede elegir una opción de compra para instancias EC2. Puede elegirutilizar instancias bajo demanda, instancias de spot o ambas. Los precios varían en función del tipo deinstancia y de la región. Para conocer los precios actuales, consulte Precios de Amazon EMR.

La opción elegida de utilizar grupos de instancias o flotas de instancias en el clúster determina cómo puedecambiar las opciones de compra de instancias mientras se ejecuta un clúster. Si decide utilizar grupos deinstancias uniformes, el tipo de instancia y las opciones de compra se aplican a todas las instancias EC2de cada grupo de instancias y solo puede especificar la opción de compra para un grupo de instanciascuando lo cree. Si decide utilizar flotas de instancias, puede cambiar las opciones de compra después dehaber creado cada flota de instancias y puede combinar opciones de compra para satisfacer el objetivode capacidad que especifique. Para obtener más información acerca de estas configuraciones, consulteCreación de un clúster con flotas de instancias o grupos de instancias uniformes (p. 140).

Important

Cuando elige un tipo de instancia mediante la Consola de administración de AWS, el númerode vCPU mostrado para cada tipo de instancia es el número de YARN vcores para dicho tipo deinstancia, no el número de EC2 vCPU para dicho tipo de instancia. Para obtener más informaciónacerca del número de vCPU para cada tipo de instancia, consulte Tipos de instancias de AmazonEC2.

Instancias bajo demandaCon las instancias bajo demanda, paga la capacidad de cómputo por horas. De forma opcional, puedehacer que estas instancias bajo demanda utilicen las opciones de compra de instancia reservada oinstancia dedicada. Con las instancias reservadas, realiza un pago único para una instancia a fin dereservar capacidad. Las instancias dedicadas están físicamente aisladas en el nivel de hardware dehost de las instancias que pertenecen a otras cuentas de AWS. Para obtener más información sobre lasopciones de compra, consulte Opciones de compra de instancias en la Guía del usuario de Amazon EC2para instancias de Linux.

Uso de instancias reservadas

Para utilizar instancias reservadas en Amazon EMR, debe utilizar Amazon EC2 para adquirir la instanciareservada y especificar los parámetros de la reserva, incluido el ámbito de la reserva en lo que respecta auna región o una zona de disponibilidad. Para obtener más información, consulte Instancias reservadas deAmazon EC2 y Compra de instancias reservadas en la Guía del usuario de Amazon EC2 para instanciasde Linux. Cuando haya comprado una instancia reservada, y si se dan todas las condiciones siguientes,Amazon EMR la usará cuando se lance un clúster:

• Una instancia bajo demanda se especifica en la configuración del clúster que coincide con laespecificación de instancia reservada

125

Page 133: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de instancias EC2

• El clúster se lanzó dentro del ámbito de la reserva de la instancia (la zona de disponibilidad o región)• La capacidad de instancia reservada sigue estando disponible

Por ejemplo, supongamos que adquiere una instancia reservada m5.xlarge con la instancia de reservaen el ámbito de la región EE. UU. Este. A continuación lanza un clúster de EMR en EE. UU. Este queutiliza dos instancias m5.xlarge. La primera instancia se factura con la tarifa de instancia reservada y laotra se factura con la tarifa de la opción bajo demanda. La capacidad de instancias reservadas se utilizaantes de crear las instancias bajo demanda.

Uso de instancias dedicadas

Para utilizar instancias dedicadas, compre las instancias dedicadas utilizando Amazon EC2 y, acontinuación, cree una VPC con el atributo de tenencia Dedicated (Dedicada). Dentro de Amazon EMR,puede especificar que un clúster se debe lanzar en esta VPC. Cualquier instancia bajo demanda del clústerque se ajuste a la especificación de instancia dedicada usará las instancias dedicadas disponibles cuandose lanza el clúster.

Note

Amazon EMR no permite configurar el atributo dedicated en instancias individuales.

Instancias de spot

Las instancias de spot en Amazon EMR proporcionan una opción para adquirir capacidad de instanciasAmazon EC2 a un costo reducido en comparación con la compra bajo demanda. La desventaja deutilizar instancias de spot es que las instancias podrían finalizar de modo imprevisible cuando fluctúan losprecios. Para obtener más información sobre si el uso de instancias de spot podría ser adecuado para suaplicación, consulte ¿Cuándo se deben utilizar las instancias de spot? (p. 153).

Cuando Amazon EC2 tiene capacidad no utilizada, ofrece instancias EC2 a un precio reducido,denominado precio de spot. El precio fluctúa en función de la disponibilidad y la demanda y se establecepor región y zona de disponibilidad. Al elegir las instancias de spot, debe especificar el precio de spotmáximo que está dispuesto a pagar para cada tipo de instancia EC2. Cuando el precio de spot de la zonade disponibilidad del clúster se encuentra por debajo del precio de spot máximo especificado para dichotipo de instancia, se lanzan las instancias. Mientras se ejecutan las instancias, se le factura el precio despot actual, no el precio de spot máximo.

Al crear un clúster con flotas de instancias, tiene la opción de utilizar una duración definida (tambiénconocida como un bloque de spot) que proporciona un mayor grado de previsibilidad. Las instancias despot terminan al final de la duración, pero no se interrumpen hasta que esta caduca. En este tema sedescribe cómo funcionan las instancias de spot con Amazon EMR.

Para conocer los precios actuales, consulte Precios de instancias de spot de Amazon EC2. Para obtenermás información, consulte Instancias de spot en la Guía del usuario de Amazon EC2 para instancias deLinux. Al crear y configurar un clúster, especifica las opciones de red que en última instancia determinan lazona de disponibilidad donde se lanza el clúster. Para obtener más información, consulte Configuración deredes (p. 129).

Tip

Puede ver el precio de spot en tiempo real en la consola al pasar el ratón sobre la ayudacontextual situada junto a la opción de compra Spot al crear un clúster utilizando las AdvancedOptions (Opciones avanzadas). Se muestran los precios de cada zona de disponibilidad en laregión seleccionada. Los precios más bajos se muestran en filas de color verde. Debido a lasfluctuaciones de los precios de spot entre las zonas de disponibilidad, la selección de la zonade disponibilidad con el menor precio inicial podría no coincidir con el precio más bajo durantela vida útil del clúster. Para obtener resultados óptimos, estudie el historial de precios de la zona

126

Page 134: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de instancias EC2

de disponibilidad antes elegir. Para obtener más información, consulte Historial de precios deinstancias de spot en la Guía del usuario de Amazon EC2 para instancias de Linux.

Las opciones de instancias de spot dependen de si utiliza flotas de instancias o grupos de instanciasuniformes en la configuración del clúster.

Instancias de spot en los grupos de instancias uniformes

Al utilizar las instancias de spot en un grupo de instancias uniforme, todas las instancias de un grupo deinstancias deben ser instancias de spot. Especifique una única subred o zona de disponibilidad para elclúster. Para cada grupo de instancias, especifique un único tipo de instancia de spot y un precio de spotmáximo. Las instancias de spot de ese tipo se lanzan si el precio de spot de la zona de disponibilidad yla región del clúster está por debajo del precio de spot máximo. Las instancias se terminan si el precio despot está por encima de su precio de spot máximo. Solo puede establecer el precio de spot al configurar ungrupo de instancias. No se puede cambiar más adelante. Para obtener más información, consulte Creaciónde un clúster con flotas de instancias o grupos de instancias uniformes (p. 140).

Instancias de spot en las flotas de instancias

Al utilizar la configuración de flotas de instancias, las opciones adicionales le ofrecen mayor control sobrecómo lanzar y terminar instancias de spot. Fundamentalmente, las flotas de instancias utilizan un métodode diferente a los grupos de instancias uniformes para lanzar instancias. La forma de funcionamientoconsiste en establecer una capacidad de destino para las instancias de spot (e instancias bajo demanda)y hasta cinco tipos de instancias. También puede especificar una capacidad ponderada para cada tipode instancia o utilizar el vCPU (vcores de YARN) del tipo de instancia como capacidad ponderada. Estacapacidad ponderada se tiene en cuenta en la capacidad de destino cuando se aprovisiona una instanciade ese tipo. Amazon EMR aprovisiona instancias con ambas opciones de compra hasta que se alcanza lacapacidad de destino para cada destino. Además, puede definir una serie de zonas de disponibilidad paraque Amazon EMR elija al lanzar instancias. También proporciona opciones de spot adicionales para cadaflota, incluido un tiempo de espera de aprovisionamiento y, opcionalmente, una duración definida. Paraobtener más información, consulte Configuración de flotas de instancias (p. 141).

Almacenamiento de la instanciaEl almacén de instancias o el almacenamiento de volúmenes de EBS se utiliza para los datos de HDFS,así como para los búferes, cachés, datos de pruebas y otro contenido temporal que algunas aplicacionespueden "verter" en el sistema de archivos local. EMRFS puede ayudarle a garantizar que exista una"fuente de confianza" persistente para los datos de HDFS almacenados en Amazon S3.

Amazon EBS funciona de forma distinta dentro de Amazon EMR que con las instancias Amazon EC2normales. Los volúmenes de Amazon EBS asociados a los clústeres de EMR son efímeros: los volúmenesse eliminan al terminar el clúster y las instancias (por ejemplo, al reducir los grupos de instancias), porlo que es importante que no espere que los datos persistan. Aunque los datos son efímeros, es posibleque los datos en HDFS se puedan replicar en función del número y de la especialización de los nodos delclúster. Al añadir volúmenes de almacenamiento de EBS, estos se montan como volúmenes adicionales.No forman parte del volumen raíz. YARN está configurado para utilizar todos los volúmenes adicionales,pero usted es responsable de asignar los volúmenes adicionales como almacenamiento local (paraarchivos de registro locales por ejemplo).

Otras advertencias para el uso de Amazon EBS con clústeres de EMR son:

• No puede realizar una instantánea de un volumen de EBS y, después, restaurarlo en Amazon EMR.Para crear configuraciones personalizadas reutilizables, utilice una AMI personalizada (disponible enAmazon EMR versión 5.7.0 y posteriores). Para obtener más información, consulte Uso de una AMIpersonalizada (p. 109).

• Un volumen de almacenamiento raíz cifrado de EBS se admite únicamente cuando se utiliza unaAMI personalizada. Para obtener más información, consulte Creación de una AMI personalizada con

127

Page 135: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de instancias EC2

un volumen de dispositivo raíz de Amazon EBS cifrado (p. 113). No se admiten los volúmenes dealmacenamiento de EBS cifrados.

• Si aplica etiquetas con la API de Amazon EMR, dichas operaciones se aplican a volúmenes de EBS.• Existe un límite de 25 volúmenes por instancia.

Almacenamiento predeterminado de EBS para instanciasAmazon EMR asocia automáticamente un volumen SSD de uso general de 10 GB (gp2) de AmazonEBS como dispositivo raíz para sus AMI a fin de mejorar el rendimiento. Además, para instancias de EC2con almacenamiento solo para EBS, Amazon EMR asigna los volúmenes de almacenamiento de EBSa las instancias. Al crear un clúster utilizando Amazon EMR la versión 5.22.0 y posteriores, la cantidadpredeterminada de almacenamiento de EBS aumenta en función del tamaño de la instancia. Además,podemos dividir un mayor almacenamiento en varios volúmenes, lo que ofrece un mayor desempeño deIOPS, y a su vez un mejor desempeño para algunas cargas de trabajo estandarizadas. Si desea utilizaruna configuración de almacenamiento para instancias de EBS diferente, puede especificarlo al crearun clúster de EMR o añadir nodos a un clúster existente. Consulte la tabla que aparece a continuaciónpara identificar el número predeterminado de los volúmenes de almacenamiento de EBS, su tamaño y eltamaño total por tipo de instancia.

Los costos de EBS se prorratean por hora en función de los cargos de Amazon EBS mensuales paravolúmenes gp2 en la región donde se ejecuta el clúster. Por ejemplo, el costo por hora de EBS parael volumen raíz en cada nodo de clúster de una región en la que se cobran 0,10 USD/GB/mes, sería,aproximadamente, de 0,00139 USD por hora (0,10 USD/GB/mes dividido por 30 días dividido por 24 h ymultiplicado por 10 GB).

Volúmenes de almacenamiento de EBS predeterminados y tamaño por tipo de instancia paraAmazon EMR 5.22.0 y posterior

Tamaño de instancia Número de volúmenes Tamaño del volumen(GiB)

Tamaño total (GiB)

*.large 1 32 32

*.xlarge 2 32 64

*.2xlarge 4 32 128

*.4xlarge 4 64 256

*.8xlarge 4 128 512

9xlarge 4 144 576

*.10xlarge 4 160 640

*.12xlarge 4 192 768

*.16xlarge 4 256 1024

*.18xlarge 4 288 1152

*.24xlarge 4 384 1536

Especificación de volúmenes de almacenamiento adicionales de EBSAl configurar los tipos de instancias en Amazon EMR, puede especificar volúmenes de EBS adicionales,lo que añade capacidad más allá del almacén de instancias (en caso de incluirse) y el volumen de EBSpredeterminado. Amazon EBS ofrece los siguientes tipos de volúmenes: de uso general (SSD), de IOPS

128

Page 136: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

provisionadas (SSD), optimizados para la capacidad de proceso (HDD), en frío (HDD) y magnéticos.Se diferencian en las características de rendimiento y en el precio, por tanto puede personalizar sualmacenamiento en función de las necesidades empresariales y de análisis de sus aplicaciones. Porejemplo, algunas aplicaciones podrían tener la necesidad de volcar en el disco, mientras que otras puedentrabajar de forma segura en la memoria o utilizando Amazon S3.

Solo puede asociar volúmenes de EBS a instancias durante el startup del clúster a menos que añada ungrupo de instancias de nodo de tareas adicional, momento en el cual puede añadir volúmenes de EBS.Si una instancia en un clúster de EMR falla, tanto la instancia como los volúmenes de EBS asociadosse sustituirán como nuevos. Por lo tanto, si separa manualmente un volumen de EBS, Amazon EMR lotrata como un error y sustituye ambos almacenamientos de la instancia (si procede) y los almacenes devolumen.

Configuración de redesPuede haber dos opciones de plataforma de red que puede elegir para el clúster: EC2-Classic o EC2-VPC. En EC2-Classic, las instancias se ejecutan en una sola red plana que comparte con otros clientes.EC2-Classic solo está disponible con determinadas cuentas en determinadas regiones. Para obtener másinformación, consulte Amazon EC2 y Amazon VPC en la Guía del usuario de Amazon EC2 para instanciasde Linux. En EC2-VPC, el clúster utiliza Amazon Virtual Private Cloud (Amazon VPC), y las instanciasEC2 se ejecutan en una VPC que está aislada de forma lógica dentro de su cuenta de AWS. Amazon VPCle permite aprovisionar una nube virtual privada (VPC), una zona aislada dentro de AWS, donde puedeconfigurar una red virtual y controlar aspectos como los rangos de direcciones IP privadas, las subredes,las tablas de enrutamiento y las gateways de red.

VPC ofrece las siguientes capacidades:

• Procesamiento de información confidencial

El lanzamiento de un clúster en una VPC es similar al lanzamiento del clúster en una red privada conherramientas adicionales, como, por ejemplo, tablas de enrutamiento y ACL de red, para definir quiéntiene acceso a la red. Si va a procesar información confidencial en su clúster, es posible que desee elcontrol de acceso adicional que ofrece el lanzamiento del clúster en una VPC. Además, puede elegirlanzar sus recursos en una subred privada en la que ninguno de ellos tenga conectividad directa aInternet.

• Acceso a los recursos de una red interna

Si el origen de datos se encuentra en una red privada, puede ser poco práctico o indeseable cargardichos datos en AWS para importarlos en Amazon EMR, ya sea debido a la cantidad de datos quetransferir o debido a la naturaleza confidencial de los datos. En su lugar, puede lanzar el clúster en unaVPC y conectar su centro de datos a su VPC a través de una conexión de VPN, habilitando el clústerpara que acceda a recursos de su red interna. Por ejemplo, si tiene una base de datos Oracle en sucentro de datos, el lanzamiento del clúster en una VPC conectada a dicha red por VPN permite que elclúster acceda a la base de datos Oracle.

Subredes públicas y privadas

Puede lanzar clústeres de EMR tanto en subredes de VPC públicas y privadas. Esto significa que nonecesita conectividad a Internet para ejecutar un clúster de EMR. Sin embargo, es posible que tenga queconfigurar la conversión de las direcciones de red (NAT) y los gateways de VPN para acceder a servicioso recursos ubicados fuera de la VPC; por ejemplo, en una intranet corporativa o en puntos de enlace deServicio de AWS públicos como AWS Key Management Service.

Important

Amazon EMR solo es compatible con el lanzamiento de clústeres en subredes privadas en lasversiones 4.2 o superiores.

129

Page 137: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

Para obtener más información sobre Amazon VPC, consulte Guía del usuario de Amazon VPC.

Temas• Opciones de Amazon VPC (p. 130)• Configuración de una VPC para alojar clústeres (p. 135)• Lanzamiento de clústeres en una VPC (p. 137)• Restricción de permisos a una VPC que utiliza IAM (p. 138)• Política de Amazon S3 mínima para subred privada (p. 139)• Más recursos para obtener información sobre VPC (p. 139)

Opciones de Amazon VPCCuando se lanza un clúster de Amazon EMR en una VPC, puede lanzarse en una subred compartida,privada o pública. Existen ligeras pero importantes diferencias en la configuración, en función del tipo desubred que elija para un clúster.

Subredes públicas

Los clústeres de EMR de una subred pública requieren una gateway de Internet conectada. Esto sedebe a que los clústeres de Amazon EMR deben tener acceso a los servicios de AWS y a Amazon EMR.Si un servicio, como Amazon S3, ofrece la posibilidad de crear un punto de enlace de la VPC, puedeacceder a dichos servicios mediante el punto de enlace, en lugar de acceder a un punto de enlace públicoa través de una gateway de Internet. Además, Amazon EMR no puede comunicarse con clústeres ensubredes públicas a través de un dispositivo de conversión de las direcciones de red (NAT). Para este finse necesita una gateway de Internet, pero puede utilizar una instancia NAT o una gateway para otro tráficoen situaciones más complejas.

Todas las instancias de un clúster se conectan a Amazon S3 a través de un punto de enlace de la VPC ouna gateway de Internet. Otros servicios de AWS que actualmente no admiten puntos de enlace de la VPCutilizan solo una gateway de Internet.

Si tiene recursos de AWS adicionales que no quiera conectar a la gateway de Internet, puede lanzarlos enuna subred privada que cree dentro de la VPC.

Los clústeres que se ejecutan en una subred pública utilizan dos grupos de seguridad: uno para el nodoprincipal y otro para los nodos secundarios y de tareas. Para obtener más información, consulte Control deltráfico de red con grupos de seguridad (p. 291).

El siguiente diagrama muestra cómo se ejecuta un clúster de Amazon EMR en una VPC mediante unasubred pública. El clúster puede conectarse a otros recursos de AWS, como buckets de Amazon S3, através de una gateway de Internet.

130

Page 138: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

En el siguiente diagrama muestra cómo configurar una VPC para que un clúster en la VPC pueda accedera los recursos en su propia red, como, por ejemplo, una base de datos Oracle.

Subredes privadas

Las subredes privadas le permiten lanzar recursos de AWS sin necesidad de que la subred tenga asociadauna gateway de Internet. Esto puede ser útil, por ejemplo, en una aplicación que utilice estos recursosprivados en el backend. Estos recursos pueden iniciar el tráfico saliente a través de una instancia NATubicada en otra subred que tenga asociada una gateway de Internet. Para obtener más información sobreesta situación, consulte Escenario 2: VPC con subredes públicas y privadas (NAT).

Important

Amazon EMR solo es compatible con el lanzamiento de clústeres en subredes privadas en lasversiones 4.2 o posteriores.

131

Page 139: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

A continuación se indican las diferencias respecto a subredes públicas:

• Para acceder a los servicios de AWS que no proporcionan un punto de enlace de la VPC, debe seguirutilizando una instancia NAT o una gateway de Internet.

• Como mínimo, deberá proporcionar una ruta al bucket de registros de servicio de Amazon EMR y alrepositorio de Amazon Linux en Amazon S3. Para obtener más información, consulte Política de AmazonS3 mínima para subred privada (p. 139)

• Si utiliza las características de EMRFS, debe disponer de un punto de enlace de la VPC de Amazon S3 yde una ruta desde la subred privada a DynamoDB.

• La depuración solo funciona si proporciona una ruta desde la subred privada a un punto de enlace deAmazon SQS público.

• La creación de una configuración de subred privada con una instancia de NAT o puerto de enlace enuna subred pública solo es compatible con la Consola de administración de AWS. La forma más sencillade añadir y configurar instancias NAT y puntos de enlace de la VPC de Amazon S3 para los clústeresde EMR consiste en utilizar la página VPC Subnets List (Lista de subredes de la VPC) de la consolade Amazon EMR. Para configurar gateways NAT, consulte Gateways NAT en la Guía del usuario deAmazon VPC.

• No puede cambiar una subred con un clúster de EMR existente de pública a privada o viceversa. Paralocalizar un clúster de EMR dentro de una subred privada, el clúster debe iniciarse en dicha subredprivada.

Amazon EMR crea y utiliza distintos grupos de seguridad predeterminados para los clústeres en unasubred privada: ElasticMapReduce-Master-Private, ElasticMapReduce-Slave-Private y ElasticMapReduce-ServiceAccess. Para obtener más información, consulte Control del tráfico de red con grupos deseguridad (p. 291).

Para obtener una lista completa de las NACL del clúster, elija Security groups for Master (Grupos deseguridad para principal) y Security groups for Core & Task (Grupos de seguridad para secundarios y detareas) en la página Cluster Details (Detalles del clúster) de la consola de Amazon EMR.

La imagen siguiente muestra cómo se configura un clúster de EMR dentro de una subred privada. La únicacomunicación fuera de la subred es a Amazon EMR.

132

Page 140: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

La imagen siguiente muestra una configuración de ejemplo para un clúster de EMR dentro de una subredprivada conectada a una instancia de NAT que reside en una subred pública.

133

Page 141: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

Subredes compartidas

El uso compartido de la VPC permite a los clientes compartir subredes con otras cuentas de AWS dentrode la misma organización de AWS. Puede lanzar clústeres de Amazon EMR en subredes compartidaspúblicas o privadas, con las siguientes salvedades.

El propietario de la subred deben compartir una subred con usted antes de lanzar un clúster de AmazonEMR en ella. Sin embargo, las subredes compartidas se pueden dejar de compartir más adelante. Paraobtener más información, consulte Uso de VPC compartidas. Cuando un clúster se lanza en una subredcompartida y esa subred compartida se deja de compartir, es posible que observe comportamientosespecíficos basados en el estado del clúster de Amazon EMR cuando la subred se deja de compartir.

• La subred se deja de compartir antes de que el clúster se haya lanzado correctamente: si el propietariodeja de compartir la VPC o la subred de Amazon mientras que el participante se está lanzando unclúster, es posible que el clúster no se inicie o que se inicialice parcialmente sin aprovisionar todas lasinstancias solicitadas.

• La subred se deja de compartir después de que el clúster se haya lanzado correctamente: cuandoel propietario deja de compartir una subred o VPC de Amazon con el participante, los clústeres delparticipante no podrán cambiar de tamaño para añadir nuevas instancias o para sustituir instancias enmal estado.

134

Page 142: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

Cuando se lanza un clúster de Amazon EMR, se crean varios grupos de seguridad. En una subredcompartida, el participante de la subred controla estos grupos de seguridad. El propietario de la subredpueden ver estos grupos de seguridad, pero no puede realizar ninguna acción en ellos. Si el propietariode la subred quiere eliminar o modificar el grupo de seguridad, el participante que ha creado el grupo deseguridad debe realizar la acción.

Configuración de una VPC para alojar clústeresAntes de poder lanzar clústeres en una VPC, debe crear una VPC y una subred. Para subredes públicas,debe crear una gateway de Internet y asociarla a la subred. Las siguientes instrucciones describen cómocrear una VPC capaz de alojar clústeres de Amazon EMR.

Para crear una subred para ejecutar clústeres de Amazon EMR

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En la barra de navegación, seleccione la región en la que se va a ejecutar el clúster.3. Elija Start VPC Wizard.4. Elija la configuración de VPC seleccionando una de las siguientes opciones:

• VPC with a Single Public Subnet (VPC con una única subred pública)—: seleccione esta opciónsi los datos utilizados en el clúster están disponibles en Internet (por ejemplo, en Amazon S3 o enAmazon RDS).

• VPC with Public and Private subnets and Hardware VPN Access (VPC con subredes públicas yprivadas, y acceso a VPN de hardware)—: seleccione esta opción para utilizar una subred privadao si los datos de la aplicación se almacenan en su propia red (por ejemplo, en una base de datosde Oracle). Esta opción también le permite incluir subredes públicas dentro de la misma VPC, comosubredes privadas.

5. Confirme la configuración de VPC. Las imágenes muestran las situaciones solo pública, así cómocomo privada y pública.

135

Page 143: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

• Para trabajar con Amazon EMR, la VPC con una subred pública debe tener una gateway de Internety una subred.

Para una VPC en una subred privada, todas las instancias EC2 deben tener, como mínimo,una ruta a Amazon EMR a través de la interfaz de red elástica. En la consola, esto se configuraautomáticamente.

• Utilice un espacio de direcciones IP privadas para que su VPC garantice una resolución de nombresde host de DNS adecuada; de lo contrario, podría experimentar errores de clúster de Amazon EMR.Esto incluye los siguientes rangos de direcciones IP:• 10.0.0.0 - 10.255.255.255• 172.16.0.0 - 172.31.255.255• 192.168.0.0 - 192.168.255.255

• Elija Use a NAT instance instead (Utilizar una instancia NAT) y seleccione las opciones quenecesite.

• Si lo desea, elija Add endpoints for S3 to your subnets (Añadir puntos de enlace para S3 a lassubredes).

• Compruebe que la opción Enable DNS hostnames (Habilitar nombres de host DNS) estáseleccionada. Tiene la opción de habilitar nombres de host DNS al crear la VPC. Para cambiar laconfiguración de los nombres de host DNS, seleccione la VPC en la lista de VPC y, a continuación,elija Edit (Editar) en el panel de detalles. Para crear una entrada de DNS que no incluya unnombre de dominio, cree un valor para DHCP Options Set (Conjunto de opciones de DHCP) y,a continuación, asócielo a la VPC. No puede editar el nombre de dominio utilizando la consoladespués de haber creado el conjunto de opciones de DNS.

Para obtener más información, consulte Utilización de DNS con su VPC.• Es una práctica recomendada con Hadoop y aplicaciones relacionadas garantizar la resolución

del nombre de dominio completo (FQDN) para los nodos. Para garantizar una resolución de DNSadecuada, configure una VPC que incluya un conjunto de opciones de DHCP cuyos parámetros sedefinan con los valores siguientes:• domain-name = ec2.internal

Utilice ec2.internal si su región es US East (N. Virginia). Para las demás regiones, utilicenombre-región.compute.internal. Para ver ejemplos de us-west-2, utilice us-

136

Page 144: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

west-2.compute.internal. Para la región AWS GovCloud (US-West), utilice us-gov-west-1.compute.internal.

• domain-name-servers = AmazonProvidedDNS

Para obtener más información, consulte Conjuntos de opciones de DHCP en la Guía del usuario deAmazon VPC.

6. Seleccione Create VPC. Si está creando una instancia NAT, puede tardar unos minutos encompletarse.

Después de haber creado la VPC, vaya a la página Subnets (Subredes) y anote el identificador de una delas subredes de la VPC. Utilice esta información al lanzar el clúster de EMR en la VPC.

Lanzamiento de clústeres en una VPCDespués de tener una subred configurada para alojar clústeres de Amazon EMR, lance el clúster en dichasubred especificando el identificador de subred asociado al crear el clúster.

Note

Amazon EMR admite subredes privadas en las versiones 4.2 y posteriores.

Cuando se lanza el clúster, Amazon EMR añade grupos de seguridad en función de si el clúster se lanzaen subredes privadas o públicas de VPC. Todos los grupos de seguridad permiten la entrada en el puerto8443 para comunicarse con el servicio de Amazon EMR, pero los rangos de direcciones IP varían para lassubredes públicas y las privadas. Amazon EMR administra todos estos grupos de seguridad y es posibleque tenga que añadir direcciones IP adicionales al rango de AWS a lo largo del tiempo. Para obtener másinformación, consulte Control del tráfico de red con grupos de seguridad (p. 291).

Para administrar el clúster en una VPC, Amazon EMR asocia un dispositivo de red al nodo principal y loadministra a través de este dispositivo. Puede ver este dispositivo mediante la acción de la API de AmazonEC2 DescribeInstances. Si modifica este dispositivo de algún modo, el clúster podría fallar.

Para lanzar un clúster en una VPC utilizando la consola de Amazon EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En la sección Hardware Configuration (Configuración de hardware), para Network (Red), seleccione el

ID de una red de VPC que haya creado con anterioridad.5. En EC2 Subnet (Subred de EC2), seleccione el ID de una subred que haya creado con anterioridad.

a. Si la subred privada está configurada correctamente con opciones de punto de enlace de S3e instancia NAT, se muestra (EMR Ready) (Lista para EMR) encima de los identificadores ynombres de subred.

b. Si la subred privada no tiene una instancia NAT o un punto de enlace de S3, puede configurarloeligiendo Add S3 endpoint and NAT instance (Añadir punto de enlace de S3 e instancia NAT),Add S3 endpoint (Añadir punto de enlace de S3) o Add NAT instance (Añadir instancia NAT).Seleccione las opciones que desee para la instancia NAT y el punto de enlace de S3 y elijaConfigure (Configurar).

Important

Para crear una instancia NAT desde Amazon EMR, necesita lospermisos ec2:CreateRoute, ec2:RevokeSecurityGroupEgress,ec2:AuthorizeSecurityGroupEgress,cloudformation:DescribeStackEvents y cloudformation:CreateStack.

137

Page 145: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

Note

No existe un costo adicional por lanzar una instancia EC2 para su dispositivo NAT.6. Continúe con la creación del clúster.

Para lanzar un clúster en una VPC utilizando la AWS CLI

Note

La AWS CLI no proporciona una forma de crear una instancia NAT automáticamente y conectarlaa su subred privada. Sin embargo, para crear un punto de enlace de S3 en su subred, puedeutilizar los comandos de la CLI de Amazon VPC. Utilice la consola para crear instancias NAT ylanzar clústeres en una subred privada.

Una vez que la VPC esté configurada, puede lanzar clústeres de EMR en ella utilizando el subcomandocreate-cluster con el parámetro --ec2-attributes. Utilice el parámetro --ec2-attributes paraespecificar la subred de VPC para el clúster.

• Para crear un clúster en una subred específica, escriba el siguiente comando, sustituya myKey por elnombre del par de claves de EC2 y sustituya 77XXXX03 por el ID de subred.

aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey,SubnetId=subnet-77XXXX03 --instance-type m5.xlarge --instance-count 3

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos losnodos utilizan el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de Amazon EMR predeterminado y elperfil de instancia EC2, escriba aws emr create-default-roles para crearlos antes deescribir el subcomando create-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consulte lareferencia de la AWS CLI.

Restricción de permisos a una VPC que utiliza IAMAl lanzar un clúster en una VPC, puede utilizar AWS Identity and Access Management (IAM) para controlarel acceso a los clústeres y restringir acciones mediante políticas, de la misma forma que lo haría conlos clústeres lanzados en EC2-Classic. Para obtener más información acerca de IAM, consulte Guía delusuario de IAM.

También puede utilizar IAM para controlar quién puede crear y administrar subredes. Para obtener másinformación sobre la administración de políticas y acciones en Amazon EC2 y Amazon VPC, consultePolíticas de IAM para Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

De forma predeterminada, todos los usuarios de IAM pueden ver todas las subredes de la cuenta ycualquier usuario puede lanzar un clúster en cualquier subred.

Puede limitar el acceso a la posibilidad de administrar la subred, a la vez que permite a los usuarioslanzar clústeres en subredes. Para hacerlo, cree una cuenta de usuario que tenga permisos para creary configurar subredes y una segunda cuenta de usuario que pueda lanzar clústeres, pero que no puedamodificar la configuración de Amazon VPC.

138

Page 146: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de redes

Política de Amazon S3 mínima para subred privadaEn el caso de las subredes privadas, como mínimo debe proporcionar a Amazon EMR la capacidad deacceder a los repositorios de Amazon Linux. Con Amazon EMR 5.25.0 o posterior, para habilitar el accesode un clic al servidor del historial de Spark persistente, debe permitir a Amazon EMR el acceso al bucketdel sistema que recopila los registros de eventos de Spark. Para obtener más información, consulteAcceso de un clic al servidor del historial de Spark persistente.

Usted debe determinar las restricciones de política que satisfacen sus necesidades empresariales. Porejemplo, puede especificar la región "packages.us-east-1.amazonaws.com" para evitar un nombre debucket de S3 ambiguo. En el siguiente ejemplo de política se proporcionan permisos para acceder a losrepositorios de Amazon Linux y al bucket del sistema EMR para recopilar registros de eventos de Spark.Sustituya MyRegion por la región en la que residen sus buckets de registros, por ejemplo us-east-1.

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] }, { "Sid": "EnableApplicationHistory", "Effect": "Allow", "Principal": "*", "Action": [ "s3:Put*", "s3:Get*", "s3:Create*", "s3:Abort*", "s3:List*" ], "Resource": [ "arn:aws:s3:::prod.MyRegion.appinfo.src/*" ] } ]}

Más recursos para obtener información sobre VPCUtilice los siguientes temas para obtener más información sobre las VPC y las subredes.

• Subredes privadas en una VPC• Escenario 2: VPC con subredes públicas y privadas (NAT)• Instancias NAT• Alta disponibilidad para instancias NAT de Amazon VPC: un ejemplo

• Subredes públicas en una VPC• Escenario 1: VPC con una única subred pública

• Información de VPC general• Guía del usuario de Amazon VPC• Interconexión de VPC

139

Page 147: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

• Uso de interfaces de red elásticas con una VPC• Securely connect to Linux instances running in a private VPC

Creación de un clúster con flotas de instancias ogrupos de instancias uniformesAl crear un clúster y especificar la configuración del nodo principal, nodos secundarios y nodos detareas, tiene dos opciones de configuración. Puede utilizar flotas de instancias o grupos de instanciasuniformes. La opción de configuración que elija se aplica a todos los nodos, se aplica durante toda la vidaútil del clúster y las flotas de instancias y los grupos de instancias no pueden coexistir en un clúster. Laconfiguración de las flotas de instancias está disponible en la versión 4.8.0 de Amazon EMR y posteriores,excluyendo las versiones 5.0.x.

Puede utilizar la consola de EMR, la AWS CLI o la API de EMR para crear clústeres con cualquierconfiguración. Al utilizar el comando create-cluster desde la AWS CLI, puede utilizar los parámetros--instance-fleets para crear el clúster utilizando las flotas de instancias o, como opción, utilizar losparámetros --instance-groups para crearlo usando grupos de instancias uniformes.

Lo mismo sucede utilizando la API de EMR. Puede utilizar la configuración InstanceGroupspara especificar una matriz de objetos InstanceGroupConfig o bien utilizar la configuraciónInstanceFleets para especificar una matriz de objetos InstanceFleetConfig.

En la consola de EMR, si utiliza la configuración predeterminada de las Quick Options (Opciones rápidas)al crear un clúster, Amazon EMR aplica la configuración de los grupos de instancias uniformes al clústery utiliza instancias bajo demanda. Para utilizar las instancias de spot con grupos de instancias uniformeso para configurar las flotas de instancias y otras personalizaciones, elija Advanced Options (Opcionesavanzadas).

Tip

Para replicar de forma rápida y sencilla un clúster que ya haya creado, Amazon EMR le ofrecedos opciones en la consola. Puede clonar el clúster o generar un comando de CLI createcluster. En primer lugar, elija Cluster list (Lista de clústeres) y, a continuación, elija el clústerque desea replicar. Elija AWS CLI export (Exportación de la CLI de AWS) para que AmazonEMR genere el comando create cluster equivalente de la CLI para el clúster que, acontinuación, puede copiar y pegar. Elija el botón Clone (Clonar) para que Amazon EMR repliquesu configuración de la consola. Amazon EMR le muestra el último paso de las Advanced Options(Opciones avanzadas) para que confirme la configuración del clúster. Puede elegir Create cluster(Crear clúster) para crear el clúster nuevo (con el mismo nombre y un ID de clúster diferente) opuede elegir Previous (Anterior) para volver y cambiar la configuración.

Flotas de instanciasLa configuración de flotas de instancias ofrece la más amplia variedad de opciones de aprovisionamientopara instancias EC2. Cada tipo de nodo tiene una sola flota de instancia y la flota de instancia de tareaes opcional. Para cada flota de instancia, debe especificar hasta cinco tipos de instancia que se puedenaprovisionar como instancias bajo demanda e instancias de spot. Para las flotas de instancias secundariasy de tareas, se asigna una capacidad de destino para las instancias bajo demanda y otra para lasinstancias de spot. Amazon EMR elige cualquier combinación de los cinco tipos de instancias parasatisfacer las capacidades de destino, y aprovisiona tanto instancias bajo demanda como instancias despot. Para el tipo de nodo principal, Amazon EMR elige un único tipo de instancia desde la lista de hastacinco y especifica si está aprovisionado como instancia bajo demanda o de spot. Las flotas de instanciastambién ofrecen opciones adicionales para compras de instancias de spot, que incluyen una duracióndefinida (también conocido como bloque de spot) y un tiempo de espera que especifica la acción que

140

Page 148: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

adoptar en caso de que la capacidad de spot no se puede aprovisionar. Para obtener más información,consulte Configuración de flotas de instancias (p. 141).

Grupos de instancias uniformesLos grupos de instancias uniformes ofrecen una configuración simplificada. Cada clúster de Amazon EMRpuede incluir hasta 50 grupos de instancias: un grupo de instancias principales que contiene una instanciaEC2, un grupo de instancias secundarias que contiene una o varias instancias EC2 y hasta 48 gruposde instancias de tareas opcionales. Cada grupo de instancias secundarias y de tareas puede contenercualquier número de instancias EC2. Puede escalar cada grupo de instancias añadiendo y eliminandoinstancias EC2 manualmente o puede configurar el escalado automático. Para obtener más informaciónacerca de la configuración de grupos de instancias uniformes, consulte Configuración de grupos deinstancias uniformes (p. 150). Para obtener información sobre la adición y eliminación de instancias,consulte Escalado de recursos de clúster (p. 370).

Temas• Configuración de flotas de instancias (p. 141)• Configuración de grupos de instancias uniformes (p. 150)

Configuración de flotas de instanciasLa configuración de flotas de instancias para un clúster ofrece la más amplia variedad de opciones deaprovisionamiento para instancias EC2. Con las flotas de instancias, debe especificar las capacidades dedestino para las instancias bajo demanda y las instancias de spot dentro de cada flota. Cuando se lanza elclúster, Amazon EMR aprovisiona instancias hasta que se atienden los destinos. Puede especificar hastacinco tipos de instancia EC2 por flota para que los utilice Amazon EMR a la hora de atender los destinos.También puede seleccionar varias subredes para distintas zonas de disponibilidad. Cuando Amazon EMRlanza el clúster, busca en esas subredes para encontrar las instancias y las opciones de compra queespecifique.

Mientras un clúster se está ejecutando, si Amazon EC2 reclama una instancia de spot debido a unincremento de los precios, o una instancia devuelve un error, Amazon EMR intenta sustituir la instanciapor cualquiera de los tipos de instancias especificados. De ese modo, resulta más sencillo recuperarla capacidad durante un pico de los precios de spot. Las flotas de instancia le permiten desarrollar unaestrategia de asignación de recursos flexible y elástica para cada tipo de nodo. Por ejemplo, dentro delas flotas específicas, puede tener un núcleo de capacidad bajo demanda complementado con capacidadde spot más barata en caso de que esté disponible y, a continuación, puede cambiar a capacidad bajodemanda si la opción de spot si no está disponible en su precio.

Note

La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 yposteriores de Amazon EMR, excluyendo la 5.0.0 y la 5.0.3.

Resumen de características clave

• Una flota de instancias, y solo una, por tipo de nodo (principal, secundario, de tareas). Hasta cinco tiposde instancia EC2 especificados para cada flota.

• Amazon EMR elige cualquiera o los cinco tipos de instancia EC2 para aprovisionar con las opciones decompra de spot y bajo demanda.

• Establezca las capacidades de destino para instancias de spot y bajo demanda para la flota deinstancias secundarias y la flota de instancias de tareas. Utilice vCPU o una unidad genérica asignadaa cada instancia EC2 que se tiene en cuenta para los destinos. Amazon EMR aprovisiona instanciashasta que se ha satisfecho por completo cada capacidad de destino. Para la flota maestra, el destino essiempre uno.

141

Page 149: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

• Elija una subred (zona de disponibilidad) o un rango. Amazon EMR aprovisiona capacidad en la zona dedisponibilidad que sea la mejor opción.

• Cuando se especifica una capacidad de destino para las instancias de spot:• Para cada tipo de instancia, especifique un precio máximo de spot. Amazon EMR aprovisiona las

instancias de spot si el precio de spot está por debajo del precio de spot máximo. Solo tiene que pagarel precio de spot, que no es necesariamente el precio de spot máximo.

• De forma opcional, especifique una duración definida (también conocida como bloque de spot) paracada flota. Las instancias de spot terminan únicamente después de que caduque la duración definida.

• Para cada flota, defina un período de tiempo de espera para aprovisionamiento de instancias de spot.Si Amazon EMR no puede aprovisionar la capacidad de spot, puede terminar el clúster o cambiarlo aaprovisionamiento de capacidad bajo demanda en su lugar.

Opciones de flota de instancias

Utilice las siguientes directrices para comprender las opciones de flota de instancia.

Configuración de las capacidades de destino

Especifique las capacidades de destino que desee para la flota de instancias secundarias y la flota deinstancias de tareas. Cuando lo haga, eso determina el número de instancias bajo demanda e instanciasde spot que aprovisiona Amazon EMR. Cuando se especifica una instancia, decide la cantidad de cadainstancia que se tiene en cuenta para el destino. Cuando se aprovisiona una instancia bajo demanda, setiene en cuenta para el destino bajo demanda. Lo mismo sucede para las instancias de spot. A diferenciade las flota de instancias secundarias y la flota de instancias de tareas, la flota de instancias principales essiempre una instancia. Por tanto, la capacidad de destino para esta flota es siempre uno.

Cuando se utiliza la consola, las vCPU del tipo de instancia EC2 se utilizan como recuento para lascapacidades de destino de forma predeterminada. Puede cambiar esto a Generic units (Unidadesgenéricas) y, a continuación, especificar el recuento de cada tipo de instancia EC2. Cuando se utiliza laAWS CLI, asigna manualmente unidades genéricas para cada tipo de instancia.

Important

Cuando elige un tipo de instancia mediante la Consola de administración de AWS, el númerode vCPU mostrado para cada tipo de instancia es el número de YARN vcores para dicho tipo deinstancia, no el número de EC2 vCPU para dicho tipo de instancia. Para obtener más informaciónacerca del número de vCPU para cada tipo de instancia, consulte Tipos de instancias de AmazonEC2.

Para cada flota, debe especificar hasta cinco tipos de instancias EC2. Amazon EMR elige cualquiercombinación de estos tipos de instancias EC2 satisfacer sus capacidades de destino. Dado que AmazonEMR desea rellenar la capacidad de destino por completo, podría producirse un sobreuso. Por ejemplo, sihay dos unidades no atendidas y Amazon EMR solo puede aprovisionar una instancia con un recuento decinco unidades, la instancia aún se aprovisiona, lo que significa que la capacidad de destino se supera entres unidades.

Si reduce la capacidad de destino para cambiar el tamaño de un clúster en ejecución, Amazon EMRintenta completar tareas de aplicación y termina instancias para satisfacer el nuevo destino. Para obtenermás información, consulte Terminar al completar la tarea (p. 396). Amazon EMR tiene un tiempo deespera de 60 minutos para completar una operación de cambio de tamaño. En algunos casos, es posibleque un nodo aún tenga tareas en ejecución pasados 60 minutos y Amazon EMR notifica que la operaciónde cambio de tamaño se ha realizado correctamente y que no se ha satisfecho el nuevo destino.

Opciones de instancias de spot

Debe especificar un Maximum Spot price (Precio de spot máximo) para cada uno de los cinco tipos deinstancias de una flota. Puede configurar este precio como un porcentaje del precio bajo demanda o como

142

Page 150: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

un importe específico. Amazon EMR aprovisiona instancias de spot si el precio de spot actual en una zonade disponibilidad está por debajo del precio de spot máximo especificado. Solo tiene que pagar el preciode spot, que no es necesariamente el precio de spot máximo.

Puede especificar una Defined duration (Duración definida) para las instancias de spot de una flota.Cuando cambia el precio de spot, Amazon EMR no termina instancias hasta que la caduca la Definedduration (Duración definida). Cuando se selecciona esta opción, se aplican los precios de duracióndefinida. Si no especifica una duración definida, las instancias terminan en cuanto el precio de spot superael precio de spot máximo. Para obtener más información, consulte Especificación de una duración parainstancias de spot y Precios de instancias de spot de Amazon EC2 para conocer los precios de duracióndefinida.

Para cada flota, también se define un Provisioning timeout (Tiempo de espera de aprovisionamiento).El tiempo de espera se aplica cuando el clúster aprovisiona capacidad cuando se crea y no puedeaprovisionar suficientes instancias de spot suficientes para atender la capacidad de destino de acuerdocon sus especificaciones. Especifique el periodo de tiempo de espera y la medida a tomar. Puede hacerque el clúster se termine o que cambie a aprovisionamiento de capacidad bajo demanda para satisfacerla capacidad de spot restante. Al elegir para cambiar a bajo demanda, la capacidad de spot restante seañade de forma eficaz a la capacidad de destino bajo demanda cuando finaliza el tiempo de espera.

Para obtener más información sobre las instancias de spot, consulte Instancias de spot en la Guía delusuario de Amazon EC2 para instancias de Linux.

Opciones para varias subredes (zonas de disponibilidad)

Cuando utilice flotas de instancia, puede especificar varias subredes de EC2 dentro de una VPC, cadauna de ellas correspondiente a una zona de disponibilidad diferente. Si utiliza EC2-Classic, las zonas dedisponibilidad se especifican de forma explícita. Amazon EMR identifica la mejor zona de disponibilidadpara lanzar las instancias de acuerdo con sus especificaciones de la flota. Las instancias se aprovisionansiempre en una única zona de disponibilidad. Puede seleccionar subredes privadas o subredes públicas,pero no puede combinarlas y las subredes que especifique deben estar dentro de la misma VPC.

Configuración del nodo principal

Dado que la flota de instancias principales es solo una sola instancia, su configuración es ligeramentedistinta de las flotas de instancias secundarias y de tareas. Solo selecciona bajo demanda o de spot parala flota de instancias principales, ya que se compone de una única instancia. Si utiliza la consola para crearla flota de instancias, la capacidad de destino para la opción de compra que seleccione se define en 1. Siutiliza la AWS CLI, defina siempre TargetSpotCapacity o TargetOnDemandCapacity en 1, segúnproceda. Puedes elegir hasta cinco tipos de instancia para la flota de instancias principales. Sin embargo,a diferencia de las flotas de instancias secundarias y de tareas, donde Amazon EMR podría aprovisionarvarias instancias de tipos distintos, Amazon EMR selecciona un único tipo de instancia para aprovisionar laflota de instancias principales.

Uso de la consola para configurar flotas de instancias

Para crear un clúster mediante flotas de instancias, utilice la configuración de Advanced options (Opcionesavanzadas) de la consola de Amazon EMR.

Para crear un clúster con flotas de instancias mediante la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas), escriba las opciones de Software

Configuration (Configuración de software) y, a continuación, elija Next (Siguiente).4. Elija Instance fleets (Flotas de instancias).

143

Page 151: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

5. En Network (Red), introduzca un valor. Si elige una VPC para Network (Red), seleccione una solasubred en EC2 Subnet (Subred de EC2) única o utilice CTRL + clic para elegir varias subredes deEC2. Las subredes que seleccione deben ser del mismo tipo (públicas o privadas). Si elige solo una,el clúster se lanza en dicha subred. Si elige un grupo, se elige la subred más adecuada del grupocuando se lanza el clúster.

Note

La cuenta y la región podrían darle la opción de elegir Launch into EC2-Classic (Lanzaren EC2-Classic) para Network (Red). Si elige esta opción, seleccione una o varias en EC2Availability Zones (Zonas de disponibilidad de EC2) en lugar de EC2 Subnets (Subredes deEC2). Para obtener más información, consulte Amazon EC2 y Amazon VPC en la Guía delusuario de Amazon EC2 para instancias de Linux.

6. Dentro de cada fila de tipo de nodo, en Node type (Tipo de nodo), si desea cambiar el nombrepredeterminado de una flota de instancias, haga clic en el icono de lápiz y, a continuación, escriba unnombre fácil de recordar. Si desea eliminar la flota de instancias Task (Tareas), haga clic en el iconoX.

7. En Target capacity (Capacidad de destino), seleccione opciones de acuerdo con las siguientesdirectrices:

• Elija cómo desea definir la Target capacity (Capacidad de destino). Si elige vCPU, se utilizael número de vcores de YARN de cada Fleet instance type (Tipo de instancias de la flota)como capacidad ponderada. Si elige Generic units (Unidades genéricas), se asigna un númeropersonalizado para cada capacidad de destino y, a continuación, se asigna una capacidadponderada personalizada a cada tipo de instancia. Aparece un campo para este fin para cadainstancia que añada en Fleet instance type (Tipo de instancias de la flota).

• Para el nodo Master (Principal), seleccione si la instancia es On-demand (Bajo demanda) o Spot(De spot).

• Para los nodos Core (Secundarios) y Task (De tareas), escriba las capacidades de destino para On-demand (Bajo demanda) y Spot (De spot). Amazon EMR aprovisiona los Fleet instance types (Tipode instancias de la flota) que especifique hasta que se consiguen estas capacidades.

8. En Fleet instance types (Tipo de instancias de la flota) para cada Node type (Tipo de nodo), elijaopciones de acuerdo con las directrices siguientes:

• Seleccione Add/remove instance types to fleet (Añadir/quitar tipos de instancias en la flota) y, acontinuación, elija hasta cinco tipos de instancias en la lista. Amazon EMR podría elegir aprovisionarcualquier combinación de estos tipos de instancias cuando al lanzar el clúster.

• Si un tipo de nodo tiene configurada una Target capacity (Capacidad de destino) para Spot (Despot), elija las opciones de Maximum Spot price (Precio de spot máximo). Puede introducir su preciode spot máximo como % of On-Demand (% bajo demanda) o puede escribir un importe en USD enDollars ($) (Dólares ($)).

Tip

Coloque el cursor sobre la información contextual de Maximum Spot price (Precio de spotmáximo) para ver el precio de spot de todas las zonas de disponibilidad de la región actual.El menor precio de spot se muestra en verde. Puede utilizar esta información para justificarsu selección de EC2 Subnet (Subred de EC2).

• Si elige Default units (Unidades predeterminadas) para Target capacity (Capacidad de destino),introduzca la capacidad ponderada que desea asignar a cada tipo de instancia en el cuadro Eachinstance counts as (Cada instancia cuenta como).

• Para que los volúmenes de EBS se asocien al tipo de instancia cuando esta se aprovisione, hagaclic en el icono de lápiz situdo junto a EBS Storage (Almacenamiento de EBS) y, a continuación,introduzca las opciones de configuración de EBS.

9. Si ha establecido Target capacity (Capacidad de destino) para Spot (De spot), elija Advanced Spotoptions (Opciones avanzadas de Spot) de acuerdo con las directrices siguientes:

144

Page 152: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

• Defined duration (Duración definida): si se deja el valor predeterminado, Not set (Sin definir), lasinstancias de spot se terminan en cuanto el precio de spot supera el precio de spot máximo ocuando se termina el clúster. Si define un valor, las instancias de spot no terminan hasta que laduración haya vencido.

Important

Si establece una Defined duration (Duración definida), se aplican los precios especialesde duración definida. Para obtener información sobre los precios, consulte Precios deinstancias de spot de Amazon EC2.

• Provisioning timeout (Tiempo de espera de aprovisionamiento): utilice esta opción para controlar loque hace Amazon EMR cuando no puede aprovisionar instancias de spot entre los Fleet instancetypes (Tipos de instancias de la flota) especificados. Introduzca un periodo de tiempo de esperaen minutos y, a continuación, elija si desea Terminate the cluster (Terminar el clúster) o Switch toprovisioning On-Demand Instances (Cambiar al aprovisionamiento de instancias bajo demanda).Si decide cambiar a instancias bajo demanda, la capacidad ponderada de las instancias bajodemanda se tiene en cuenta en la capacidad de destino para las instancias de spot y Amazon EMRaprovisiona las instancias bajo demanda hasta que se completa la capacidad de destino para lasinstancias de spot.

10. Elija Next (Siguiente), modifique otras opciones del clúster y láncelo.

Uso de la CLI para configurar flotas de instancias

• Para crear y lanzar un clúster con flotas de instancias, utilice el comando create-cluster junto conparámetros --instance-fleet.

• Para obtener los detalles de configuración de las flotas de instancias en un clúster, utilice el comandolist-instance-fleets.

• Para realizar cambios en la capacidad de destino de una flota de instancias de destino, utilice elcomando modify-instance-fleet.

• Para añadir una flota de instancias de tareas a un clúster que no dispone de una, utilice el comandoadd-instance-fleet.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad. Sepueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos o reemplácelos porun signo de intercalación (^).

Crear un clúster con la configuración de flotas de instancia

Los siguientes ejemplos muestran comandos create-cluster con una variedad de opciones que puedecombinar.

Note

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil de instanciaEC2, utilice aws emr create-default-roles para crearlos antes de utilizar el comandocreate-cluster.

Example Ejemplo: VPC predeterminada, principal bajo demanda, secundarias bajo demanda contipo de instancia única

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \

145

Page 153: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

--instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']

Example Ejemplo: VPC predeterminada, principal de spot, secundarias de spot con tipo deinstancia única

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \--instance-fleets InstanceFleetType=MASTER,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \InstanceFleetType=CORE,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

Example Ejemplo: subred EC2 única, principal bajo demanda, secundarias mixtas con tipo deinstancia única

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \--instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']

Example Ejemplo: intervalo de subredes EC2, principal bajo demanda, secundarias de spot convarios tipos de instancias ponderados, duración definida y tiempo de espera para spot

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \--instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\'{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}

Example Ejemplo: intervalo de subredes EC2, principal bajo demanda, secundarias y de tareasmixtas con varios tipos de instancias ponderados, duración definida y tiempo de espera parainstancias de spot principales

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \--instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\'{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\

146

Page 154: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']

Example Ejemplo: VPC predeterminada, instancia principal de spot, no secundaria o de tareas,configuración de EBS

aws emr create-cluster --release-label emr 5.3.1 -service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \--instance-fleets InstanceFleetType=MASTER,TargetSpotCapacity=1,\LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']

Example Uso de un archivo de configuración JSON

Puede configurar parámetros de flota de instancias en un archivo JSON y, a continuación, hacer referenciaal archivo JSON como único parámetro para las flotas de instancias. Por ejemplo, el siguiente comandohace referencia a un archivo de configuración JSON, my-fleet-config.json JSON:

aws emr create-cluster --release-label emr-5.2.0 --servicerole EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \--instance-fleets file://my-fleet-config.json

my-fleet-config.json especifica flotas de instancias principales, secundarias y de tareas como se muestraen el siguiente ejemplo. La flota de instancias secundarias utiliza un precio de spot máximo (BidPrice)como porcentaje del precio bajo demanda, mientras que las flotas de instancias de tareas y principalesutilizan un precio de spot máximo (BidPriceAsPercentageofOnDemandPrice) como cadena en USD.

[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" }

147

Page 155: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

}, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }]

Obtener detalles de configuración de flotas de instancias en un clúster

Utilice el comando list-instance-fleets para obtener detalles de configuración de las flotas deinstancias en un clúster. El comando toma un ID de clúster como entrada. El siguiente ejemplo ilustra elcomando y su resultado para un clúster que contiene un grupo de instancias de tareas principal y un grupode instancias de tareas secundario. Para ver la sintaxis de respuesta completa, consulte ListInstanceFleetsen la Amazon EMR API Reference.

list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'

{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } },

148

Page 156: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

"ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ]}

Modificar capacidades de destino para una flota de instancias

Utilice el comando modify-instance-fleet para especificar nuevas capacidades de destino para unaflota de instancias. Debe especificar el ID del clúster y el ID de la flota de instancias. Utilice el comandolist-instance-fleets para recuperar los ID de la flota de instancias.

aws emr modify-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' /--instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1

Añadir una flota de instancias de tareas a un clúster

Si un clúster tiene únicamente flotas de instancias principales y secundarias, puede utilizar el comandoadd-instance-fleet para añadir una flota de instancias de tareas. Solo puede utilizar esto para añadirlas flotas de instancias de tareas.

aws emr add-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,/LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},/InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

149

Page 157: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

Configuración de grupos de instancias uniformesCon la configuración de grupos de instancias, cada tipo de nodo (principal, secundario o de tareas) secompone del mismo tipo de instancia y las mismas opciones de compra para las instancias: bajo demandao de spot. Estos ajustes se especifican al crear un grupo de instancias. No se pueden cambiar másadelante. Puede, sin embargo, añadir instancias del mismo tipo y opción de compra a los grupos instanciassecundarias y de tareas. También puede eliminar instancias.

Para agregar distintos tipos de instancia una vez creado un clúster, puede agregar grupos de instanciade tareas adicionales. Puede elegir distintos tipos de instancia y opciones de compra para cada grupo deinstancias. Para obtener más información, consulte Escalado de recursos de clúster (p. 370).

En esta sección se explica cómo crear un clúster con grupos de instancias uniformes. Para obtener másinformación sobre la modificación de un grupo de instancias existente añadiendo o eliminando instanciasde forma manual o con escalado automático, consulte Administración de clústeres (p. 309).

Uso de la consola para configurar grupos de instancias uniformesEl procedimiento siguiente trata sobre las Advanced options (Opciones avanzadas) que puede utilizar ala hora de crear un clúster. Mediante Quick options (Opciones rápidas) también se crea un clúster con laconfiguración de grupos de instancias. Para obtener más información sobre cómo utilizar las Quick Options(Opciones rápidas), consulte el tutorial de la sección Introducción.

Para crear un clúster con grupos de instancias uniformes mediante la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas), escriba las opciones de Software

Configuration (Configuración de software) y, a continuación, elija Next (Siguiente).4. En la pantalla Hardware Configuration (Configuración de hardware), deje seleccionado Uniform

instance groups (Grupos de instancias uniformes).5. Elija la Network (Red) y, a continuación, elija la EC2 Subnet (Subred de EC2) para el clúster. La

subred que elija está asociada a un grupo de disponibilidad, que se indica con cada subred. Paraobtener más información, consulte Configuración de redes (p. 129).

Note

La cuenta y la región podrían darle la opción de elegir Launch into EC2-Classic (Lanzar enEC2-Classic) para Network (Red). Si elige dicha opción, seleccione una EC2 Availability Zone(Zona de disponibilidad de EC2) en lugar de una EC2 Subnet (Subred de EC2). Para obtenermás información, consulte Amazon EC2 y Amazon VPC en la Guía del usuario de AmazonEC2 para instancias de Linux.

6. Dentro de cada fila Node type (Tipo de nodo):

• En Node type (Tipo de nodo), si desea cambiar el nombre predeterminado del grupo de instancias,haga clic en el icono de lápiz y, a continuación, introduzca un nombre fácil de recordar. Si deseaeliminar el grupo de instancias Task (De tareas), haga clic en el icono X. Elija Add task instancegroup (Añadir grupo de instancias de tareas) para añadir grupos de instancias Task (De tareas)adicionales.

• En Instance type (Tipo de instancia) haga clic en el icono de lápiz y, a continuación, elija el tipo deinstancia que desea utilizar para dicho tipo de nodo.

Important

Cuando elige un tipo de instancia mediante la Consola de administración de AWS, elnúmero de vCPU mostrado para cada tipo de instancia es el número de YARN vcores

150

Page 158: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguración de flotas de instancias o grupos de instancias

para dicho tipo de instancia, no el número de EC2 vCPU para dicho tipo de instancia. Paraobtener más información acerca del número de vCPU para cada tipo de instancia, consulteTipos de instancias de Amazon EC2.

• En Instance type (Tipo de instancia), haga clic en el icono del lápiz para Configurationsy, acontinuación, edite las configuraciones de aplicaciones para cada grupo de instancias.

• En Instance count (Recuento de instancias), escriba el número de instancias en que desea utilizarpara cada tipo de nodo.

• En Purchasing option (Opción de compra), elija On-demand (Bajo demanda) o Spot. Si elige Spot,seleccione una opción para el precio máximo de las instancias de spot. De forma predeterminada,está seleccionado Use on-demand as max price (Usar bajo demanda como precio máximo). Puedeseleccionar Set max $/h (Establecer $/h máx.) y, a continuación, introducir el precio máximo. Lazona de disponibilidad de la EC2 Subnet (Subred de EC2) que elija es inferior al Maximum Spotprice (Precio de spot máximo).

Tip

Desplace el ratón por la información contextual de Spot para ver el precio de spot actualde las zonas de disponibilidad de la región actual. El menor precio de spot se muestra enverde. Es posible que desee utilizar esta información para cambiar su selección de EC2Subnet (Subred de EC2).

• En Auto Scaling for Core and Task node types (Escalado automático para los tipos de nodossecundarios y de tareas), haga clic en el icono de lápiz y, a continuación, configure las opciones deescalado automático. Para obtener más información, consulte Uso del escalado automático con unapolítica personalizada para grupos de instancias (p. 382).

7. Elija Add task instance group (Añadir grupo de instancias de tareas) como desee y configure losajustes como se describe en el paso anterior.

8. Elija Next (Siguiente), modifique otras opciones del clúster y láncelo.

Uso de la AWS CLI para crear un clúster con grupos de instancias uniformes

Para especificar la configuración de grupos de instancias para un clúster con la AWS CLI, utilice elcomando create-cluster junto con el parámetro --instance-groups. Amazon EMR utiliza laopción de compra bajo demanda, a menos que se especifique el argumento BidPrice para un grupode instancias. Para obtener ejemplos de comandos create-cluster que lanzan grupos de instanciasuniformes con instancias bajo demanda y diversas opciones de clúster, escriba aws emr create-cluster help en la línea de comandos o consulte create-cluster en la AWS CLI Command Reference.

Puede utilizar la AWS CLI para crear grupos de instancias uniformes en un clúster que utilice instanciasde spot. El precio de spot que se ofrece depende de la zona de disponibilidad. Cuando se utiliza la CLI ola API, puede especificar la zona de disponibilidad bien con el argumento AvailabilityZone (si estáutilizando una red EC2-Classic) o el argumento SubnetID del parámetro --ec2-attributes . La zonade disponibilidad o la subred que seleccione se aplica al clúster, por lo que se utiliza para todos los gruposde instancias. Si no especifica ninguna zona de disponibilidad o subred de forma explícita, Amazon EMRselecciona la zona de disponibilidad con el menor precio de spot al lanzar el clúster.

El siguiente ejemplo muestra un comando create-cluster que crea grupos de instancias principales,secundarias y de tareas que utilizan instancias de spot. Sustituya myKey por el nombre de su par de clavesde EC2.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad. Sepueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos o reemplácelos porun signo de intercalación (^).

aws emr create-cluster --name "MySpotCluster" --release-label emr-5.30.0 \

151

Page 159: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDirectrices y prácticas recomendadas

--use-default-roles --ec2-attributes KeyName=myKey \--instance-groups InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,BidPrice=0.25 \InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=2,BidPrice=0.03 \InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=4,BidPrice=0.03 \InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=2,BidPrice=0.04

Uso del SDK de Java para crear un grupo de instancias

Puede instanciar un objeto InstanceGroupConfig que especifica la configuración de un grupo deinstancias para un clúster. Para utilizar instancias de spot, define las propiedades withBidPrice ywithMarket en el objeto InstanceGroupConfig. El código siguiente muestra cómo definir grupos deinstancias principales, secundarias y de tareas que ejecutan instancias de spot.

InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig() .withInstanceCount(1) .withInstanceRole("MASTER") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.25"); InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig() .withInstanceCount(4) .withInstanceRole("CORE") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.03"); InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig() .withInstanceCount(2) .withInstanceRole("TASK") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.10");

Directrices y prácticas recomendadas para laconfiguración de clústeresUtilice la orientación de esta sección como ayuda para determinar los tipos de instancias, las opciones decompra y la cantidad de almacenamiento para aprovisionar cada tipo de nodo en un clúster de EMR.

¿Qué tipo de instancia debería utilizar?Hay varias formas de añadir instancias EC2 a un clúster, que dependen de si utiliza la configuración degrupos de instancias o la configuración de flotas de instancias para el clúster.

• Grupos de instancias• Añada manualmente instancias del mismo tipo a los grupos de instancias de tareas y secundarias

existentes.• Añada manualmente un grupo de instancias de tareas, que pueden utilizar un tipo de instancia

diferente.• Configure el escalado automático en Amazon EMR para un grupo de instancias, añadiendo y

eliminando instancias automáticamente en función del valor de la métrica de Amazon CloudWatch queespecifique. Para obtener más información, consulte Escalado de recursos de clúster (p. 370).

• Flotas de instancias• Añadir una única flota de instancias de tarea.

152

Page 160: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDirectrices y prácticas recomendadas

• Cambiar la capacidad de destino de las instancias bajo demanda y de spot para las flotas deinstancias secundarias y de tareas. Para obtener más información, consulte Configuración de flotas deinstancias (p. 141).

Una forma de planificar las instancias del clúster consiste en ejecutar un clúster de prueba con un conjuntorepresentativo de datos de ejemplo y monitorizar la utilización de los nodos del clúster. Para obtener másinformación, consulte Ver y monitorizar un clúster (p. 309). Otra forma consiste en calcular la capacidadde las instancias que se estén planeando y comparar dicho valor con el tamaño de los datos.

En general, el tipo de nodo principal, que asigna tareas, no requiere una instancia EC2 con unagran potencia de procesamiento; las instancias EC2 para el tipo de nodo secundario, que procesantareas y almacenan datos en HDFS, necesitan tanto potencia de procesamiento como capacidad dealmacenamiento, las instancias EC2 para el tipo de nodo de tareas, que no almacenan datos, solonecesitan potencia de procesamiento. Para directrices acerca de las instancias EC2 disponibles y suconfiguración, consulte Configuración de instancias EC2 (p. 123).

Las siguientes directrices se aplican a la mayoría de los clústeres de Amazon EMR.

• El nodo principal no tiene grandes requisitos informáticos. Para la mayoría de clústeres de 50 o menosnodos, considere la posibilidad de utilizar una instancia m5.xlarge. Para clústeres de más de 50 nodos,considere el uso de m4.xlarge.

• Las necesidades informáticas de los nodos secundarios y de tareas dependen del tipo de procesamientoque realiza la aplicación. Muchos trabajos se pueden ejecutar en tipos de instancia m5.xlarge,consiguiendo un rendimiento equilibrado en términos de CPU, espacio en disco y entrada/salida. Si laaplicación tiene dependencias externas que introducen retrasos (como, por ejemplo, el rastreo web pararecopilación de datos), puede considerar ejecutar el clúster en instancias t2.medium para reducir costosmientras las instancias esperan a que finalicen las dependencias. Para mejorar el rendimiento, considerela posibilidad de ejecutar el clúster con instancias m4.xlarge para los nodos secundarios y de tareas. Sidistintas fases del clúster tienen diferentes necesidades de capacidad, puede empezar con un pequeñonúmero de nodos secundarios y aumentar o reducir el número de nodos de tareas para satisfacer losrequisitos de capacidad variable del flujo de trabajo.

• La mayoría de los clústeres de Amazon EMR pueden ejecutarse en tipos de instancias EC2 estándar,como m5.xlarge y m4.xlarge. Los clústeres con cálculo intensivo podrían beneficiarse de ejecutarse eninstancias de uso elevado de CPU, que tienen en proporción más CPU que RAM. Las aplicaciones debase de datos y almacenamiento en memoria caché podrían beneficiarse al ejecutarse en instanciasde memoria elevada. Las aplicaciones con uso intensivo de red y uso intensivo de CPU como análisis,NLP y aprendizaje virtual pueden beneficiarse de las instancias de informática en clúster, que ofrecenproporcionalmente recursos de CPU elevada y mayor rendimiento de red.

• La cantidad de datos que puede procesar depende de la capacidad de los nodos secundarios y deltamaño de los datos como entrada, durante el procesamiento y como salida. Los conjuntos de datosentrantes, intermedios y salientes residen en el clúster durante el procesamiento.

• De forma predeterminada, el número total de instancias EC2 que se pueden ejecutar en una únicacuenta de AWS es 20. Esto significa que el número total de nodos que puede tener en un clúster es 20.Para obtener más información sobre cómo solicitar el aumento de un límite para su cuenta, consulteLímites de los servicios de AWS.

¿Cuándo se deben utilizar las instancias de spot?Al lanzar un clúster en Amazon EMR, puede elegir lanzar instancias principales, secundarias y de tareasen instancias de spot. Dado que cada tipo de grupo de instancias desempeña un papel diferente enel clúster, hay distintas consecuencias al lanzar cada tipo de nodo en instancias de spot. No se puedecambiar una opción de compra de instancias mientras se ejecuta un clúster. Para cambiar de instanciasbajo demanda a instancias de spot o viceversa para el nodo principal y los nodos secundarios, debeterminar el clúster y lanzar uno nuevo. Para los nodos de tareas, puede lanzar un nuevo grupo deinstancias de tareas o una nueva flota de instancias y eliminar la anterior.

153

Page 161: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDirectrices y prácticas recomendadas

Temas• Configuración de Amazon EMR para evitar errores en los trabajos debidos a la terminación de

instancias de spot de los nodos de tareas (p. 154)• Nodo principal en una instancia de spot (p. 155)• Nodos secundarios en instancias de spot (p. 155)• Nodos de tareas en las instancias de spot (p. 155)• Configuraciones de instancias para escenarios de aplicaciones (p. 156)

Configuración de Amazon EMR para evitar errores en los trabajos debidos a laterminación de instancias de spot de los nodos de tareas

Como a menudo se utilizan las instancias de spot para ejecutar nodos de tarea, Amazon EMR tiene unafunción predeterminada para programar trabajos de YARN, de manera que la ejecución de los trabajosno produzca un error cuando se terminen los nodos de las tareas que se ejecutan en instancias de spot.Para ello, Amazon EMR permite que los procesos maestros de la aplicación solo se ejecuten en nodosprincipales. El proceso maestro de la aplicación controla la ejecución de los trabajos y necesita estar activodurante la vida útil del trabajo.

Para ello, Amazon EMR versión 5.19.0 y posteriores utiliza la característica integrada de etiquetas denodos de YARN. (Las versiones anteriores utilizaban un parche de código). Las propiedades de lasclasificaciones de configuración yarn-site y capacity-scheduler están configuradas de formapredeterminada, por lo que las clasificaciones capacity-scheduler y fair-scheduler de YARN puedenutilizar etiquetas de nodos. Amazon EMR etiqueta automáticamente los nodos principales con la etiquetaCORE y establece propiedades, de modo que los procesos maestros de la aplicación se programenúnicamente en nodos con la etiqueta CORE. La modificación manual de las propiedades relacionadas enlas clasificaciones de configuración yarn-site y capacity-scheduler, o directamente en los archivos XMLasociados, podría hacer que esta característica dejara de funcionar o modificar su funcionalidad.

Amazon EMR configura las siguientes propiedades con los valores indicados de forma predeterminada.Actúe con precaución al configurar estas propiedades.

• yarn-site (yarn-site.xml) en todos los nodos• yarn.node-labels.enabled: true

• yarn.node-labels.am.default-node-label-expression: 'CORE'

• yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'

• yarn.node-labels.configuration-type: 'distributed'

• yarn-site (yarn-site.xml) en los nodos principal y secundarios• yarn.nodemanager.node-labels.provider: 'config'

• yarn.nodemanager.node-labels.provider.configured-node-partition: 'CORE'

• capacity-scheduler (capacity-scheduler.xml) en todos los nodos• yarn.scheduler.capacity.root.accessible-node-labels: '*'

• yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity: 100

• yarn.scheduler.capacity.root.default.accessible-node-labels: '*'

• yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity:100

Note

A partir de la serie de lanzamiento de la versión 6.x de Amazon EMR, la función de etiquetasde nodo YARN está deshabilitada de forma predeterminada. De forma predeterminada, los

154

Page 162: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDirectrices y prácticas recomendadas

procesos maestros de la aplicación se pueden ejecutar tanto en nodos principales como en nodosde tareas. Puede habilitar la función de etiquetas de nodo YARN configurando las siguientespropiedades:

• yarn.node-labels.enabled: true

• yarn.node-labels.am.default-node-label-expression: 'CORE'

Nodo principal en una instancia de spot

El nodo principal controla y dirige el clúster. Cuando termina, el clúster finaliza, por lo que solo debe lanzarel nodo principal como una instancia de spot si está ejecutando un clúster que se acepta que termine deforma repentina. Podría ser el caso si está probando una aplicación nueva, tiene un clúster que guardaperiódicamente datos en un almacén externo como Amazon S3 o está ejecutando un clúster donde elcosto es más importante que garantizar que se complete el clúster.

Cuando se lanza el grupo de instancias principales como instancia de spot, el clúster no se inicia hasta quese completa la solicitud de instancia de spot. Esto es algo que debe considerar a la hora de seleccionar elprecio de spot máximo.

Solo puede añadir un nodo principal de instancias de spot al lanzar el clúster. Los nodos principales no sepueden agregar ni eliminar de un clúster en ejecución.

Normalmente, solo ejecutaría el nodo principal como instancia de spot si está ejecutando todo el clúster(todos los grupos de instancia) como instancias de spot.

Nodos secundarios en instancias de spot

Los nodos secundarios procesan los datos y almacenan información mediante HDFS. La terminación deuna instancia secundaria conlleva el riesgo de pérdida de datos. Por este motivo, solo debe ejecutar losnodos secundarios en instancias de spot cuando sea admisible la pérdida parcial de datos de HDFS.

Cuando se lanza el grupo de instancias secundarias como instancias de spot, Amazon EMR esperahasta que pueden aprovisionar todas las instancias secundarias solicitadas antes de lanzar el grupo deinstancias. En otras palabras, si solicita seis instancias Amazon EC2 y solo hay cinco disponibles con elprecio máximo de spot especificado o por debajo de este, el grupo de instancias no se lanzará. AmazonEMR sigue esperando hasta que las seis instancias Amazon EC2 estén disponibles o hasta que se termineel clúster. Puede cambiar el número de instancias de spot de un grupo de instancias secundario paraañadir capacidad a un clúster en ejecución. Para obtener más información sobre cómo trabajar con losgrupos de instancias y cómo funcionan las instancias de spot con las flotas de instancias, consulte thesection called “Configuración de flotas de instancias o grupos de instancias” (p. 140).

Nodos de tareas en las instancias de spot

Los nodos de tareas procesan datos pero no guardan datos persistentes en HDFS. Si se terminan porqueel precio de spot ha superado su precio de spot máximo, no se pierden los datos y el efecto sobre el clústeres mínimo.

Al lanzar uno o varios grupos de instancias de tareas como instancias de spot, Amazon EMR aprovisionatantos nodos de tareas como puede con su precio de spot máximo. Esto significa que, si solicita un grupode instancias de tareas con seis nodos y solo hay cinco instancias de spot disponibles a su precio de spotmáximo o por debajo de este, Amazon EMR lanza el grupo de instancias con cinco nodos, y añade el sextomás tarde si es posible.

El lanzamiento de grupos de instancias de tareas como instancias de spot es una forma estratégica deampliar la capacidad del clúster minimizando los costos. Si lanza los grupos de instancias principales ysecundarias como instancias bajo demanda, su capacidad está garantizada para la ejecución del clúster.

155

Page 163: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDirectrices y prácticas recomendadas

Puede añadir instancias de tarea a los grupos de instancias de tarea según sea necesario para gestionarlos picos de tráfico o acelerar el procesamiento de datos.

Puede agregar o eliminar nodos de tareas utilizando la consola, la AWS CLI o la API. También puedeañadir grupos de tareas adicionales, pero no puede quitar un grupo de tareas después de haberlo creado.

Configuraciones de instancias para escenarios de aplicaciones

La siguiente tabla es una referencia rápida para las opciones de compra de tipos de nodos y lasconfiguraciones que suelen ser adecuadas para los distintos escenarios de aplicaciones. Haga clic en elenlace correspondiente para ver más información sobre cada escenario.

Escenario de aplicaciones Opción de compradel nodo principal

Opción de comprade los nodossecundarios

Opción de compra delos nodos de tareas

Clústeres en ejecuciónprolongada y almacenes dedatos (p. 156)

Bajo demanda Bajo demanda ocombinación deflotas de instancias

spot o combinaciónde flotas deinstancias

Cargas de trabajo dirigidas porcostos (p. 156)

Spot Spot Spot

Cargas de trabajo críticas paradatos (p. 156)

Bajo demanda Bajo demanda Spot o combinaciónde flotas deinstancias

Prueba de aplicación (p. 157) Spot Spot Spot

Existen varias situaciones en las que las instancias de spot son útiles para ejecutar un clúster de AmazonEMR.

Clústeres en ejecución prolongada y almacenes de datos

Si ejecuta un clúster de Amazon EMR persistente que tiene una variación predecible de capacidadinformática, como un almacén de datos, puede gestionar los picos de demanda a menor costo con lasinstancias de spot. Puede lanzar los grupos de instancias principales y secundarios como instancias bajodemanda para gestionar la capacidad normal y lanzar los grupos de instancias de tareas como instanciasde spot para gestionar los requisitos de picos de carga.

Cargas de trabajo dirigidas por costos

Si está ejecutando clústeres transitorios para los que un costo inferior es más importante que el tiempode finalización y es aceptable la pérdida parcial de trabajo, puede ejecutar todo el clúster (grupos deinstancias principales, secundarias y de tareas) como instancias de spot para beneficiarse de los mayoresahorros de costos.

Cargas de trabajo críticas para datos

Si está ejecutando un clúster para el que un costo inferior es más importante que el tiempo de finalizaciónpero no es aceptable la pérdida parcial de trabajo, lance los grupos de instancias principales y secundariascomo bajo demanda y compleméntelas con uno o varios grupos de instancias de tareas creadas coninstancias de spot. La ejecución de los grupos de instancias principales y secundarias como bajo demandagarantiza que los datos se almacenen en HDFS y que el clúster se proteja de la terminación debido afluctuaciones en el mercado de spot, además de proporcionar un ahorro de costos que supone la ejecuciónde los grupos de instancias como instancias de spot.

156

Page 164: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar el registro de clúster y depuración

Prueba de aplicación

Cuando se prueba una nueva aplicación para prepararla para lanzar un entorno de producción, se puedeejecutar todo el clúster (grupos de instancias principales, secundarias y de tareas) como instancias de spotpara reducir los costos de las pruebas.

Cálculo de la capacidad de HDFS requerida de un clústerLa cantidad de almacenamiento HDFS disponible para su clúster depende de estos factores:

• El número de instancias EC2 utilizadas para los nodos secundarios.• La capacidad del almacén de instancias de EC2 para el tipo de instancia que se utilice. Para obtener

información adicional sobre los volúmenes de almacén de instancias, consulte Almacén de instanciasAmazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

• El número y el tamaño de los volúmenes de EBS asociados a los nodos secundarios.• Un factor de replicación, que tiene en cuenta la cantidad de bloques de datos que se almacenan en

HDFS para redundancia similar a RAID. De forma predeterminada, el factor de replicación es tres paraun clúster de 10 o más nodos secundarios, dos para un clúster de 4-9 nodos secundarios y uno para unclúster de 3 nodos o menos.

Para calcular la capacidad de HDFS de un clúster, para cada nodo secundario, añada la capacidaddel volumen de almacenamiento de la instancia a la capacidad de almacenamiento de EBS (si seutiliza). Multiplique el resultado por el número de nodos secundarios y, a continuación, divida el totalpor el factor de replicación que depende del número de nodos secundarios. Por ejemplo, un clúster con10 nodos secundarios de tipo i2.xlarge, que tiene 800 GB de almacenamiento de instancias y no tieneningún volumen de EBS asociado, tiene un total de aproximadamente 2 666 GB disponibles para HDFS(10 nodos x 800 GB ÷ 3 de factor de replicación).

Si el valor de capacidad de HDFS calculado es inferior a sus datos, puede aumentar la cantidad dealmacenamiento de HDFS de las siguientes formas:

• Creación de un clúster con volúmenes EBS adicionales o adición de grupos de instancias convolúmenes EBS asociados a un clúster existente

• Agregar más nodos secundarios• Selección de un tipo de instancia EC2 con una mayor capacidad de almacenamiento• Uso de la compresión de datos• Cambio de la configuración de Hadoop para reducir el factor de replicación

La reducción del factor de replicación se debería utilizar con precaución, ya que reduce la redundanciade los datos de HDFS y la capacidad del clúster de recuperarse frente a bloques de HDFS perdidos odañados.

Configurar el registro de clúster y depuraciónUna de las cosas que decidir a la hora de planificar el clúster es la cantidad de soporte de depuraciónque tiene que hacer que esté disponible. Al desarrollar por primera vez la aplicación de procesamientode datos, le recomendamos probar la aplicación en un clúster que procese un subconjunto pequeño,pero representativo, de sus datos. Al hacerlo, probablemente deseará utilizar todas las herramientas dedepuración que ofrece Amazon EMR como, por ejemplo, el archivado de archivos de registro en AmazonS3.

Cuando haya terminado el desarrollo y tenga la aplicación de procesamiento de datos a pleno rendimiento,puede optar por reducir la depuración. Al hacerlo puede ahorrar el costo de almacenamiento del archivado

157

Page 165: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónArchivos de registro predeterminados

de los archivos de registro en Amazon S3 y reducir la carga de procesamiento en el clúster, ya que no esnecesario escribir el estado en Amazon S3. El inconveniente, por supuesto, es que si algo va mal, tendrámenos herramientas disponibles para investigar el problema.

Archivos de registro predeterminadosDe forma predeterminada, cada clúster escribe archivos de registro en el nodo principal. Se escriben enel directorio /mnt/var/log/. Puede acceder a ellos a través de SSH para conectarse al nodo principaltal como se describe en Conexión al nodo principal utilizando SSH (p. 354). Dado que estos registrosexisten en el nodo principal, cuando el nodo termina, ya sea porque el clúster se ha cerrado o porque se haproducido un error, estos archivos de registro dejan de estar disponibles.

No tiene que habilitar nada para que los archivos de registro se escriban en el nodo principal. Este es elcomportamiento predeterminado de Amazon EMR y Hadoop.

Un clúster genera varios tipos de archivos de registro, incluidos:

• Step logs (Registros de pasos): estos registros los genera el servicio de Amazon EMR y contieneninformación sobre el clúster y los resultados de cada paso. Los archivos de registro se almacenan enel directorio /mnt/var/log/hadoop/steps/ en el nodo principal. Cada paso registra sus resultadosen un subdirectorio numerado independiente: /mnt/var/log/hadoop/steps/s-stepId1/para el primer paso, /mnt/var/log/hadoop/steps/s-stepId2/ para el segundo paso, y asísucesivamente. Los identificadores de paso de 13 caracteres (p. ej. stepId1, stepId2) son exclusivos deun clúster.

• Hadoop and YARN component logs (Registros de componentes de YARN y Hadoop): los registros decomponentes asociados con Apache YARN y MapReduce, por ejemplo, se encuentran en carpetasindependientes en /mnt/var/log. Las ubicaciones de archivo de registro para los componentesde Hadoop en /mnt/var/log son las siguientes: hadoop-hdfs, hadoop-mapreduce, hadoop-httpfs yhadoop-yarn. El directorio hadoop-state-pusher es para la salida del proceso state pusher de Hadoop.

• Bootstrap action logs (Registros de acciones de arranque): si el trabajo utiliza acciones de arranque,se registran los resultados de estas acciones. Los archivos de registro se almacenan en /mnt/var/log/bootstrap-actions/ en el nodo principal. Cada acción de arranque registra sus resultados en unsubdirectorio numerado independiente: /mnt/var/log/bootstrap-actions/1/ para la primeraacción de arranque, /mnt/var/log/bootstrap-actions/2/ para la segunda acción de arranque yasí sucesivamente.

• Instance state logs (Registros de estado de instancia): estos registros proporcionan información sobre laCPU, el estado de la memoria y los subprocesos del recolector de elementos no utilizados del nodo. Losarchivos de registro se almacenan en /mnt/var/log/instance-state/ en el nodo principal.

Archivado de archivos de registro en Amazon S3Note

Actualmente, no puede utilizar la agregación de registros en Amazon S3 con la utilidad yarnlogs.

Puede configurar un clúster para archivar periódicamente los archivos de registro almacenados en el nodoprincipal en Amazon S3. Esto garantiza que los archivos de registro estén disponibles después de que elclúster se termine, ya sea a través de un apagado normal o debido a un error. Amazon EMR archiva losarchivos de registro en Amazon S3 en intervalos de cinco minutos.

Para que los archivos de registro se archiven en Amazon S3, debe habilitar esta característica al lanzarel clúster. Puede hacerlo utilizando la consola, la CLI o la API. De manera predeterminada, los clústereslanzados con la consola tienen habilitado el archivado de registros. Para clústeres lanzados con la CLI o laAPI, el registro en Amazon S3 se debe habilitar manualmente.

158

Page 166: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónArchivado de archivos de registro en Amazon S3

Para el archivado de los archivos de registro en Amazon S3mediante la consola1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En la sección General options (Opciones generales) en el campo Logging (Registro), acepte la opción

predeterminada: Enabled (Habilitada).

Esta opción determina si Amazon EMR captura datos de registro detallados en Amazon S3. Solopuede definirlo cuando se crea el clúster. Para obtener más información, consulte Ver archivos deregistro (p. 320).

5. En el campo S3 folder (Carpeta S3) escriba (o busque) una ruta Amazon S3 para almacenar losregistros. También puede permitir que la consola genere una ruta de Amazon S3. Si escribe el nombrede una carpeta que no exista en el bucket, se creará.

Cuando este valor está definido, Amazon EMR copia los archivos de registro de las instancias EC2 enel clúster de Amazon S3. Esto evita que se pierdan cuando el clúster finaliza y las instancias EC2 quelo alojan terminan. Estos registros resultan útiles en la solución de problemas.

Para obtener más información, consulte Ver archivos de registro.6. En el campo Log encryption (Cifrado de registro) seleccione Encrypt logs stored in S3 with an AWS

KMS customer managed key (Cifrar registros almacenados en S3 con una clave administrada por elcliente de AWS KMS). A continuación, seleccione una clave AWS KMS de la lista o escriba un claveARN. También puede crear una nueva clave KMS.

Esta opción solo está disponible con Amazon EMR versión 5.30.0 y posterior. Para utilizar esta opción,agregue permiso a KMS para su perfil de instancia EC2 y rol de EMR. Para obtener más información,consulte Para cifrar los archivos de registro almacenados en Amazon S3 con una clave administradapor el cliente de AWS KMS (p. 159).

7. Continúe con la creación del clúster tal como se describe en Planificar y configurarclústeres (p. 42).

Para cifrar los archivos de registro almacenados en Amazon S3con una clave administrada por el cliente de AWS KMSCon Amazon EMR versión 5.30.0 y posterior (excepto Amazon EMR 6.0.0), puede cifrar los archivos deregistro almacenados en Amazon S3 con una clave administrada por el cliente de AWS KMS. Para habilitaresta opción en la consola, siga los pasos descritos en Para el archivado de los archivos de registro enAmazon S3 mediante la consola (p. 159). Su perfil de instancia de Amazon EC2 y su rol de Amazon EMRdeben cumplir los siguientes requisitos previos:

• El perfil de instancia de Amazon EC2 utilizado para el clúster debe tener permiso para usarkms:GenerateDataKey.

• El rol de Amazon EMR utilizado para el clúster debe tener permiso para usar kms:DescribeKey.• El perfil de instancia de Amazon EC2 y el rol de Amazon EMR deben agregarse a la lista de usuarios de

claves para la clave administrada por el cliente de AWS KMS especificada, como se demuestra en lospasos siguientes:1. Abra la consola de AWS Key Management Service (AWS KMS) en https://console.aws.amazon.com/

kms.2. Para cambiar la región de AWS, utilice el selector de regiones en la esquina superior derecha de la

página.

159

Page 167: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónArchivado de archivos de registro en Amazon S3

3. Seleccione el alias de la CMK que modificar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el cuadro de diálogo Add key users (Agregar usuarios clave), seleccione su perfil de instancia de

Amazon EC2 y el rol de Amazon EMR.6. Elija Add (Añadir).

Para obtener más información, consulte Roles de servicio de IAM usados por Amazon EMR, y Usarpolíticas de claves en la guía para desarrolladores de AWS Key Management Service.

Para archivar los archivos de registro en Amazon S3 mediante laAWS CLIPara archivar los archivos de registro en Amazon S3 mediante la AWS CLI, escriba el comando create-cluster y especifique la ruta de registros de Amazon S3 mediante el parámetro --log-uri.

• Para registrar archivos en Amazon S3, escriba el siguiente comando y sustituya myKey por el nombredel par de claves de EC2.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --log-uri s3://mybucket/logs/ --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos los nodosutilizarán el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil de instanciaEC2, escriba aws emr create-default-roles para crearlos antes de escribir el subcomandocreate-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Para agregar registros en Amazon S3 con la AWS CLINote

No puede utilizar actualmente la agregación de registros con la utilidad yarn logs. Solo puedeutilizar la agregación compatible con este procedimiento.

La agregación de registros (Hadoop 2.x) compila los registros desde todos los contenedores para unaaplicación individual en un único archivo. Para habilitar la agregación de registros en Amazon S3 mediantela AWS CLI, utilice una acción de arranque al lanzar el clúster para habilitar la agregación de registros yespecificar el bucket donde se deben almacenar los registros.

• Important

Este ajuste no ha funcionado en las versiones 4.x anteriores de EMR. Utilice versionessuperiores a la 4.3.0 si desea configurar esta opción.

Para habilitar la agregación de registros, cree el siguiente archivo de configuración myConfig.json,que contiene lo siguiente:

160

Page 168: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónHabilitar la herramienta de depuración

[ { "Classification": "yarn-site", "Properties": { "yarn.log-aggregation-enable": "true", "yarn.log-aggregation.retain-seconds": "-1", "yarn.nodemanager.remote-app-log-dir": "s3:\/\/mybucket\/logs" } }]

Escriba el comando siguiente y sustituya myKey por el nombre del par de claves de EC2.

aws emr create-cluster --name "Test cluster" --release-label emr-4.5.0 --applications Name=Hadoop --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --configurations file://./myConfig.json

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos losnodos utilizarán el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil deinstancia EC2, escriba aws emr create-default-roles para crearlos antes de escribir elsubcomando create-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Habilitar la herramienta de depuraciónLa herramienta de depuración permite examinar fácilmente los archivos de registro desde la consolade EMR. Para obtener más información, consulte Ver archivos de registro en la herramienta dedepuración (p. 323). Cuando se habilita la depuración en un clúster, Amazon EMR archiva los archivosde registro en Amazon S3 y, a continuación, indexa dichos archivos. A continuación, puede utilizar laconsola para examinar de manera intuitiva los archivos de registro de paso, trabajo, tarea e intento detarea del clúster.

Para utilizar la herramienta de depuración en la consola de EMR, debe activar la depuración al lanzar elclúster con la consola, la CLI o la API.

Para habilitar la herramienta de depuración utilizando la consola de Amazon EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En la sección Cluster Configuration (Configuración del clúster), en el campo Logging (Registro), elija

Enabled (Habilitado). No puede habilitar la depuración sin habilitar el registro.5. En el campo Log folder S3 location (Ubicación de la carpeta de registros en S3), escriba una ruta

Amazon S3 para almacenar los registros.6. En el campo Debugging (Depuración), elija Enabled (Habilitada).

161

Page 169: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónInformación de opción de depuración

La opción de depuración crea un intercambio de Amazon SQS para publicar mensajes de depuraciónen el backend de servicio de Amazon EMR. Podrían aplicarse cargos por la publicación de mensajesen el intercambio. Para obtener más información, consulte https://aws.amazon.com/sqs.

7. Continúe con la creación del clúster tal como se describe en Planificar y configurarclústeres (p. 42).

Para habilitar la herramienta de depuración utilizando la AWS CLI

Para habilitar la depuración mediante la AWS CLI, escriba el subcomando create-cluster con elparámetro --enable-debugging. Asimismo, debe especificar el parámetro --log-uri a la hora dehabilitar la depuración.

• Para habilitar la depuración utilizando la AWS CLI, escriba el siguiente comando y sustituya myKey porel nombre del par de claves de EC2.

aws emr create-cluster --name "Test cluster" --release-label emr-4.1.0 --log-uri s3://mybucket/logs/ --enable-debugging --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos losnodos utilizarán el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil deinstancia EC2, escriba aws emr create-default-roles para crearlos antes de escribir elsubcomando create-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Example Habilitar la depuración mediante el SDK de Java

Habilitar la depuración utilizando el siguiente StepConfig:

StepFactory stepFactory = new StepFactory(); StepConfig enabledebugging = new StepConfig() .withName("Enable debugging") .withActionOnFailure("TERMINATE_JOB_FLOW") .withHadoopJarStep(stepFactory.newEnableDebuggingStep());

En este ejemplo, new StepFactory() utiliza us-east-1 como la regiónpredeterminada. Si el clúster se lanza en otra región, debe especificarla utilizando newStepFactory("region_name.elasticmapreduce"), como, por ejemplo, new StepFactory("ap-northeast-2.elasticmapreduce").

Información de opción de depuraciónAmazon EMR versión 4.1 o posteriores admite la depuración en todas las regiones.

Amazon EMR crea una cola de Amazon SQS para procesar los datos de depuración. Podrían aplicarsecargos de mensajes. Sin embargo, Amazon SQS tiene capa gratuita de hasta 1 000 000 solicitudesdisponibles. Para obtener más información, consulte la página de información de .

162

Page 170: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEtiquetado de clústeres

La depuración requiere el uso de roles; su rol de servicio y perfil de instancia deben permitirle utilizar todaslas operaciones de la API de Amazon SQS. Si los roles están asociados a políticas administradas deAmazon EMR, no tiene que realizar ninguna operación para modificarlos. Si tiene roles personalizados,tendrá que añadir permisos sqs:*. Para obtener más información, consulte Configurar roles de serviciodeIAM para los permisos de Amazon EMR para los servicios y recursos de AWS (p. 205).

Etiquetado de clústeresPuede resultar práctico clasificar los recursos de AWS de diversas maneras; por ejemplo, según sufinalidad, propietario o entorno. Puede conseguirlo en Amazon EMR asignando metadatos personalizadosa los clústeres de Amazon EMR mediante etiquetas. Una etiqueta consta de una clave y un valor, ambosdefinidos por el usuario. Para Amazon EMR, el clúster es el nivel de recursos que puede etiquetar. Porejemplo, podría definir un conjunto de etiquetas para los clústeres de su cuenta que le ayude a realizarun seguimiento de cada propietario del clúster o identificar un clúster de producción frente a un clúster depruebas. Le recomendamos que cree un conjunto de etiquetas coherente para satisfacer los requisitos desu organización.

Cuando se añade una etiqueta a un clúster de Amazon EMR, la etiqueta también se propaga a cada unade las instancias Amazon EC2 activas asociadas al clúster. Del mismo modo, si suprime una etiqueta deun clúster de Amazon EMR, dicha etiqueta se elimina de cada una de las instancias Amazon EC2 activasasociadas.

Important

Utilice la consola o la CLI de Amazon EMR para administrar etiquetas en instancias Amazon EC2que forman parte de un clúster en lugar de la CLI o de la consola de Amazon EC2, ya que loscambios que realice en Amazon EC2 no se vuelven a sincronizar con el sistema de etiquetado deAmazon EMR.

Puede identificar una instancia Amazon EC2 que forme parte de un clúster de Amazon EMR buscandolas siguientes etiquetas del sistema. En este ejemplo, CORE es el valor del rol de grupo de instancias yj-12345678 es un ejemplo de valor de identificador de flujo de trabajo (clúster):

• aws:elasticmapreduce:instance-group-role=CORE• aws:elasticmapreduce:job-flow-id=j-12345678

Note

Amazon EMR y Amazon EC2 interpretan las etiquetas como una cadena de caracteres sinsignificado semántico.

Puede trabajar con etiquetas utilizando la Consola de administración de AWS la CLI y la API.

Puede añadir etiquetas al crear un clúster de Amazon EMR y puede añadir, editar o eliminar etiquetas deun clúster de Amazon EMR en ejecución. Editar una etiqueta es un concepto que se aplica a la consolade Amazon EMR, sin embargo utilizando la CLI y la API, para editar una etiqueta se elimina la etiquetaantigua y se añade una nueva. Puede editar las claves y los valores de las etiquetas y también puedeeliminar etiquetas de un recurso en cualquier momento que se ejecuta un clúster. Sin embargo, no puedeañadir, editar o suprimir etiquetas desde un clúster terminado o instancias terminadas que se asociaronanteriormente con un clúster que sigue activo. Además, puede establecer el valor de una etiqueta comouna cadena vacía, pero no puede establecer el valor de una etiqueta como nulo.

Si está utilizando AWS Identity and Access Management (IAM) con sus instancias Amazon EC2 parapermisos basados en recursos por etiqueta, las políticas de IAM se aplican a las etiquetas que AmazonEMR propaga a las instancias Amazon EC2 de un clúster. Para que las etiquetas de Amazon EMR sepropaguen a las instancias Amazon EC2, la política de IAM para Amazon EC2 debe conceder permisos

163

Page 171: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónRestricciones de las etiquetas

para llamar a las API CreateTags y DeleteTags de Amazon EC2. Además, las etiquetas propagadaspueden afectar a sus permisos basados en recursos de Amazon EC2. Las etiquetas propagadas aAmazon EC2 se pueden leer como condiciones en la política de IAM, como las demás etiquetas deAmazon EC2. Tenga en cuenta la política de IAM a la hora de añadir etiquetas a las clústeres de AmazonEMR para evitar que los usuarios de IAM tengan permisos incorrectos para un clúster. Para evitarproblemas, asegúrese de que las políticas de IAM no incluyan condiciones de etiquetas que tambiénpretenda utilizar en los clústeres de Amazon EMR. Para obtener más información, consulte Control delacceso a los recursos de Amazon EC2.

Restricciones de las etiquetasSe aplican las siguientes restricciones básicas a las etiquetas:

• Las restricciones que se aplican a los recursos de Amazon EC2 también se aplican a Amazon EMR.Para obtener más información, consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions.

• No utilice el prefijo aws: en los nombres y valores de las etiquetas, porque está reservado para uso deAWS. Además, no puede editar o eliminar los nombres y valores de etiquetas que tienen este prefijo.

• No puede cambiar o editar etiquetas en un clúster terminado.• Un valor de etiqueta puede ser una cadena vacía, pero no nulo. Además, una clave de etiqueta no

puede ser una cadena vacía.• Las claves y los valores pueden contener caracteres alfabéticos en cualquier idioma, cualquier carácter

numérico, espacios en blanco, separadores invisibles y los siguientes símbolos: _ . : / = + - @

Para obtener más información sobre el etiquetado utilizando la Consola de administración de AWS,consulte Uso de las etiquetas en la consola en la Guía del usuario de Amazon EC2 para instancias deLinux. Para obtener más información sobre el etiquetado utilizando la API de Amazon EC2 o la línea decomandos, consulte Información general de la API y la CLI en la Guía del usuario de Amazon EC2 parainstancias de Linux.

Recursos de etiqueta para facturaciónPuede usar etiquetas para organizar su factura de AWS para reflejar su propia estructura de costos. Paraello, regístrese para obtener una factura de su cuenta de AWS que incluya valores de clave de etiquetas.A continuación, puede organizar su información de facturación por valores clave de etiqueta, para ver elcosto de los recursos combinados. Aunque Amazon EMR y Amazon EC2 tienen facturas distintas, lasetiquetas de cada clúster también se colocan en cada instancia asociada a fin de que pueda usar lasetiquetas para enlazar los costos relacionados de Amazon EMR y Amazon EC2.

Por ejemplo, puede etiquetar varios recursos con un nombre de aplicación específico y luego organizarsu información de facturación para ver el costo total de la aplicación en distintos servicios. Para obtenermás información, consulte el tema sobre Etiquetado y asignación de costos en la Guía del usuario de AWSBilling and Cost Management.

Añadir etiquetas a un nuevo clústerPuede añadir etiquetas a un clúster mientras lo está creando.

Para añadir etiquetas al crear un nuevo clúster con la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. En la página Step 3: General Cluster Settings (Paso 3: Configuración general del clúster), en la

sección Tags (Etiquetas), escriba un valor en Key (Clave) para la etiqueta.

164

Page 172: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAñadir etiquetas a un clúster existente

Cuando empiece a escribir el valor en Key (Clave), aparece automáticamente una nueva fila paradejar espacio a la etiqueta nueva siguiente.

4. Si lo desea, escriba un Value (Valor) para la etiqueta.5. Repita los pasos anteriores para cada par clave/valor de etiqueta que añadir al clúster. Cuando se

lanza el clúster, las etiquetas que introduzca se asocian automáticamente al clúster.

Para añadir etiquetas al crear un nuevo clúster con la AWS CLI

El siguiente ejemplo muestra cómo añadir una etiqueta a un nuevo clúster con la AWS CLI. Para añadiretiquetas al crear un clúster, escriba el subcomando create-cluster con el parámetro --tags.

• Para añadir una etiqueta denominada costCenter con el valor de clave marketing al crear unclúster, escriba el siguiente comando y sustituya myKey por el nombre del par de claves de EC2.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hadoop Name=Hive Name=Pig --tags "costCenter=marketing" --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3

Cuando especifica el recuento de instancias sin utilizar el parámetro --instance-groups, se lanzaun nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos losnodos utilizarán el tipo de instancia especificado en el comando.

Note

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil deinstancia EC2, escriba aws emr create-default-roles para crearlos antes de escribir elsubcomando create-cluster.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Añadir etiquetas a un clúster existenteTambién puede añadir etiquetas a un clúster existente.

Para añadir etiquetas a un clúster existente utilizando la consola

1. En la consola de Amazon EMR, seleccione la página Cluster List (Lista de clústeres) y haga clic en elclúster al que desea añadir etiquetas.

2. En la página Cluster Details (Detalles del clúster), en el campo Tags (Etiquetas), haga clic en View All/Edit (Ver todo/Editar).

3. En la página View All/Edit (Ver todo/Editar), haga clic en Add (Añadir).4. Haga clic en el campo vacío en la columna Key (Clave) y escriba el nombre de la clave.5. Opcionalmente, haga clic en el campo vacío en la columna Value (Valor) y escriba el valor.6. Con cada nueva etiqueta que comience, aparece otra línea de etiqueta vacía en la etiqueta que está

editando. Repita los pasos anteriores en la nueva línea de etiqueta para cada etiqueta que deseeañadir.

Para añadir etiquetas a un clúster en funcionamiento utilizando la AWS CLI

El siguiente ejemplo muestra cómo añadir etiquetas a un clúster en ejecución con la AWS CLI. Escriba elsubcomando add-tags con el parámetro --tag para asignar etiquetas a un identificador de recurso (ID

165

Page 173: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer etiquetas en un clúster

de clúster). El ID de recurso es el identificador del clúster disponible a través de la consola o el comandolist-clusters.

Note

El subcomando add-tags actualmente solo acepta un ID de recurso.

• Para añadir dos etiquetas a un clúster en ejecución (una con una clave denominada production sinningún valor y la otra con una clave denominada costCenter con el valor marketing), escriba elcomando siguiente y sustituya j-KT4XXXXXXXX1NM por el ID del clúster.

aws emr add-tags --resource-id j-KT4XXXXXXXX1NM --tag "costCenter=marketing" --tag "other=accounting"

Note

Cuando se añaden etiquetas utilizando la CLI de AWS, no hay ninguna salida desde elcomando.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Ver etiquetas en un clústerSi desea ver todas las etiquetas asociadas a un clúster, puede verlas en la consola o en la interfaz de líneade comandos (CLI).

Para ver las etiquetas en un clúster mediante la consola

1. En la consola de Amazon EMR, seleccione la página Cluster List (Lista de clústeres) y haga clic en unclúster para ver las etiquetas.

2. En la página Cluster Detailsse (Detalles del clúster), en el campo Tags (Etiquetas), se muestranalgunas etiquetas. Haga clic en View All/Edit (Ver todo/Editar) para mostrar todas las etiquetasdisponibles en el clúster.

Para ver las etiquetas en un clúster mediante la AWS CLI

Para ver las etiquetas en un clúster mediante la AWS CLI, escriba el subcomando describe-clustercon el parámetro --query.

• Para ver las etiquetas de un clúster, escriba el siguiente comando y sustituya j-KT4XXXXXXXX1NMpor el ID del clúster.

aws emr describe-cluster --cluster-id j-KT4XXXXXX1NM --query Cluster.Tags

La salida muestra toda la información de etiquetas sobre el clúster similar a la siguiente:

Value: accounting Value: marketing Key: other Key: costCenter

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

166

Page 174: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEliminar etiquetas de un clúster

Eliminar etiquetas de un clústerSi ya no necesita una etiqueta, puede eliminarla del clúster.

Para eliminar las etiquetas de un clúster mediante la consola

1. En la consola de Amazon EMR, seleccione la página Cluster List (Lista de clústeres) y haga clic en elclúster del que desea eliminar las etiquetas.

2. En la página Cluster Details (Detalles del clúster), en el campo Tags (Etiquetas), haga clic en View All/Edit (Ver todo/Editar).

3. En el cuadro de diálogo View All/Edit (Ver todo/Editar), haga clic en el icono X situado junto a laetiqueta que desea eliminar y haga clic en Save (Guardar).

4. (Opcional) Repita el paso anterior para cada par clave/valor de etiqueta que eliminar del clúster.

Para eliminar las etiquetas de un clúster mediante la AWS CLI

Para eliminar las etiquetas de un clúster mediante la AWS CLI, escriba el subcomando remove-tags conel parámetro --tag-keys. Al eliminar una etiqueta, solo se necesita el nombre de clave.

• Para eliminar una etiqueta de un clúster, escriba el siguiente comando y sustituya j-KT4XXXXXXXX1NM por el ID del clúster.

aws emr remove-tags --resource-id j-KT4XXXXXX1NM --tag-keys "costCenter"

Note

Actualmente no puede eliminar varias etiquetas con un único comando.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Integración de controladores y aplicación deterceros

Puede ejecutar varias aplicaciones de big data populares en Amazon EMR con los precios de serviciospúblicos. Esto significa que paga una tarifa nominal adicional por hora para la aplicación de terceros,mientras el clúster está en ejecución. Le permite usar la aplicación sin tener que adquirir una licenciaanual. En las siguientes secciones se describen algunas de las herramientas que puede utilizar con EMR.

Temas• Uso de las herramientas de inteligencia empresarial con Amazon EMR (p. 167)

Uso de las herramientas de inteligencia empresarialcon Amazon EMRPuede utilizar herramientas de inteligencia empresarial populares como Microsoft Excel, MicroStrategy,QlikView y Tableau con Amazon EMR para explorar y visualizar los datos. Muchas de estas herramientasrequieren un controlador ODBC (Open Database Connectivity) o JDBC (Java Database Connectivity).Puede descargar e instalar los controladores necesarios desde los siguientes enlaces:

167

Page 175: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de las herramientas de inteligencia

empresarial con Amazon EMR

• http://awssupportdatasvcs.com/bootstrap-actions/Simba/AmazonHiveJDBC-1.0.9.1060.zip• http://awssupportdatasvcs.com/bootstrap-actions/Simba/Hive_ODBC_1.2.2.1018.zip• https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/HBaseODBC.zip

Para obtener más información sobre cómo conectar una herramienta de inteligenciaempresarial como Microsoft Excel a Hive, consulte http://cdn.simba.com/products/Hive/doc/Simba_Hive_ODBC_Quickstart.pdf.

168

Page 176: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfiguraciones de seguridad

Seguridad en Amazon EMRLa seguridad en la nube de AWS es la mayor prioridad. Como cliente de AWS, se beneficiará de unaarquitectura de red y un centro de datos diseñados para satisfacer los requisitos de seguridad de lasorganizaciones más exigentes.

La seguridad es una responsabilidad compartida entre AWS y usted. El modelo de responsabilidadcompartida la describe como seguridad de la nube y seguridad en la nube:

• Seguridad de la nube: AWS es responsable de proteger la infraestructura que ejecuta servicios deAWS en la nube de AWS. AWS también proporciona servicios que puede utilizar de forma segura.Auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad en el marcode los programas de conformidad de AWS. Para obtener más información acerca de los programas deconformidad que se aplican a Amazon EMR, consulte Servicios de AWS en el ámbito del programa deconformidad.

• Seguridad en la nube: su responsabilidad viene determinada por el servicio de AWS que utilice. Tambiénes responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa yla legislación y los reglamentos aplicables.

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartida cuandose utiliza Amazon EMR. Cuando desarrolle soluciones en Amazon EMR, utilice las siguientes tecnologíaspara ayudar a asegurar datos y recursos de clúster seguros de acuerdo con sus requisitos empresariales.Los temas de este capítulo muestran cómo configurar Amazon EMR y utilizar otros servicios de AWS parasatisfacer sus necesidades de seguridad y objetivos de conformidad.

Configuraciones de seguridadLas configuraciones de seguridad de Amazon EMR son plantillas que contienen diferentes ajustes deseguridad. Puede crear una configuración de seguridad para volver a utilizar ciertos ajustes de seguridadcada vez que cree un clúster. Para obtener más información, consulte Uso de configuraciones deseguridad para configurar la seguridad del clúster (p. 171).

Protección de los datosPuede implementar el cifrado de datos para ayudar a proteger los datos en reposo en Amazon S3 datosen reposo en el almacenamiento de las instancias del clúster y los datos en tránsito. Para obtener másinformación, consulte Cifrar datos en reposo y en tránsito (p. 190).

AWS Identity and Access Management por AmazonEMR

AWS Identity and Access Management (IAM) es un servicio de AWS que ayuda a un administrador acontrolar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quiénpuede ser autenticado (iniciar sesión) y estar autorizado (tener permisos) para utilizar los recursos deAmazon EMR. IAM es un servicio de AWS que se puede utilizar sin costo adicional.

• Políticas basadas en identidades de IAM: las políticas de IAM conceden o deniegan permisos a losusuarios y grupos de IAM para realizar acciones.. Las políticas se pueden combinar con las etiquetas

169

Page 177: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónKerberos

para controlar el acceso en un clúster a clúster. Para obtener más información, consulte AWS Identityand Access Management para Amazon EMR (p. 199).

• Roles de IAM: el rol de servicio, el perfil de instancia y el rol basado en servicio de Amazon EMRcontrolan cómo Amazon EMR es capaz de tener acceso a otros servicios de AWS. Para obtener másinformación, consulte Configurar roles de servicio deIAM para los permisos de Amazon EMR para losservicios y recursos de AWS (p. 205).

• Roles de IAM para solicitudes de EMRFS a Amazon S3: cuando Amazon EMR obtiene accede aAmazon S3, puede especificar el rol de IAM que va a utilizar en función del usuario, el grupo o laubicación de los datos de EMRFS en Amazon S3. Esto le permite controlar con precisión si los usuariosdel clúster pueden acceder a los archivos desde dentro de Amazon EMR. Para obtener más información,consulte Configuración de roles de IAM para las solicitudes de EMRFS a Amazon S3 (p. 225).

KerberosPuede configurar Kerberos para proporcionar una autenticación robusta a través de la criptografía de clavesecreta. Para obtener más información, consulte Uso de la autenticación Kerberos (p. 244).

Lake FormationPuede utilizar los permisos de Lake Formation junto con el AWS Glue Data Catalog para proporcionar unacceso de nivel de columna detallado a las bases de datos y a las tablas en el catálogo de datos de AWSGlue. Lake Formation permite un inicio de sesión único federado en blocs de notas de EMR o ApacheZeppelin desde un sistema de identidades de la compañía. Para obtener más información, consulteIntegración de Amazon EMR con AWS Lake Formation (Beta) (p. 272).

Secure Socket Shell (SSH)SSH ayuda a proporcionar un método seguro a los usuarios para conectarse a la línea de comandos de lasinstancias de clúster. También proporciona tunelización para ver las interfaces web que las aplicacionesalojan en el nodo principal. Los clientes pueden autenticar mediante Kerberos o un par de claves deAmazon EC2. Para obtener más información, consulte Uso de un par de claves de Amazon EC2 para lascredenciales de SSH (p. 244) y Conectar al clúster (p. 353).

Grupos de seguridad de Amazon EC2Los grupos de seguridad actúan como un firewall virtual para las instancias de clúster de EMR y controlanel tráfico entrante y saliente. Para obtener más información, consulte Control del tráfico de red con gruposde seguridad (p. 291).

Actualizaciones de la AMI predeterminada deAmazon Linux para Amazon EMR

Cuando una instancia Amazon EC2 de un clúster que se basa en la AMI predeterminada de AmazonLinux para Amazon EMR arranca por primera vez, las actualizaciones de seguridad críticas se instalande forma predeterminada. Las demás actualizaciones no se instalan. En función del nivel de seguridadde la aplicación y del tiempo que lleve ejecutándose un clúster, puede optar por reiniciar el clústerperiódicamente para aplicar las actualizaciones de seguridad, o crear una acción de arranque para

170

Page 178: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de configuraciones de seguridad

para configurar la seguridad del clúster

personalizar la instalación y las actualizaciones de los paquetes. También puede optar por probar y, acontinuación, instalar determinadas actualizaciones de seguridad en las instancias del clúster en ejecución.Para obtener más información, consulte Use de la AMI de Amazon Linux predeterminada para AmazonEMR (p. 108).

Uso de configuraciones de seguridad paraconfigurar la seguridad del clúster

Con la versión 4.8.0 o posteriores de Amazon EMR, puede utilizar las configuraciones de seguridad paraconfigurar el cifrado de datos, la autenticación de Kerberos (disponible a partir de la versión 5.10.0 yposteriores) y la autorización de Amazon S3 para EMRFS (disponible en la versión 5.10.0 o posteriores).

Después de crear una configuración de seguridad, debe especificarla cuando crea un clúster y puedevolver a utilizarla para cualquier número de clústeres.

Puede utilizar la consola, la AWS Command Line Interface (AWS CLI) o los SDK de AWS para crearconfiguraciones de seguridad. También puede utilizar una plantilla de AWS CloudFormation para crearuna configuración de seguridad. Para obtener más información, consulte Guía del usuario de AWSCloudFormation y la referencia de plantilla de AWS::EMR::SecurityConfiguration.

Temas• Creación de una configuración de seguridad (p. 171)• Especificación de una configuración de seguridad para un clúster (p. 188)

Creación de una configuración de seguridadEn este tema se abordan los procedimientos generales para crear una configuración de seguridadutilizando la consola de EMR y la AWS CLI, así como una referencia para los parámetros de cifrado,autenticación y roles de IAM para EMRFS. Para obtener más información sobre estas características,consulte los siguientes temas:

• Cifrar datos en reposo y en tránsito (p. 190)• Uso de la autenticación Kerberos (p. 244)• Configuración de roles de IAM para las solicitudes de EMRFS a Amazon S3 (p. 225)

Creación de una configuración de seguridad utilizando la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. En el panel de navegación, elija Security Configurations (Configuraciones de seguridad), Create

security configuration (Crear configuración de seguridad).3. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre).4. Elija opciones en Encryption (Cifrado) y Authentication (Autenticación), tal y como se describe en las

secciones siguientes y, a continuación, elija Create (Crear).

Creación de una configuración de seguridad utilizando la AWS CLI

• Utilice el comando create-security-configuration, tal y como se muestra en el ejemplosiguiente.

• En SecConfigName, especifique el nombre de la configuración de seguridad. Este es el nombreque especifica cuando crea un clúster que usa esta configuración de seguridad.

171

Page 179: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

• En SecConfigDef, especifique una estructura JSON en línea o la ruta a un archivo JSON local,como por ejemplo, file://MySecConfig.json. Los parámetros JSON definen opciones paraEncryption (Cifrado), IAM Roles for EMRFS access to Amazon S3 (Roles de IAM para el acceso deEMRFS a Amazon S3) y Authentication (Autenticación), tal y como se describe en las seccionessiguientes.

aws emr create-security-configuration --name "SecConfigName" --security-configuration SecConfigDef

Configuración del cifrado de datosAntes de configurar el cifrado en una configuración de seguridad, cree las claves y los certificados que seutilizan para el cifrado. Para obtener más información, consulte Proporcionar claves para cifrado de datosen reposo con Amazon EMR (p. 195) y Proporcionar certificados para cifrado de datos en tránsito concifrado de Amazon EMR (p. 197).

Al crear una configuración de seguridad, debe especificar dos conjuntos de opciones de cifrado: cifrado dedatos en reposo y cifrado de datos en tránsito. Las opciones para el cifrado de datos en reposo incluyenAmazon S3 con EMRFS y el cifrado de disco local. Las opciones de cifrado en tránsito habilitan lascaracterísticas de cifrado de código abierto para determinadas aplicaciones que admiten Transport LayerSecurity (TLS). Las opciones en reposo y en tránsito se pueden habilitar juntas o por separado. Paraobtener más información, consulte Cifrar datos en reposo y en tránsito (p. 190).

Especificación de las opciones de cifrado con la consolaElija opciones en Encryption (Cifrado) de acuerdo con las siguientes directrices.

• Elija las opciones en At rest encryption (Cifrado en reposo) para cifrar los datos almacenados en elsistema de archivos.

Puede elegir cifrar datos en Amazon S3, discos locales o ambas.• En S3 data encryption (Cifrado de datos de S3), para Encryption mode (Modo de cifrado), elija un valor

para determinar cómo cifra Amazon EMR los datos de Amazon S3 con EMRFS.

Lo que haga a continuación depende del modo de cifrado que haya elegido:• SSE-S3

Especifica el cifrado del lado del servidor con claves de cifrado administradas por Amazon S3. Nonecesita hacer nada más, ya que Amazon S3 se encarga de gestionar las claves.

• SSE-KMS o CSE-KMS

Especifica el cifrado del lado del servidor con claves administradas por AWS KMS (SSE-KMS) o elcifrado del lado del cliente con claves administradas por AWS KMS (CSE-KMS). En AWS KMS Key(Clave de KMS de AWS), seleccione una clave. La clave debe existir en la misma región que suclúster de EMR. Para los requisitos de clave, consulte Uso de claves maestras de cliente (CMK) deAWS KMS para cifrado (p. 195).

• CSE-Custom

Especifica el cifrado del lado del cliente utilizando una clave maestra del lado del cliente (CSE-Custom). En S3 object (Objeto de S3), especifique la ubicación en Amazon S3, o el ARN de AmazonS3 del archivo JAR del proveedor de claves personalizadas. A continuación, en Key provider class(Clase de proveedor de claves), escriba el nombre de clase completo de una clase declarada en laaplicación que implementa la interfaz EncryptionMaterialsProvider.

• En Local disk encryption (Cifrado de disco local), seleccione un valor para Key provider type (Tipo deproveedor de clave).

172

Page 180: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

• AWS KMS

Seleccione esta opción para especificar una clave principal de cliente de AWS KMS (CMK). ParaAWS KMS customer master key (Clave maestra de cliente de AWS KMS), seleccione una clave.La clave debe existir en la misma región que su clúster de EMR. Para obtener más informaciónsobre los requisitos de claves, consulte Uso de claves maestras de cliente (CMK) de AWS KMS paracifrado (p. 195).

Cifrado de EBS

Cuando especifique AWS KMS como su proveedor de claves, puede habilitar el cifrado de EBS paracifrar los volúmenes de almacenamiento y de dispositivo raíz de EBS. Para habilitar esa opción, debeconceder el rol de servicio de EMR EMR_DefaultRole con permisos para utilizar la clave maestrade cliente (CMK) que especifique. Para obtener más información sobre los requisitos de claves,consulte Habilitación del cifrado de EBS al proporcionar permisos adicionales para las CMK de AWSKMS (p. 195).

• Custom (Personalizado)

Seleccione esta opción para especificar un proveedor de claves personalizadas. En S3 object(Objeto de S3), especifique la ubicación en Amazon S3, o el ARN de Amazon S3 del archivo JAR delproveedor de claves personalizadas. En Key provider class (Clase de proveedor de claves), escribael nombre de clase completo de una clase declarada en la aplicación que implementa la interfazEncryptionMaterialsProvider. El nombre de clase que proporcione aquí debe ser distinto al nombre declase proporcionado para CSE-Custom.

• Seleccione In-transit encryption (Cifrado en tránsito.) para habilitar las características de cifrado TLSde código abierto para los datos en tránsito. Elija un Certificate provider type (Tipo de proveedor decertificados) de acuerdo con las directrices siguientes:• PEM

Seleccione esta opción para utilizar los archivos PEM que proporcione dentro de un archivo zip. Serequieren dos artefactos dentro del archivo zip: privateKey.pem y certificateChain.pem. Un tercerarchivo, trustedCertificates.pem, es opcional. Para obtener más información, consulte Proporcionarcertificados para cifrado de datos en tránsito con cifrado de Amazon EMR (p. 197). En S3 object(Objeto de S3), especifique la ubicación en Amazon S3, o el ARN de Amazon S3 del campo delarchivo zip.

• Custom (Personalizado)

Seleccione esta opción para especificar un proveedor de certificados personalizado y, a continuación,en S3 object (Objeto de S3), especifique la ubicación en Amazon S3, o el ARN de Amazon S3 delarchivo JAR del proveedor de certificados personalizado. En Key provider class (Clase de proveedorde claves), escriba el nombre de clase completo de una clase declarada en la aplicación queimplemente la interfaz TLSArtifactsProvider.

Especificación de las opciones de cifrado con AWS CLILas secciones que aparecen a continuación utilizan escenarios de ejemplo para ilustrar una estructuraJSON --security-configuration con el formato correcto para diferentes configuraciones y proveedores declaves, así como una referencia para los parámetros JSON y sus valores adecuados.

Opciones de cifrado de datos en tránsito de ejemplo

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está habilitado y el cifrado de datos en reposo está deshabilitado.• Un archivo zip con certificados en Amazon S3 se utiliza como proveedor de claves (consulte

Proporcionar certificados para cifrado de datos en tránsito con cifrado de Amazon EMR (p. 197) paraconocer los requisitos de los certificados).

173

Page 181: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : false, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "s3://MyConfigStore/artifacts/MyCerts.zip" } } }}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está habilitado y el cifrado de datos en reposo está deshabilitado.• Se utiliza un proveedor de claves personalizadas (consulte Proporcionar certificados para cifrado de

datos en tránsito con cifrado de Amazon EMR (p. 197) para requisitos de certificado).

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : false, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass" : "com.mycompany.MyCertProvider" } } }}'

Opciones de cifrado de datos en reposo de ejemplo

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado• SSE-S3 se utiliza para cifrado de Amazon S3.• El cifrado de disco local utiliza AWS KMS como proveedor de claves.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-S3" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } }

174

Page 182: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

}}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está habilitado y hace referencia a un archivo zip con certificados PEM enAmazon S3, utilizando el ARN.

• SSE-KMS se utiliza para cifrado de Amazon S3.• El cifrado de disco local utiliza AWS KMS como proveedor de claves.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : true, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } }}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está habilitado y hace referencia a un archivo zip con certificados PEM enAmazon S3.

• CSE-KMS se utiliza para cifrado de Amazon S3.• El cifrado en disco local utiliza un proveedor de claves personalizadas al que hace referencia su ARN.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : true, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "CSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"

175

Page 183: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

}, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "Custom", "S3Object" : "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass" : "com.mycompany.MyKeyProvider.jar" } } }}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está habilitado con un proveedor de claves personalizadas.• CSE-Custom se utiliza para datos de Amazon S3.• El cifrado de disco local utiliza un proveedor de claves personalizadas.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : "true", "EnableAtRestEncryption" : "true", "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass" : "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "CSE-Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass" : "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass" : "com.mycompany.MyKeyProvider" } } }}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.• El cifrado de Amazon S3 está habilitado con SSE-KMS y se aplican las excepciones de cifrado a buckets

de S3 individuales.• El cifrado de disco local se ha deshabilitado.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode" : "SSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides" : [

176

Page 184: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

{ "BucketName" : "sse-s3-bucket-name", "EncryptionMode" : "SSE-S3" }, { "BucketName" : "cse-kms-bucket-name", "EncryptionMode" : "CSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName" : "sse-kms-bucket-name", "EncryptionMode" : "SSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true }}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.• El cifrado de Amazon S3 se habilita con SSE-S3 y se deshabilita el cifrado de disco local.

aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-S3" } } }}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.• El cifrado de disco local está habilitado con AWS KMS como el proveedor de claves y el cifrado de

Amazon S3 se ha deshabilitado.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } }

177

Page 185: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

}}'

El ejemplo siguiente ilustra el supuesto siguiente:

• El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.• El cifrado de disco local está habilitado con AWS KMS como el proveedor de claves y el cifrado de

Amazon S3 se ha deshabilitado.• El cifrado de la EBS está habilitado.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "LocalDiskEncryptionConfiguration" : { "EnableEbsEncryption" : true, "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } }}'

Referencia de JSON para la configuración de cifrado

En la siguiente tabla se muestran los parámetros JSON de configuración de cifrado y se ofrece unadescripción de valores aceptados para cada parámetro.

Parámetro Descripción

"EnableInTransitEncryption" : true |false

Especifique true para habilitar el cifrado entránsito y false para deshabilitarlo. Si se omite, sesupone el valor false y el cifrado en tránsito estádeshabilitado.

"EnableAtRestEncryption" : true | false Especifique true para habilitar el cifrado enreposo y false para deshabilitarlo. Si se omite, sesupone el valor false y el cifrado en reposo estádeshabilitado.

Parámetros de cifrado en tránsito

"InTransitEncryptionConfiguration" : Especifica un conjunto de valores que se utilizapara configurar el cifrado en tránsito cuandoEnableInTransitEncryption es true.

"CertificateProviderType" : "PEM" |"Custom"

Especifica si se deben utilizar certificados PEMa los que se hace referencia con un archivocomprimido o un proveedor de certificadosCustom. Si se especifica PEM, S3Object debeser una referencia a la ubicación en Amazon S3de un archivo zip que contiene los certificados.Si se especifica Custom, S3Object debe seruna referencia a la ubicación en Amazon S3

178

Page 186: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripciónde un archivo JAR, seguida de una entradaCertificateProviderClass.

"S3Object" : "ZipLocation" |"JarLocation"

Proporciona la ubicación en Amazon S3 de unarchivo zip cuando se especifica PEM o de unarchivo JAR cuando se especifica Custom. Elformato puede ser una ruta (por ejemplo, s3://MyConfig/artifacts/CertFiles.zip) oun ARN (por ejemplo, arn:aws:s3:::Code/MyCertProvider.jar). Si se especificaun archivo zip, debe contener archivosdenominados exactamente privateKey.pemy certificateChain.pem. Un archivodenominado trustedCertificates.pem esopcional.

"CertificateProviderClass" :"MyClassID"

Solo es necesario si se especifica Custom paraCertificateProviderType. MyClassIDespecifica un nombre de clase completodeclarado en el archivo JAR, que implementala interfaz TLSArtifactsProvider. Por ejemplo,com.mycompany.MyCertProvider.

Parámetros de cifrado en reposo

"AtRestEncryptionConfiguration" : Especifica un conjunto de valores para el cifradoen reposo cuando EnableAtRestEncryptiones true, incluyendo el cifrado de Amazon S3 y elcifrado de disco local.

Parámetros de cifrado de Amazon S3

"S3EncryptionConfiguration" : Especifica un conjunto de valores utilizados para elcifrado de Amazon S3 con el sistema de archivosde EMR (EMRFS).

"EncryptionMode" : "SSE-S3" | "SSE-KMS" |"CSE-KMS" | "CSE-Custom"

Especifica el tipo de cifrado de Amazon S3que utilizar. Si se especifica SSE-S3, no sonnecesarios más valores de cifrado de AmazonS3. Si se especifica SSE-KMS o CSE-KMS, sedebe especificar un ARN de clave maestra decliente (CMK) de AWS KMS como valor deAwsKmsKey. Si se especifica CSE-Custom,se deben especificar los valores S3Object yEncryptionKeyProviderClass.

"AwsKmsKey" : "MyKeyARN" Necesario solo cuando se especifica CSE-KMSo SSE-KMS para EncryptionMode. MyKeyARNdebe ser un ARN totalmente especificado parauna clave (por ejemplo, arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).

179

Page 187: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"S3Object" : "JarLocation" Solo es necesario cuando se especifica CSE-Custom para CertificateProviderType.JarLocation proporciona la ubicación enAmazon S3 de un archivo JAR. El formato puedeser una ruta (por ejemplo, s3://MyConfig/artifacts/MyKeyProvider.jar) o unARN (por ejemplo, arn:aws:s3:::Code/MyKeyProvider.jar).

"EncryptionKeyProviderClass" :"MyS3KeyClassID"

Solo es necesario cuando se especificaCSE-Custom para EncryptionMode.MyS3KeyClassID especifica el nombrede clase completo de una clase declaradaen la aplicación que implementa la interfazEncryptionMaterialsProvider; por ejemplo,com.mycompany.MyS3KeyProvider.

Parámetros de cifrado de disco local

"LocalDiskEncryptionConfiguration" Especifica el proveedor de claves y valorescorrespondientes que utilizar para el cifrado dedisco local.

"EncryptionKeyProviderType" : "AwsKms"| "Custom"

Especifica el proveedor de claves. Si seespecifica AwsKms, se debe especificar unARN de CMK de AWS KMS como valor deAwsKmsKey. Si se especifica Custom, sedeben especificar los valores S3Object yEncryptionKeyProviderClass.

"AwsKmsKey : "MyKeyARN" Solo es necesario cuando se especificaAwsKms para Type. MyKeyARN debe serun ARN totalmente especificado para unaclave (por ejemplo, arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).

"S3Object" : "JarLocation" Solo es necesario cuando se especifica CSE-Custom para CertificateProviderType.JarLocation proporciona la ubicación enAmazon S3 de un archivo JAR. El formato puedeser una ruta (por ejemplo, s3://MyConfig/artifacts/MyKeyProvider.jar) o unARN (por ejemplo, arn:aws:s3:::Code/MyKeyProvider.jar).

"EncryptionKeyProviderClass" :"MyLocalDiskKeyClassID"

Solo es necesario cuando se especifica Custompara Type. MyLocalDiskKeyClassID especificael nombre de clase completo de una clasedeclarada en la aplicación que implementa lainterfaz EncryptionMaterialsProvider; por ejemplo,com.mycompany.MyLocalDiskKeyProvider.

180

Page 188: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Configuración de la autenticación de KerberosUna configuración de seguridad con la configuración de Kerberos solo se puede utilizar en un clúster quese crea con los atributos de Kerberos o si se produce un error. Para obtener más información, consulteUso de la autenticación Kerberos (p. 244). Kerberos solo está disponible en versión 5.10.0 y posterioresde Amazon EMR.

Especificación de la configuración de Kerberos con la consola

Elija opciones en Kerberos authentication (Autenticación Kerberos) de acuerdo con las siguientesdirectrices.

Parámetro Descripción

Kerberos Especifica si Kerberos está habilitado para clústeres queusan esta configuración de seguridad. Si un clúster usaesta configuración de seguridad, también debe tener laconfiguración de Kerberos especificada o se producirá unerror.

KDC dedicado del clúster Especifica que Amazon EMR crea un KDC en el nodoprincipal de cualquier clúster que utilice esta configuraciónde seguridad. El nombre de ámbito y la contraseña deadministrador de KDC se especifican al crear el clúster.

Puede hacer referencia a este KDC desde otros clústeresen caso necesario. Cree dichos clústeres con unaconfiguración de seguridad diferente, especifique un KDCexterno, y utilice el nombre de ámbito y la contraseñade administrador de KDC que especificó para el KDCdedicado del clúster.

Proveedor

KDC externo Disponible solo con Amazon EMR 5.20.0 y versionesposteriores. Especifica que los clústeres que utilizanesta configuración de seguridad autentican las entidadesprincipales de Kerberos con un servidor de KDC fuera delclúster. No se crea un KDC en el clúster. Cuando cree elclúster, especifique el nombre de ámbito y la contraseñade administrador de KDC para el KDC externo.

Vida útil de los vales Opcional. Especifica el periodo de validez para un ticketde Kerberos generado por el KDC en clústeres que utilicenesta configuración de seguridad.

La vida útil de los vales se limita por motivos de seguridad.Las aplicaciones de clúster y los servicios renuevanautomáticamente los vales después de que expiren.Los usuarios que se conecten al clúster mediante SSHutilizando las credenciales de Kerberos tienen que ejecutarel comando kinit desde la línea de comandos del nodoprincipal para la renovación tras la expiración de un vale.

Confianza entre dominios Especifica una confianza entre ámbitos entre un KDCdedicado del clúster en clústeres que utilicen estaconfiguración de seguridad y un KDC de un ámbito deKerberos diferente.

181

Page 189: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro DescripciónLas entidades principales (normalmente usuarios) deotro ámbito se autentican en clústeres que usan estaconfiguración. Es obligatorio usar una configuraciónadicional en el otro ámbito de Kerberos. Para obtener másinformación, consulte Tutorial: Configurar una relaciónde confianza entre ámbitos con un dominio de ActiveDirectory (p. 267).

Ámbito Especifica el nombre de ámbito de Kerberos del otroámbito en la relación de confianza. Convencionalmente,los nombres de ámbito de Kerberos coinciden con elnombre de ámbito, pero en mayúsculas.

Dominio Especifica el nombre de dominio del otro dominio en larelación de confianza.

Servidor de administración Especifica el nombre de dominio completo (FQDN) o ladirección IP del servidor de administración del otro ámbitode la relación de confianza. El servidor de administración yel servidor de KDC suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos paracomunicarse.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 749. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:749).

Propiedadesde confianzaentreámbitos

Servidor de KDC Especifica el nombre de dominio completo (FQDN) o ladirección IP del servidor de KDC en el otro ámbito de larelación de confianza. El servidor de KDC y el servidor deadministración suelen ejecutarse en el mismo equipo conel mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 88. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:88).

KDC externa Especifica que el clúster utiliza KDC externos del clúster.

Propiedadesde KDCexternos

Servidor de administración Especifica el nombre de dominio completo (FQDN) o ladirección IP del servidor de administración externo. Elservidor de administración y el servidor de KDC suelenejecutarse en el mismo equipo con el mismo FQDN, peroutilizan puertos distintos para comunicarse.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 749. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:749).

182

Page 190: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

Servidor de KDC Especifica el nombre de dominio completo (FQDN) o elservidor de KDC externo. El servidor de KDC y el servidorde administración suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 88. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:88).

Integración de ActiveDirectory

Especifica que la autenticación principal de Kerberos estáintegrada con un dominio de Microsoft Active Directory.

Ámbitode ActiveDirectory

Especifica el nombre de ámbito de Kerberos del dominiode Active Directory. Convencionalmente, los nombres deámbito de Kerberos coinciden normalmente con el nombrede ámbito, pero en mayúsculas.

Dominiode ActiveDirectory

Especifica el nombre de dominio de Active Directory.

Propiedadesdeintegracióncon ActiveDirectory

Servidorde ActiveDirectory

Especifica el nombre de dominio completo (FQDN) delcontrolador de dominio de Microsoft Active Directory.

Especificación de la configuración de Kerberos con la AWS CLI

En la siguiente tabla de referencia, se muestran los parámetros JSON para la configuración de Kerberosen una configuración de seguridad. Para ver configuraciones de ejemplo, consulte Ejemplos deconfiguraciones (p. 259).

Parámetro Descripción

"AuthenticationConfiguration": { Obligatorio para Kerberos. Especificasi una configuración de autenticaciónforma parte de esta configuración deseguridad.

"KerberosConfiguration": { Obligatorio para Kerberos. Especificalas propiedades de configuración deKerberos.

 

  "Provider":"ClusterDedicatedKdc",

—o bien—

"Provider: "ExternalKdc",

ClusterDedicatedKdc especificaque Amazon EMR crea un KDC en elnodo principal de cualquier clúster queutilice esta configuración de seguridad.El nombre de ámbito y la contraseña deadministrador de KDC se especifican alcrear el clúster. Puede hacer referenciaa este KDC desde otros clústeres encaso necesario. Cree dichos clústerescon una contraseña de seguridaddiferente, especifique un KDC externo,y utilice el nombre de ámbito y la

183

Page 191: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripcióncontraseña de administrador de KDCque especificó al crear el clúster con elKDC dedicado del clúster.

ExternalKdc especifica que elclúster utiliza un KDC externo. AmazonEMR no crea ningún KDC en el nodoprincipal. Los clústeres que usen estaconfiguración de seguridad debenespecificar el nombre de ámbito y lacontraseña de administrador de KDC delKDC externo.

"ClusterDedicatedKdcConfiguration":{

Es obligatorio cuando se especificaClusterDedicatedKdc.

"TicketLifetimeInHours":24,

Opcional. Especifica el periodo devalidez para un ticket de Kerberosgenerado por el KDC en clústeres queutilicen esta configuración de seguridad.

La vida útil de los vales se limita pormotivos de seguridad. Las aplicacionesde clúster y los servicios renuevanautomáticamente los vales despuésde que expiren. Los usuarios que seconecten al clúster mediante SSHutilizando las credenciales de Kerberostienen que ejecutar el comando kinitdesde la línea de comandos del nodoprincipal para la renovación tras laexpiración de un vale.

"CrossRealmTrustConfiguration":{

Especifica una confianza entre ámbitosentre un KDC dedicado del clúster enclústeres que utilicen esta configuraciónde seguridad y un KDC de un ámbito deKerberos diferente.

Las entidades principales (normalmenteusuarios) de otro ámbito seautentican en clústeres que usan estaconfiguración. Es obligatorio usaruna configuración adicional en el otroámbito de Kerberos. Para obtenermás información, consulte Tutorial:Configurar una relación de confianzaentre ámbitos con un dominio de ActiveDirectory (p. 267).

 

  "Realm":"KDC2.COM",

Especifica el nombre de ámbito deKerberos del otro ámbito en la relaciónde confianza. Convencionalmente,los nombres de ámbito de Kerberoscoinciden con el nombre de ámbito, peroen mayúsculas.

184

Page 192: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"Domain":"kdc2.com",

Especifica el nombre de dominio del otrodominio en la relación de confianza.

"AdminServer":"kdc.com:749",

Especifica el nombre de dominiocompleto (FQDN) o la dirección IP delservidor de administración del otroámbito de la relación de confianza.El servidor de administración y elservidor de KDC suelen ejecutarse enel mismo equipo con el mismo FQDN,pero utilizan puertos distintos paracomunicarse.

Si no se especifica ningún puerto,se usa el puerto predeterminado deKerberos: el 749. También se puedeespecificar el puerto (por ejemplo,domain.example.com:749).

"KdcServer":"kdc.com:88"

Especifica el nombre de dominiocompleto (FQDN) o la dirección IP delservidor de KDC en el otro ámbito dela relación de confianza. El servidor deKDC y el servidor de administraciónsuelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizanpuertos distintos.

Si no se especifica ningún puerto,se usa el puerto predeterminado deKerberos: el 88. También se puedeespecificar el puerto (por ejemplo,domain.example.com:88).

}

}

"ExternalKdcConfiguration": { Es obligatorio cuando se especificaExternalKdc.

185

Page 193: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"TicketLifetimeInHours":24,

Opcional. Especifica el periodo devalidez para un ticket de Kerberosgenerado por el KDC en clústeres queutilicen esta configuración de seguridad.

La vida útil de los vales se limita pormotivos de seguridad. Las aplicacionesde clúster y los servicios renuevanautomáticamente los vales despuésde que expiren. Los usuarios que seconecten al clúster mediante SSHutilizando las credenciales de Kerberostienen que ejecutar el comando kinitdesde la línea de comandos del nodoprincipal para la renovación tras laexpiración de un vale.

"KdcServerType":"Single",

Especifica que se hace referencia a unsolo servidor de KDC. Single es elúnico valor compatible actualmente.

"AdminServer":"kdc.com:749",

Especifica el nombre de dominiocompleto (FQDN) o la dirección IP delservidor de administración externo.El servidor de administración y elservidor de KDC suelen ejecutarse enel mismo equipo con el mismo FQDN,pero utilizan puertos distintos paracomunicarse.

Si no se especifica ningún puerto,se usa el puerto predeterminado deKerberos: el 749. También se puedeespecificar el puerto (por ejemplo,domain.example.com:749).

"KdcServer": "kdc.com:88", Especifica el nombre de dominiocompleto (FQDN) o el servidor de KDCexterno. El servidor de KDC y el servidorde administración suelen ejecutarse enel mismo equipo con el mismo FQDN,pero utilizan puertos distintos.

Si no se especifica ningún puerto,se usa el puerto predeterminado deKerberos: el 88. También se puedeespecificar el puerto (por ejemplo,domain.example.com:88).

 

"AdIntegrationConfiguration":{

Especifica que la autenticación principalde Kerberos está integrada con undominio de Microsoft Active Directory.

186

Page 194: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"AdRealm":"AD.DOMAIN.COM",

Especifica el nombre de ámbitode Kerberos del dominio de ActiveDirectory. Convencionalmente, losnombres de ámbito de Kerberoscoinciden normalmente con el nombrede ámbito, pero en mayúsculas.

 

"AdDomain":"ad.domain.com"

Especifica el nombre de dominio deActive Directory.

}

}

}

}

Configuración de roles de IAM para las solicitudes de EMRFS aAmazon S3Los roles de IAM para EMRFS le permiten proporcionar diferentes permisos para los datos de EMRFS enAmazon S3. Puede crear mapeos que especifiquen un rol de IAM usada para los permisos cuando unasolicitud de acceso contenga un identificador que usted especifique. El identificador puede ser un usuario oun rol de Hadoop o un prefijo de Amazon S3.

Para obtener más información, consulte Configuración de roles de IAM para las solicitudes de EMRFS aAmazon S3 (p. 225).

Especificación de roles de IAM para EMRFS mediante la AWS CLI

A continuación se muestra un fragmento de código JSON de ejemplo que especifica roles de IAMpersonalizados para EMRFS en una configuración de seguridad. Muestra los mapeos de roles para los trestipos distintos de identificadores, seguidos por una referencia de parámetro.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } }}

187

Page 195: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación de una configuración

de seguridad para un clúster

Parámetro Descripción

"AuthorizationConfiguration": Obligatorio.

"EmrFsConfiguration": Obligatorio. Contiene mapeos de roles.

"RoleMappings": Obligatorio. Contiene una o más definiciones demapeo de roles. Los mapeos de roles se evalúanen el orden descendente en el que aparecen. Siun mapeo de roles se evalúa como true para unallamada de EMRFS para obtener datos de AmazonS3, no se evaluará ningún mapeo de roles más yEMRFS utilizará el rol de IAM especificado parala solicitud. Los mapeos de roles constan de lossiguientes parámetros obligatorios:

"Role": Especifica el identificador ARN de una funciónIAM en el formato arn:aws:iam::account-id:role/role-name. Este es el rol de IAM queAmazon EMR asume si la solicitud de EMRFSa Amazon S3 coincide con cualquiera de losIdentifiers especificados.

"IdentifierType": Puede ser uno de los siguientes:

• "User" especifica que los identificadores sonuno o más usuarios de Hadoop, que puedenser cuentas de usuario de Linux o principalesde Kerberos. Cuando la solicitud de EMRFSprocede del usuario o los usuarios especificados,se asume el rol de IAM.

• "Prefix" especifica que el identificador esuna ubicación de Amazon S3. Se asume elrol de IAM para llamadas a la ubicación o lasubicaciones con los prefijos especificados.Por ejemplo, el prefijo s3://mybucket/coincide con s3://mybucket/mydir ys3://mybucket/yetanotherdir.

• "Group" especifica que los identificadores sonuno o más grupos de Hadoop. Se asume el rolde IAM si la solicitud procede de un usuario delgrupo o los grupos especificados.

"Identifiers": Especifica uno o más identificadores del tipoadecuado. Separe varios identificadores concomas y sin espacios.

Especificación de una configuración de seguridad paraun clústerPuede especificar la configuración de cifrado al crear un clúster especificando la configuración deseguridad. Puede utilizar la Consola de administración de AWS o la AWS CLI.

188

Page 196: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónProtección de los datos

Especificación de una configuración de seguridad utilizando laconsolaCuando se utiliza la consola de AWS para crear un clúster de EMR, puede seleccionar la configuraciónde seguridad durante el paso Step 4: Security (Paso 4: Seguridad) del proceso de creación de opcionesavanzadas.

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. En la pantalla Step 1: Software and Steps (Paso 1: Software y pasos), en la lista Release (Versión),

elija emr-4.8.0 o una versión más reciente. Elija la configuración que desee y haga clic en Next(Siguiente).

4. En la pantalla Step 2: Hardware (Paso 2: Hardware), elija la configuración que desea y elija Next(Siguiente). Haga lo mismo para el Step 3: General Cluster Settings (Paso 3: Configuración generaldel clúster).

5. En la pantalla Step 4: Security (Paso 4: Seguridad), en Encryption Options (Opciones de cifrado), elijaun valor para Security configuration (Configuración de seguridad).

6. Configure las demás opciones de seguridad como desee y elija Create cluster (Crear clúster).

Especificación de una configuración de seguridad utilizando laCLICuando utiliza aws emr create-cluster, tiene la opción de aplicar una configuración de seguridadutilizando --security-configuration MySecConfig, donde MySecConfig es el nombre dela configuración de seguridad, tal y como se muestra en el siguiente ejemplo. El --release-labelespecificado debe ser 4.8.0 o una versión posterior y --instance-type puede ser cualquiera disponible.

aws emr create-cluster --instance-type m5.xlarge --release-label emr-5.0.0 --security-configuration mySecConfig

Protección de los datos en Amazon EMRAmazon EMR cumple los requisitos del modelo de responsabilidad compartida de AWS, que incluyereglamentos y directrices para la protección de los datos. AWS es responsable de proteger lainfraestructura global que ejecuta todos los servicios de AWS. AWS mantiene el control de los datosalojados en esta infraestructura, incluidos los controles de configuración de la seguridad para el tratamientodel contenido y los datos personales de los clientes. Los clientes de AWS y los socios de APN, que actúancomo controladores o procesadores de datos, son responsables de todos los datos personales quecolocan en la nube de AWS.

Para fines de protección de datos, le recomendamos proteger las credenciales de la cuenta de AWS yconfigurar cuentas de usuario individuales con AWS Identity and Access Management (IAM), de modo quea cada usuario se le concedan únicamente los permisos necesarios para llevar a cabo su trabajo. Tambiénle recomendamos proteger sus datos de las siguientes formas:

• Utilice las opciones de cifrado de Amazon EMR para cifrar datos en reposo y en tránsito. Para obtenermás información, consulte Cifrar datos en reposo y en tránsito (p. 190).

• Utilice la autenticación multifactor (MFA) con cada cuenta.

189

Page 197: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

• Utilice SSL/TLS para comunicarse con los recursos de AWS.• Configure la API y el registro de actividad del usuario con AWS CloudTrail.• Utilice los servicios de seguridad administrados avanzados como, por ejemplo, Amazon Macie, que

ayudan a detectar y proteger los datos personales almacenados en Amazon S3.

Le recomendamos encarecidamente que nunca introduzca información de identificación confidencial,como, por ejemplo, números de cuenta de sus clientes, en los campos de formato libre, como el campoName (Nombre). No debe introducir esta información cuando trabaje con Amazon EMR u otros servicios deAWS a través de la consola, la API, la AWS CLI de AWS o los SDK de AWS. Cualquier dato que escribaen Amazon EMR o en otros servicios se puede incluir en los registros de diagnóstico. Cuando proporcioneuna URL a un servidor externo, no incluya información de credenciales en la URL para validar la solicitudpara ese servidor.

Para obtener más información sobre la protección de datos, consulte la entrada de blog relativa al modelode responsabilidad compartida de AWS y GDPR en el blog de seguridad de AWS.

Cifrar datos en reposo y en tránsitoEl cifrado de datos ayuda a impedir que los usuarios no autorizados lean los datos en un clúster y sistemasde almacenamiento de datos asociados. Esto incluye los datos guardados en medios persistentes,conocidos como datos en reposo y datos que pueden ser interceptados cuando recorren la red, conocidoscomo datos en tránsito.

A partir de la versión 4.8.0 de Amazon EMR, puede utilizar configuraciones de seguridad de AmazonEMR para definir configuraciones de cifrado de datos para clústeres de manera más sencilla. Lasconfiguraciones de seguridad ofrecen ajustes para habilitar la seguridad de los datos en tránsito y de losdatos en reposo en volúmenes de Amazon Elastic Block Store (Amazon EBS) y EMRFS en Amazon S3.

Opcionalmente, a partir de la versión 4.1.0 de Amazon EMR y posteriores, puede elegir configurar elcifrado transparente en HDFS, que no se configura utilizando las configuraciones de seguridad. Paraobtener más información, consulte Cifrado transparente en HDFS en Amazon EMR en la Guía depublicación de Amazon EMR.

Temas• Opciones de cifrado (p. 190)• Creación de claves y certificados para el cifrado de datos (p. 194)

Opciones de cifradoCon las versiones 4.8.0 y posteriores de Amazon EMR, puede utilizar una configuración de seguridadpara especificar las opciones de cifrado de datos en reposo, datos en tránsito o ambos. Al habilitar elcifrado de datos en reposo, puede elegir cifrar datos de EMRFS en Amazon S3, datos en discos localeso ambos. Cada configuración de seguridad que se crea se almacena en Amazon EMR en lugar de en laconfiguración del clúster, por lo que puede volver a utilizar con facilidad una configuración para especificarajustes de cifrado de datos cada vez que cree un clúster. Para obtener más información, consulte Creaciónde una configuración de seguridad (p. 171).

En el siguiente diagrama se muestran las distintas opciones de cifrado de datos disponibles con lasconfiguraciones de seguridad.

190

Page 198: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

Las siguientes opciones de cifrado también están disponibles y no se configuran utilizando unaconfiguración de seguridad:

• Opcionalmente, con las versiones 4.1.0 y posteriores de Amazon EMR, puede elegir configurar el cifradotransparente en HDFS. Para obtener más información, consulte Cifrado transparente en HDFS enAmazon EMR en la Guía de publicación de Amazon EMR.

• Si utiliza una versión de Amazon EMR que no admite configuraciones de seguridad, puede configurarmanualmente el cifrado para los datos de EMRFS en Amazon S3. Para obtener más información,consulte Especificación del cifrado de Amazon S3 mediante propiedades de EMRFS (p. 93).

• Si utiliza una versión de Amazon EMR anterior a 5.24.0, un volumen de dispositivo raíz cifrado de EBSse admite únicamente cuando se utiliza una AMI personalizada. Para obtener más información consulteCreación de una AMI personalizada con un volumen de dispositivo raíz cifrado de EBS de Amazon en laGuía de administración de Amazon EMR

Note

A partir de Amazon EMR, versión 5.24.0, puede utilizar una opción de configuración de seguridadpara cifrar volúmenes de almacenamiento y dispositivos raíz de EBS cuando especifique AWSKMS como proveedor de claves. Para obtener más información, consulte Cifrado de discolocal (p. 193).

191

Page 199: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

El cifrado de datos requiere las claves y los certificados. Una configuración de seguridad le ofrece laflexibilidad para elegir entre varias opciones, incluidas claves administradas por AWS Key ManagementService, claves administradas por Amazon S3, así como claves y certificados de proveedorespersonalizados que proporcione usted mismo. Cuando se utiliza AWS KMS como proveedor de claves,se aplican cargos por el almacenamiento y el uso de las claves de cifrado. Para obtener más información,consulte los precios de AWS KMS.

Antes de especificar las opciones de cifrado, decida los sistemas de administración de clave y certificadoque desee utilizar, para poder crear primero las claves y los certificados o los proveedores personalizadosque especifique como parte de la configuración de cifrado.

Cifrado en reposo para datos de EMRFS en Amazon S3

El cifrado de Amazon S3 funciona con objetos del sistema de archivos de EMR (EMRFS) que se leeny se escriben en Amazon S3. Se especifica el cifrado del lado del servidor (SSE) o el cifrado del ladodel cliente (CSE) de Amazon S3 como el Default encryption mode (modo de cifrado predeterminado)cuando se habilita el cifrado en reposo. También puede especificar métodos de cifrado diferentes parabuckets individuales utilizando Per bucket encryption overrides (Reemplazos de cifrado por bucket).Independientemente de si el cifrado de Amazon S3 está habilitado, Transport Layer Security (TLS) cifra losobjetos de EMRFS en tránsito entre los nodos del clúster de EMR y Amazon S3. Para obtener informacióndetallada sobre el cifrado de Amazon S3, consulte Protección de datos mediante cifrado en la Guía paradesarrolladores de Amazon Simple Storage Service.

Cifrado del lado del servidor de Amazon S3

Cuando se configura el cifrado del lado del servidor de Amazon S3, Amazon S3 cifra los datos en el nivelde objeto a medida que escribe los datos en el disco y los descifra cuando se tiene acceso a ellos. Paraobtener más información sobre SSE, consulte Protección de datos con el cifrado del lado del servidor en laGuía para desarrolladores de Amazon Simple Storage Service.

Puede elegir entre dos sistemas de administración de claves distintos al especificar SSE en Amazon EMR:

• SSE-S3: Amazon S3 gestiona las claves por usted.• SSE-KMS: utilice una clave maestra de cliente de AWS KMS (CMK) configurada con políticas

adecuadas para Amazon EMR. Para obtener más información sobre los requisitos de clave paraAmazon EMR, consulte Uso de claves maestras de cliente (CMK) de AWS KMS para cifrado (p. 195).Cuando utilice AWS KMS, se aplican cargos por el almacenamiento y el uso de las claves de cifrado.Para obtener más información, consulte Precios de AWS KMS.

SSE con claves proporcionadas por el cliente (SSE-C) no está disponible para su uso con Amazon EMR.

Cifrado del lado del cliente de Amazon S3

Con el cifrado del lado del cliente de Amazon S3, el proceso de cifrado y descifrado de Amazon S3 tienelugar en el cliente de EMRFS en el clúster. Los objetos se cifran antes de cargarlos en Amazon S3 y sedescifran después de que se descarguen. El proveedor que especifique proporciona la clave de cifradoque utiliza el cliente. El cliente puede usar claves proporcionadas por AWS KMS (CSE-KMS) o una claseJava personalizada que proporciona la clave principal del lado del cliente (CSE-C). Los detalles de cifradoson ligeramente diferentes entre CSE-KMS y CSE-C, en función del proveedor especificado y de losmetadatos del objeto que se descifra o se cifra. Para obtener más información acerca de estas diferencias,consulte Protección de datos con el cifrado del lado del cliente en la Guía para desarrolladores de AmazonSimple Storage Service.

Note

CSE de Amazon S3 solo garantiza que los datos de EMRFS intercambiados con Amazon S3 secifren; no se cifran todos los datos en volúmenes de instancias de clúster. Además, ya que Hue noutiliza EMRFS, los objetos que el Hue S3 File Browser escribe en Amazon S3 no se cifran.

192

Page 200: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

Cifrado de disco local

Los siguientes mecanismos funcionan juntos para cifrar discos locales cuando habilita el cifrado de discoslocales utilizando una configuración de seguridad de Amazon EMR.

Cifrado HDFS de código abierto

HDFS intercambia datos entre las instancias de clúster durante el procesamiento distribuido. Tambiénlee y escribe datos a volúmenes de almacenes de instancias y a los volúmenes de EBS asociado a lasinstancias. Las siguientes opciones de cifrado de Hadoop de código abierto se activan cuando se habilitael cifrado de disco local:

• Secure Hadoop RPC se define en Privacy, que utiliza nivel de seguridad y autenticación simples(SASL).

• Data encryption on HDFS block data transfer se define como true y se configura para utilizar el cifradoAES 256.

Note

Puede activar el cifrado de Apache Hadoop adicional habilitando el cifrado en tránsito (consulteCifrado en tránsito (p. 194)). Estos ajustes de cifrado no activan el cifrado transparente deHDFS, que puede configurar manualmente. Para obtener más información, consulte Cifradotransparente en HDFS en Amazon EMR en la Guía de publicación de Amazon EMR.

Cifrado del almacén de instancias

Para los tipos de instancias EC2 que utilizan SSD basados en NVMe como el volumen de almacén deinstancias, el cifrado NVMe se utiliza independientemente de la configuración de cifrado de Amazon EMR.Para obtener más información, consulte Volúmenes de SSD de NVMe en la Guía del usuario de AmazonEC2 para instancias de Linux. Para otros volúmenes de almacén de instancias, Amazon EMR utilizaLUKS para cifrar el volumen de almacén de instancias cuando se ha habilitado el cifrado de disco localindependientemente de si los volúmenes de EBS se han cifrado utilizando el cifrado de EBS o LUKS.

Cifrado de volumen de EBS

Si crea un clúster en una región donde el cifrado de Amazon EC2 de volúmenes de EBS se ha habilitadopor defecto para su cuenta, los volúmenes EBS se cifran incluso si el cifrado de disco local no estáhabilitado. Para obtener más información, consulte Cifrado por defecto en la Guía del usuario de AmazonEC2 para instancias de Linux. Con el cifrado de disco local habilitado en una configuración de seguridad, laconfiguración de Amazon EMR tiene preferencia sobre la configuración de cifrado por defecto de AmazonEC2 para los clústeres de instancias EC2.

Las siguientes opciones están disponibles para volúmenes de cifrado de EBS que utilizan unaconfiguración de seguridad:

• Cifrado de EBS: a partir de la versión 5.24.0 de Amazon EMR, puede elegir habilitar el cifrado deEBS. La opción de cifrado de EBS cifra el volumen de dispositivo raíz de EBS y los volúmenes dealmacenamiento adjuntos. La opción de cifrado de EBS está disponible solo cuando especifica AWS KeyManagement Service como su proveedor principal. Recomendamos el uso del cifrado de EBS.

• Cifrado de LUKS: si elige utilizar el cifrado de LUKS para volúmenes de Amazon EBS, se aplica elcifrado de LUKS solo a los volúmenes de almacenamiento adjuntos, no al volumen de dispositivo raíz.Para obtener más información sobre el cifrado de LUKS, consulte la especificación de LUKS en disco.

Para su proveedor de claves, puede configurar una clave maestra del cliente (CMK) de AWS KMScon políticas adecuadas para Amazon EMR o una clase de Java personalizada que proporcione losartefactos de cifrado. Cuando utilice AWS KMS, se aplican cargos por el almacenamiento y el uso de lasclaves de cifrado. Para obtener más información, consulte los precios de AWS KMS.

193

Page 201: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

Note

Para comprobar si el cifrado de EBS está habilitado en el clúster, se recomienda utilizar unallamada a la API DescribeVolumes. Para obtener más información, consulte DescribeVolumes.La ejecución de lsblk en el clúster solo comprobará el estado del cifrado LUKS, en lugar delcifrado de EBS.

Cifrado en tránsito

Hay habilitados diversos mecanismos de cifrado con el cifrado en tránsito. Se trata de características decódigo abierto, específicas de la aplicación y pueden variar según la versión de Amazon EMR. Se puedenutilizar configuraciones de seguridad para habilitar las siguientes características de cifrado específicas dela aplicación:

• Hadoop (para obtener más información, consulte Hadoop in Secure Mode en la documentación deApache Hadoop):• Hadoop MapReduce Encrypted Shuffle usa TLS.• Secure Hadoop RPC se ha definido en "Privacy" y utiliza SASL (activada en Amazon EMR cuando

está habilitado el cifrado en reposo).• Data encryption on HDFS block data transfer usa AES 256 (activado en Amazon EMR cuando está

habilitado el cifrado en reposo en la configuración de seguridad).• HBase:

• Al habilitar Kerberos, la propiedad hbase.rpc.protection se configura en privacy para lacomunicación privada. Para obtener más información, consulte Client-side Configuration for SecureOperation en la documentación de Apache HBase. Para obtener más información sobre Kerberos conAmazon EMR, consulte Uso de la autenticación Kerberos (p. 244).

• Presto:• La comunicación interna entre nodos de Presto utiliza SSL/TLS (solo Amazon EMR versión 5.6.0 y

posteriores).• Tez:

• Tez Shuffle Handler usa TLS (tez.runtime.ssl.enable).• Spark (para obtener más información, consulte Spark security settings):

• Las comunicaciones RPC internas entre componentes Spark como el servicio de transferencia debloques y el servicio de reorganización externo se cifran mediante el cifrado AES-256 en las versiones5.9.0 y posteriores de Amazon EMR. En versiones anteriores, las comunicaciones RPC internas secifran mediante SASL con DIGEST-MD5 como cifrado.

• Las comunicaciones del protocolo HTTP con interfaces de usuario como Spark History Server yservidores de archivos compatibles con HTTPS se cifran mediante la configuración SSL de Spark.Para obtener más información, consulte SSL Configuration en la documentación de Spark.

Usted especifica los artefactos de cifrado utilizados para el cifrado en tránsito de una de estas dosmaneras: facilitando un archivo comprimido con los certificados que carga en Amazon S3, o bien, haciendoreferencia a una clase Java personalizada que proporciona artefactos de cifrado. Para obtener másinformación, consulte Proporcionar certificados para cifrado de datos en tránsito con cifrado de AmazonEMR (p. 197).

Creación de claves y certificados para el cifrado de datosAntes de especificar las opciones de cifrado mediante una configuración de seguridad, decida el proveedorque desea usar para las claves y los artefactos de cifrado. Por ejemplo, puede utilizar AWS KMS o unproveedor personalizado que cree. A continuación, cree las claves o el proveedor tal y como se describeen esta sección.

194

Page 202: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

Proporcionar claves para cifrado de datos en reposo con Amazon EMRPuede utilizar AWS Key Management Service (AWS KMS) o un proveedor de claves personalizadaspara el cifrado de datos en reposo en Amazon EMR. Cuando utilice AWS KMS, se aplican cargos por elalmacenamiento y el uso de las claves de cifrado. Para obtener más información, consulte los precios deAWS KMS.

En este tema se ofrecen detalles para una política de claves para una CMK de AWS KMS que se va ausar con Amazon EMR, así como directrices y ejemplos de código para escribir una clase de proveedor declaves personalizadas para el cifrado de Amazon S3. Para obtener más información acerca de la creaciónde claves, consulte la sección sobre la creación de claves en la AWS Key Management Service DeveloperGuide.

Uso de claves maestras de cliente (CMK) de AWS KMS para cifrado

La clave de cifrado de AWS KMS debe crearse en la misma región que la instancia de clúster de AmazonEMR y los buckets de Amazon S3 utilizados con EMRFS. Si la clave especificada está en una cuentadistinta de la que utiliza para configurar un clúster, debe especificar dicha clave mediante su ARN.

El rol para el perfil de instancia de Amazon EC2 debe tener permisos para utilizar la CMKque se especifique. El rol predeterminado para el perfil de instancia en Amazon EMR esEMR_EC2_DefaultRole. Si utiliza un rol distinto para el perfil de instancia, o usa roles de IAM paralas solicitudes de EMRFS a Amazon S3, asegúrese de que cada rol se añade como usuario de clavessegún corresponda. Esto proporciona al rol permisos para utilizar la CMK. Para obtener más información,consulte Uso de políticas de claves en la AWS Key Management Service Developer Guide y Rol deservicio para instancias EC2 del clúster (perfil de instancia EC2) (p. 211).

Puede utilizar la Consola de administración de AWS para añadir su perfil de instancia o un perfil deinstancia de EC2 a la lista de usuarios clave de la CMK de AWS KMS especificada o puede usar la AWSCLI o un SDK de AWS para asociar una política de claves adecuada.

El siguiente procedimiento describe cómo añadir el perfil de instancia de EMR predeterminado,EMR_EC2_DefaultRole, como un usuario de claves con la Consola de administración de AWS. Sesupone que ya ha creado una CMK. Para crear una nueva CMK, consulte Creación de claves en la AWSKey Management Service Developer Guide.

Para añadir el perfil de instancia EC2 para Amazon EMR a la lista de usuarios de claves de cifrado

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Key ManagementService (AWS KMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la región AWS, utilice el selector de regiones en la esquina superior derecha de lapágina.

3. Seleccione el alias de la CMK que modificar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el cuadro de diálogo Add key users (Agregar usuarios clave), seleccione el rol adecuado. El

nombre del rol predeterminado es EMR_EC2_DefaultRole.6. Elija Add.

Habilitación del cifrado de EBS al proporcionar permisos adicionales para las CMK de AWS KMS

A partir de Amazon EMR, versión 5.24.0, puede cifrar el dispositivo raíz y los volúmenes dealmacenamiento de EBS al utilizar una opción de configuración de seguridad. Para habilitar esa opción,debe especificar a AWS KMS como su proveedor de claves. Además, debe conceder el rol de servicio deEMR EMR_DefaultRole con permisos para utilizar la clave maestra de cliente (CMK) que especifique.

Puede utilizar la Consola de administración de AWS para añadir su rol de servicio de EMR a la lista deusuarios clave de la CMK de AWS KMS especificada o puede usar la AWS CLI o un SDK de AWS paraadjuntar una política de claves adecuada.

195

Page 203: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

El siguiente procedimiento describe cómo añadir el rol de servicio de EMR predeterminado,EMR_DefaultRole, como un usuario de claves con la Consola de administración de AWS. Se suponeque ya ha creado una CMK. Para crear una nueva CMK, consulte Creación de claves en la AWS KeyManagement Service Developer Guide.

Para añadir el rol de servicio de EMR a la lista de usuarios de claves de cifrado

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Key ManagementService (AWS KMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la región AWS, utilice el selector de regiones en la esquina superior derecha de lapágina.

3. Seleccione el alias de la CMK que modificar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el cuadro de diálogo Add key users (Añadir usuarios clave), seleccione el rol adecuado. El nombre

del rol de servicio de EMR es EMR_DefaultRole.6. Elija Add.

Creación de un proveedor de claves personalizadas

Cuando se utiliza una configuración de seguridad, es necesario especificar un nombre de clase deproveedor distinto para el cifrado de disco local y el cifrado de Amazon S3.

Cuando se crea un proveedor de claves personalizadas, se espera que la aplicación implemente lainterfaz EncryptionMaterialsProvider, que está disponible en la versión 1.11.0 y posteriores de AWSSDK for Java. La aplicación puede utilizar cualquier estrategia para proporcionar materiales de cifrado.Puede, por ejemplo, seleccionar proporcionar materiales de cifrado estáticos o integrar con un sistema deadministración de claves más complejo.

El algoritmo de cifrado utilizado para materiales de cifrado personalizados debe ser AES/GCM/NoPadding.

La clase EncryptionMaterialsProvider obtiene materiales de cifrado mediante el contexto de cifrado.Amazon EMR rellena la información de contexto de cifrado en tiempo de ejecución para ayudar alintermediario a determinar los materiales de cifrado correctos que debe devolver.

Example Ejemplo: uso de un proveedor de claves de cifrado personalizadas para cifrado deAmazon S3 con EMRFS

Cuando Amazon EMR recupera los materiales de cifrado desde la clase EncryptionMaterialsProviderpara realizar el cifrado, EMRFS rellena opcionalmente el argumento materialsDescription con doscampos: el URI de Amazon S3 para el objeto y JobFlowId del clúster, que puede utilizar la claseEncryptionMaterialsProvider para devolver materiales de cifrado de manera selectiva.

Por ejemplo, el proveedor podría devolver claves distintas para diferentes prefijos URI de Amazon S3.Se trata de la descripción de los materiales de cifrado devuelta que se almacena finalmente con el objetode Amazon S3 en lugar del valor materialsDescription que genera EMRFS y se transfiere al proveedor.Al descifrar un objeto de Amazon S3, la descripción de materiales de cifrado se transfiere a la claseEncryptionMaterialsProvider, de modo que puede, nuevamente, devolver de forma selectiva la clavecoincidente para descifrar el objeto.

A continuación, se proporciona una implementación de referencia EncryptionMaterialsProvider. Otroproveedor personalizado, EMRFSRSAEncryptionMaterialsProvider, está disponible desde GitHub.

import com.amazonaws.services.s3.model.EncryptionMaterials;import com.amazonaws.services.s3.model.EncryptionMaterialsProvider;import com.amazonaws.services.s3.model.KMSEncryptionMaterials;import org.apache.hadoop.conf.Configurable;import org.apache.hadoop.conf.Configuration;

196

Page 204: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

import java.util.Map;

/** * Provides KMSEncryptionMaterials according to Configuration */public class MyEncryptionMaterialsProviders implements EncryptionMaterialsProvider, Configurable{ private Configuration conf; private String kmsKeyId; private EncryptionMaterials encryptionMaterials;

private void init() { this.kmsKeyId = conf.get("my.kms.key.id"); this.encryptionMaterials = new KMSEncryptionMaterials(kmsKeyId); }

@Override public void setConf(Configuration conf) { this.conf = conf; init(); }

@Override public Configuration getConf() { return this.conf; }

@Override public void refresh() {

}

@Override public EncryptionMaterials getEncryptionMaterials(Map<String, String> materialsDescription) { return this.encryptionMaterials; }

@Override public EncryptionMaterials getEncryptionMaterials() { return this.encryptionMaterials; }}

Proporcionar certificados para cifrado de datos en tránsito con cifrado de AmazonEMR

Con la versión 4.8.0 o posterior de Amazon EMR, dispone de dos opciones para especificar artefactos parael cifrado de datos en tránsito utilizando una configuración de seguridad:

• Puede crear manualmente certificados PEM, incluirlos en un archivo zip y, a continuación, hacerreferencia al archivo zip en Amazon S3.

• Puede implementar un proveedor de certificados personalizado como una clase Java. Deberáespecificar el archivo JAR de la aplicación en Amazon S3 y, a continuación, proporcionar el nombre de laclase completa del proveedor tal como se declara en la aplicación. La clase debe implementar la interfazTLSArtifactsProvider disponible a partir del AWS SDK for Java versión 1.11.0.

Amazon EMR descarga automáticamente artefactos en cada nodo del clúster y posteriormente los utilizapara implementar las características de cifrado en tránsito de código abierto. Para obtener más informaciónsobre las opciones disponibles, consulte Cifrado en tránsito (p. 194).

197

Page 205: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

Uso de certificados PEM

Cuando especifique un archivo zip para el cifrado en tránsito, la configuración de seguridad espera que losarchivos PEM dentro del archivo zip se nombren exactamente tal y como aparecen a continuación:

Certificados de cifrado en tránsito

Nombre de archivo Obligatorio/opcional Detalles

privateKey.pem Obligatorio Clave privada

certificateChain.pem Obligatorio Cadena de certificados

trustedCertificates.pem Opcional Obligatorio si el certificadoproporcionado no estáfirmado por la autoridad decertificación (CA) raíz deconfianza predeterminadade Java o una CA intermediaque enlace a la CA de raíz deconfianza predeterminada deJava. Las CA raíz de confianzapredeterminadas de Javapueden encontrarse en jre/lib/security/cacerts.

Es probable que desee configurar el archivo PEM de clave privada como un certificado comodín quepermita el acceso al dominio de Amazon VPC en el que residen las instancias de clúster. Por ejemplo, si elclúster se encuentran en la región us-east-1 (Norte de Virginia), puede elegir especificar un nombre comúnen la configuración de certificado que permita el acceso al clúster especificando CN=*.ec2.internalen la definición del sujeto del certificado. Si el clúster reside en us-west-2 (Oregón), puede especificarCN=*.us-west-2.compute.internal. Para obtener más información sobre la configuración del clústerde EMR dentro de Amazon VPC, consulte Selección de una subred de Amazon VPC para el clúster.

En el siguiente ejemplo, se muestra cómo utilizar OpenSSL para generar un certificado X.509 autofirmadocon una clave privada RSA de 1024 bits. La clave permite el acceso a las instancias de clúster de AmazonEMR del emisor en la región us-west-2 (Oregón), tal y como se especifica mediante el nombre de dominio*.us-west-2.compute.internal como nombre común.

Se especifican otros elementos del sujeto opcionales como país (C), estado (S) y configuración regional(L). Dado que se genera un certificado autofirmado, el segundo comando del ejemplo copia el archivocertificateChain.pem en el archivo trustedCertificates.pem. El tercer comando utiliza zippara crear el archivo my-certs.zip que contiene los certificados.

Important

Este ejemplo es solo una demostración de la prueba de concepto. El uso de certificadosautofirmados no se recomienda y presenta un posible riesgo para la seguridad. En el caso delos sistemas de producción, utilice una autoridad de certificación (CA) de confianza para emitircertificados.

$ openssl req -x509 -newkey rsa:1024 -keyout privateKey.pem -out certificateChain.pem -days 365 -nodes -subj '/C=US/ST=Washington/L=Seattle/O=MyOrg/OU=MyDept/CN=*.us-west-2.compute.internal'$ cp certificateChain.pem trustedCertificates.pem$ zip -r -X my-certs.zip certificateChain.pem privateKey.pem trustedCertificates.pem

198

Page 206: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónIAM por Amazon EMR

AWS Identity and Access Management paraAmazon EMR

AWS Identity and Access Management (IAM) es un servicio de AWS que ayuda a un administrador acontrolar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quiénpuede ser autenticado (iniciar sesión) y estar autorizado (tener permisos) para utilizar los recursos deAmazon EMR. IAM es un servicio de AWS que se puede utilizar sin costo adicional.

Temas• Público (p. 199)• Autenticación con identidades (p. 199)• Administración de acceso mediante políticas (p. 201)• Funcionamiento de Amazon EMR con IAM (p. 203)• Configurar roles de servicio deIAM para los permisos de Amazon EMR para los servicios y recursos de

AWS (p. 205)• Ejemplos de políticas basadas en identidades de Amazon EMR (p. 231)

PúblicoLa forma en que utilice AWS Identity and Access Management (IAM) difiere, en función del trabajo querealice en Amazon EMR.

Usuario de servicio: si utiliza el servicio Amazon EMR para realizar su trabajo, su administrador leproporciona las credenciales y los permisos que necesita. A medida que utilice más características deAmazon EMR para realizar su trabajo, es posible que necesite permisos adicionales. Entender cómo seadministra el acceso puede ayudarle a solicitar los permisos correctos a su administrador.

Administrador de servicio: si está a cargo de los recursos de Amazon EMR en su empresa, probablementetenga acceso completo a Amazon EMR. Su trabajo consiste en determinar qué a características yrecursos de Amazon EMR deben acceder sus empleados. A continuación, debe enviar solicitudes a suadministrador de IAM para cambiar los permisos de los usuarios de su servicio. Revise la informaciónde esta página para conocer los conceptos básicos de IAM. Para obtener más información sobre cómosu empresa puede utilizar IAM con Amazon EMR, consulte Funcionamiento de Amazon EMR conIAM (p. 203).

Administrator de IAM: si es un administrador de IAM, es posible que quiera conocer información sobrecómo escribir políticas para administrar el acceso a Amazon EMR. Para ver ejemplos de políticas basadasen la identidad de Amazon EMR que puede utilizar en IAM, consulte Ejemplos de políticas basadas enidentidades de Amazon EMR (p. 231).

Autenticación con identidadesLa autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Para obtenermás información acerca del inicio de sesión con la Consola de administración de AWS, consulte Laconsola de IAM y la página de inicio de sesión en la Guía del usuario de IAM.

Debe estar autenticado (haber iniciado sesión en AWS) como Usuario de la cuenta raíz de AWS, usuariode IAM o asumiendo un rol de IAM. También puede utilizar la autenticación de inicio de sesión único desu empresa o incluso iniciar sesión con Google o Facebook. En estos casos, su administrador habráconfigurado previamente la federación de identidad mediante roles de IAM. Cuando obtiene acceso a AWSmediante credenciales de otra empresa, asume un rol indirectamente.

199

Page 207: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAutenticación con identidades

Para iniciar sesión directamente en la Consola de administración de AWS, use su contraseña con sucorreo electrónico usuario raíz o su nombre de usuario de IAM. Puede obtener acceso a AWS medianteprogramación utilizando sus claves de acceso usuario raíz o de usuario de IAM. AWS proporciona SDK yherramientas de línea de comandos para firmar criptográficamente su solicitud con sus credenciales. Si noutiliza las herramientas de AWS, debe firmar usted mismo la solicitud. Para ello, utilice Signature Version4, un protocolo para autenticar solicitudes de API de entrada. Para obtener más información acerca de laautenticación de solicitudes, consulte Proceso de firma Signature Version 4 en la AWS General Reference.

Independientemente del método de autenticación que utilice, es posible que también deba proporcionarinformación de seguridad adicional. Por ejemplo, AWS le recomienda el uso de la autenticación multifactor(MFA) para aumentar la seguridad de su cuenta. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) en AWS en la Guía del usuario de IAM.

Usuario raíz de la cuenta de AWSCuando se crea por primera vez una cuenta de AWS, se comienza con una única identidad de inicio desesión que tiene acceso completo a todos los servicios y recursos de AWS de la cuenta. Esta identidadrecibe el nombre de AWS de la cuenta de usuario raíz y se obtiene acceso a ella iniciando sesión con ladirección de correo electrónico y la contraseña que utilizó para crear la cuenta. Le recomendamos queno utilice usuario raíz en sus tareas cotidianas, ni siquiera en las tareas administrativas. En lugar de ello,es mejor ceñirse a la práctica recomendada de utilizar exclusivamente usuario raíz para crear el primerusuario de IAM. A continuación, guarde las credenciales de usuario raíz en un lugar seguro y utilícelasúnicamente para algunas tareas de administración de cuentas y servicios.

Usuarios y grupos de IAMUn usuario de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos para unasola persona o aplicación. Un usuario de IAM puede tener credenciales a largo plazo, como un nombrede usuario y una contraseña o un conjunto de claves de acceso. Para obtener más información acerca decómo generar claves de acceso, consulte Administración de las claves de acceso de los usuarios de IAMen la Guía del usuario de IAM. Al generar claves de acceso para un usuario de IAM, asegúrese de ver yguardar de forma segura el par de claves. No puede recuperar la clave de acceso secreta en el futuro. Ensu lugar, debe generar un nuevo par de claves de acceso.

Un grupo de IAM es una identidad que especifica un conjunto de usuarios de IAM. No puede iniciar sesióncomo grupo. Puede usar los grupos para especificar permisos para varios usuarios a la vez. Los gruposfacilitan la administración de los permisos de grandes conjuntos de usuarios. Por ejemplo, podría tener ungrupo cuyo nombre fuese Administradores de IAM y conceder permisos a dicho grupo para administrar losrecursos de IAM.

Los usuarios son diferentes de los roles. Un usuario se asocia exclusivamente a una persona o aplicación,pero la intención es que cualquier usuario pueda asumir un rol que necesite. Los usuarios tienencredenciales permanentes a largo plazo y los roles proporcionan credenciales temporales. Para obtenermás información, consulte Cuándo crear un usuario de IAM (en lugar de un rol) en la Guía del usuario deIAM.

Roles de IAMUn rol de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos. Es similar aun usuario de IAM, pero no está asociado a una determinada persona. Puede asumir temporalmente unrol de IAM en la Consola de administración de AWS cambiando de roles. Puede asumir un rol llamandoa una operación de la AWS CLI o de la API de AWS, o utilizando una URL personalizada. Para obtenermás información acerca de los métodos para el uso de roles, consulte Uso de roles de IAM en la Guía delusuario de IAM.

Los roles de IAM con credenciales temporales son útiles en las siguientes situaciones:

200

Page 208: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAdministración de acceso mediante políticas

• Permisos de usuario temporales de IAM: un usuario de IAM puede asumir un rol de IAM para recibirtemporalmente permisos distintos que le permitan realizar una tarea concreta.

• Acceso de usuario federado: En lugar de crear un usuario de IAM, puede utilizar identidades existentesde AWS Directory Service, del directorio de usuarios de la empresa o de un proveedor de identidadesweb. A estas identidades se les llama usuarios federados. AWS asigna una función a un usuariofederado cuando se solicita acceso a través de un proveedor de identidad. Para obtener másinformación acerca de los usuarios federados, consulte Usuarios federados y roles en la Guía delusuario de IAM.

• Acceso entre cuentas: puede utilizar un rol de IAM para permitir que alguien (una entidad principal deconfianza) de otra cuenta obtenga acceso a los recursos de su cuenta. Los roles son la forma principalde conceder acceso entre cuentas. Sin embargo, con algunos servicios de AWS, puede asociar unapolítica directamente a un recurso (en lugar de utilizar un rol como proxy). Para obtener informaciónacerca de la diferencia entre los roles y las políticas basadas en recursos para el acceso entre cuentas,consulte Cómo los roles de IAM difieren de las políticas basadas en recursos en la Guía del usuario deIAM.

• Acceso a servicios de AWS: Un rol de servicio es un rol de IAM que un servicio asume para realizaracciones en su cuenta en su nombre. Al configurar algunos de los entornos de los servicios de AWS,debe definir un rol que el servicio asumirá. Este rol de servicio debe incluir todos los permisos queson necesarios para que el servicio pueda acceder a los recursos de AWS que necesita. Los roles deservicio varían de servicio a servicio, pero muchos le permiten elegir sus permisos, siempre y cuandose cumplan los requisitos documentados para dicho servicio. Los roles de servicio ofrecen acceso solodentro de su cuenta y no se pueden utilizar para otorgar acceso a servicios en otras cuentas. Puedecrear, modificar y eliminar un rol de servicio desde IAM. Por ejemplo, puede crear un rol que permitaa Amazon Redshift tener acceso a un bucket de Amazon S3 en su nombre y, a continuación, cargarlos datos de ese bucket en un clúster de Amazon Redshift. Para obtener más información, consulteCreación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario de IAM.

• Aplicaciones que se ejecutan en Amazon EC2: Puede utilizar un rol de IAM para administrarcredenciales temporales para las aplicaciones que se ejecutan en una instancia EC2 y realizansolicitudes de la AWS CLI o la API de AWS. Es preferible hacerlo de este modo a almacenar claves deacceso en la instancia EC2. Para asignar un rol de AWS a una instancia EC2 y ponerla a disposición detodas las aplicaciones, cree un perfil de instancia asociado a la misma. Un perfil de instancia contiene elrol y permite a los programas que se ejecutan en la instancia EC2 obtener credenciales temporales. Paraobtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que seejecutan en instancias Amazon EC2 en la Guía del usuario de IAM.

Para obtener información acerca del uso de los roles de IAM, consulte Cuándo crear un rol de IAM (en vezde un usuario) en la Guía del usuario de IAM.

Administración de acceso mediante políticasPara controlar el acceso en AWS, se crean políticas y se asocian a identidades de IAM o recursos deAWS. Una política es un objeto de AWS que, cuando se asocia a una identidad o un recurso, definesus permisos. AWS evalúa estas políticas cuando una entidad principal (usuario raíz, usuario de IAM orol de IAM) realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o sedeniega. Las mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtenermás información acerca de la estructura y el contenido de los documentos de política JSON, consulteInformación general de las políticas de JSON en la Guía del usuario de IAM.

Un administrador de IAM puede utilizar las políticas para especificar quién tiene acceso a los recursos deAWS y qué acciones se pueden realizar en dichos recursos. Cada entidad de IAM (usuario o rol) comienzasin permisos. En otras palabras, de forma predeterminada, los usuarios no pueden hacer nada, ni siquieracambiar sus propias contraseñas. Para conceder permiso a un usuario para hacer algo, el administradordebe asociarle una política de permisos. O bien el administrador puede añadir al usuario a un grupo quetenga los permisos necesarios. Cuando el administrador concede permisos a un grupo, todos los usuariosde ese grupo obtienen los permisos.

201

Page 209: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAdministración de acceso mediante políticas

Las políticas de IAM definen permisos para una acción independientemente del método que se utilicepara realizar la operación. Por ejemplo, suponga que dispone de una política que permite la accióniam:GetRole. Un usuario con dicha política puede obtener información del usuario de la Consola deadministración de AWS, la AWS CLI o la API de AWS.

Políticas basadas en la identidadLas políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociara una identidad, como por ejemplo un usuario, un rol o un grupo de IAM. Estas políticas controlan quéacciones puede realizar dicha identidad, en qué recursos y en qué condiciones. Para obtener másinformación acerca de cómo crear una política basada en identidad, consulte Creación de políticas de IAMen la Guía del usuario de IAM.

Las políticas basadas en identidad pueden clasificarse además como políticas insertadas o políticasadministradas. Las políticas insertadas se integran directamente en un único usuario, grupo o rol. Laspolíticas administradas son políticas independientes que puede asociar a varios usuarios, grupos y rolesde su cuenta de AWS. Las políticas administradas incluyen las políticas administradas por AWS y laspolíticas administradas por el cliente. Para obtener más información acerca de cómo elegir una políticaadministrada o una política insertada, consulte Elegir entre políticas administradas y políticas insertadas enla Guía del usuario de IAM.

Otros tipos de políticasAWS admite otros tipos de políticas menos frecuentes. Estos tipos de políticas pueden establecer elmáximo de permisos que los tipos de políticas más frecuentes le otorgan.

• Límites de permisos: un límite de permisos es una característica avanzada que le permite definir lospermisos máximos que una política basada en identidad puede conceder a una entidad de IAM (usuarioo rol de IAM). Puede establecer un límite de permisos para una identidad. Los permisos resultantes sonla intersección de las políticas basadas en identidades de la entidad y los límites de sus permisos. Laspolíticas basadas en recursos que especifiquen el usuario o rol en el campo Principal no estaránrestringidas por el límite de permisos. Una denegación explícita en cualquiera de estas políticas anularáel permiso. Para obtener más información acerca de los límites de permisos, consulte see Límites depermisos para las entidades de IAM en la Guía del usuario de IAM.

• Políticas de control de servicios (SCP): las SCP son políticas de JSON que especifican los permisosmáximos para una organización o unidad organizativa (OU) en AWS Organizations. AWS Organizationses un servicio que le permite agrupar y administrar de forma centralizada varias cuentas de AWSque posee su negocio. Si habilita todas las funciones en una organización, entonces podrá aplicarpolíticas de control de servicio (SCP) a una o todas sus cuentas. Una SCP limita los permisos para lasentidades de las cuentas de miembros, incluido cada Usuario de la cuenta raíz de AWS. Para obtenermás información acerca de Organizaciones y las SCP, consulte Funcionamiento de las SCP en la Guíadel usuario de AWS Organizations.

• Políticas de sesión: las políticas de sesión son políticas avanzadas que se pasan como parámetrocuando se crea una sesión temporal mediante programación para un rol o un usuario federado. Lospermisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y laspolíticas de la sesión. Los permisos también pueden proceder de una política basada en recursos. Unadenegación explícita en cualquiera de estas políticas anulará el permiso. Para obtener más información,consulte Políticas de sesión en la Guía del usuario de IAM.

Varios tipos de políticasCuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicadosde entender. Para obtener información acerca de cómo AWS determina si permitir una solicitud cuandohay varios tipos de políticas implicados, consulte Lógica de evaluación de políticas en la Guía del usuariode IAM.

202

Page 210: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónFuncionamiento de Amazon EMR con IAM

Funcionamiento de Amazon EMR con IAMCon las políticas basadas en identidad de IAM, puede especificar las acciones permitidas o denegadas ylos recursos además de las condiciones en las que se permiten o deniegan las acciones. Amazon EMRadmite acciones, recursos y claves de condiciones específicos. Para obtener más información acerca delos elementos que utiliza en una política de JSON, consulte Referencia de los elementos de las políticas deJSON de IAM en la Guía del usuario de IAM.

Amazon EMR no admite las políticas basadas en recursos.

ActionsEl elemento Action de una política basada en identidad de IAM describe la acción o las accionesespecíficas que la política permitirá o denegará. Las acciones de la política generalmente tienen el mismonombre que la operación de API de AWS asociada. La acción se utiliza en una política para otorgarpermisos para realizar la operación asociada.

Las acciones de políticas de Amazon EMR utilizan el siguiente prefijo antes de la acción:elasticmapreduce:. Por ejemplo, para conceder a alguien permiso para crear un clúster con laoperación de API con la operación de la API elasticmapreduce:RunJobFlow de RunJobFlow, incluyala acción en su política. Las instrucciones de política deben incluir un elemento Action o NotAction.Amazon EMR define su propio conjunto de acciones que describen las tareas que se pueden realizar coneste servicio.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

"Action": [ "elasticmapreduce:action1", "elasticmapreduce:action2"

Puede utilizar caracteres comodín para especificar varias acciones (*). Por ejemplo, para especificar todaslas acciones que comiencen con la palabra Describe, incluya la siguiente acción:

"Action": "elasticmapreduce:Describe*"

Para ver una lista de acciones de Amazon EMR, consulte Actions Defined by Amazon EMR en la Guía delusuario de IAM.

RecursosEl elemento Resource especifica el objeto u objetos a los que se aplica la acción. Las instrucciones debencontener un elemento Resource o NotResource. Especifique un recurso con un ARN o el caráctercomodín (*) para indicar que la instrucción se aplica a todos los recursos.

Para ver una lista de los tipos de recursos de Amazon EMR y sus ARN, consulte Resources Defined byAmazon EMR en la Guía del usuario de IAM. Para obtener información acerca de con qué acciones puedeespecificar los ARN de cada recurso, consulte Actions Defined by Amazon EMR.

Claves de condiciónEl elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra envigor una instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales queutilizan operadores de condición, tales como igual o menor que, para que coincida la condición de lapolítica con valores de la solicitud.

203

Page 211: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónFuncionamiento de Amazon EMR con IAM

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento deCondition, AWS las evalúa mediante una operación AND lógica. Si especifica varios valores para unaúnica clave de condición, AWS evalúa la condición con una operación lógica OR. Se deben cumplir todaslas condiciones antes de que se concedan los permisos de la instrucción.

También puede utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puedeconceder un permiso de usuario de IAM para acceder a un recurso solo si está etiquetado con su nombrede usuario de IAM. Para obtener más información, consulte Elementos de la política de IAM: Variables yetiquetas en la Guía del usuario de IAM.

Amazon EMR define su propio conjunto de claves de condición y también admite el uso de algunas clavesde condición globales. Para ver todas las claves de condición globales de AWS, consulte Claves decontexto de condición globales de AWS en la Guía del usuario de IAM.

Todas las acciones de Amazon EC2 admiten las claves de condición aws:RequestedRegion yec2:Region. Para obtener más información, consulte Ejemplo: restricción del acceso a una regiónespecífica.

Para ver una lista de claves de condición de Amazon EMR, consulte Condition Keys for Amazon EMR en laGuía del usuario de IAM. Para obtener más información acerca de las acciones y los recursos con los quepuede utilizar una clave de condición, consulte Actions Defined by Amazon EMR.

Utilizar etiquetas de clúster y bloc de notas con políticas de IAM para control deacceso

Es posible ajustar el permiso para acciones de Amazon EMR asociadas con Cuadernos de EMR yclústeres de EMR con control de acceso basado en etiquetas con políticas de IAM basadas en identidades.Puede utilizar claves de condición en un Conditionelemento (también denominado bloqueCondition)para permitir ciertas acciones solo cuando un bloc de notas, un clúster o ambos tengan una clave deetiqueta o una combinación clave-valor determinadas. También puede limitar la acción CreateEditor(que crea un Cuaderno de EMR) y la acción RunJobFlow (que crea un clúster), de modo que una solicitudse envíe al crear dicho recurso.

En Amazon EMR, las claves de condición que se pueden utilizar en un elemento Condition se aplicanúnicamente a las acciones de la API de Amazon EMR donde ClusterID o NotebookID es un parámetrode solicitud necesario. Por ejemplo, la acción ModifyInstanceGroups no admite las claves de contextoporque ClusterID es un parámetro opcional.

Al crear un bloque de notas de EMR, se aplica una etiqueta predeterminada con una cadena de clave decreatorUserId que se establece en el valor del ID de usuario de IAM que ha creado el bloc de notas.Esto resulta útil para limitar las acciones permitidas en el bloc de notas únicamente al creador.

Las siguientes claves de condición están disponibles en Amazon EMR:

• Utilice la clave de contexto de condición elasticmapreduce:ResourceTag/TagKeyString parapermitir o denegar las acciones de los usuarios en clústeres o blocs de notas con etiquetas que tienen lacadena TagKeyString que especifique. Si una acción pasa ClusterID y NotebookID, la condiciónse aplica al clúster y al bloc de notas. Esto significa que ambos recursos deben tener la cadena de clavede etiqueta o la combinación clave-valor que especifique. Puede utilizar el elemento Resource paralimitar la instrucción de modo que se aplique únicamente a los clústeres o los blocs de notas que lonecesiten. Para obtener más información, consulte Ejemplos de políticas basadas en identidades deAmazon EMR (p. 231).

• Utilice la clave de contexto de condición elasticmapreduce:RequestTag/TagKeyString pararequerir una etiqueta específica con acciones/llamadas al API. Por ejemplo, puede utilizar la clave decontexto de condición junto con la acción CreateEditor para requerir que se aplique una clave con lacadena TagKeyString a un bloc de notas cuando se crea este.

204

Page 212: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

EjemplosPara ver ejemplos de políticas basadas en identidad de Amazon EMR, consulte Ejemplos de políticasbasadas en identidades de Amazon EMR (p. 231).

Configurar roles de servicio deIAM para los permisosde Amazon EMR para los servicios y recursos deAWSAmazon EMR y las aplicaciones como Hadoop necesitan permisos para obtener acceso a otros recursosde AWS y realizar acciones cuando se ejecutan. Cada clúster de Amazon EMR debe tener un rol deservicio y un rol para el perfil de instancia de Amazon EC2. Las políticas de IAM asociadas a estos rolesproporcionan permisos que permiten al clúster interoperar con otros servicios de AWS en nombre de unusuario.

Es necesario otro rol adicional, el rol de Auto Scaling, si el clúster utiliza el escalado automático en AmazonEMR. El rol de AWS servicio para Cuadernos de EMR es necesario si utiliza Cuadernos de EMR. Paraobtener más información, consulte Roles de IAM y Uso de perfiles de instancia en la Guía del usuario deIAM.

Amazon EMR proporciona roles predeterminados y políticas administradas predeterminadas para cada rolque determina permisos. Las políticas administradas las crea y las mantiene AWS, por lo que se actualizanautomáticamente si cambian los requisitos de servicio.

Si está creando un clúster o un cuaderno por primera vez en una cuenta, los roles para Amazon EMRaún no existen. Una vez creados, es posible ver los roles, las políticas asociadas a ellos y los permisosconcedidos o denegados por estas políticas en la consola de IAM (https://console.aws.amazon.com/iam/).Puede especificar los roles predeterminados para Amazon EMR para crear y utilizar, puede crear suspropios roles y especificarlos de manera individual al crear un clúster para personalizar los permisos, ypuede especificar roles predeterminados que se utilizará al crear un clúster mediante la AWS CLI. Paraobtener más información, consulte Personalización de roles de IAM (p. 223).

Modificación de políticas basadas en identidades para permisospara transferir roles de servicio para Amazon EMRLos usuarios del clúster necesitan permisos para aplicaciones con el fin de pasar los roles de servicio paraAmazon EMR en su nombre. La política de permisos AmazonElasticMapReduceFullAccess, que esla política administrada predeterminada que proporciona a los usuarios permisos completos para AmazonEMR, incluye una instrucción que concede los permisos iam:PassRole para todos los recursos. Estainstrucción permite al usuario transferir cualquier rol a otros servicios de AWS para que Amazon EMRpueda interactuar con dichos servicios en nombre del usuario.

Si desea implementar una política más restrictiva, asocie una política insertada a los usuarios o gruposapropiados que conceda el permiso iam:PassRole únicamente a los roles específicos de AmazonEMR. En el siguiente ejemplo se muestra una instrucción que concede permisos iam:PassRoleúnicamente a los roles de Amazon EMR predeterminados: EMR_DefaultRole, EMR_EC2_DefaultRoley EMR_AutoScalingDefaultRole. Si utiliza roles personalizados, sustituya los nombres de rolpredeterminados por nombres de rol personalizados.

{ "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/EMR_DefaultRole", "arn:aws:iam::*:role/EMR_EC2_DefaultRole", "arn:aws:iam::*:role/EMR_AutoScaling_DefaultRole",

205

Page 213: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"arn:aws:iam::*:role/EMR_Notebooks_DefaultRole" ]}

Resumen de rol de servicioEn la siguiente tabla se muestran los roles de servicio de IAM asociados con Amazon EMR para unaconsulta rápida.

Función Rol predeterminado Descripción Política administradapredeterminada

Rol de servicio paraAmazon EMR (Rol deEMR) (p. 209)

EMR_DefaultRole Permite a Amazon EMRllamar a otros serviciosde AWS en su nombreal aprovisionar recursosy llevar a cabo accionesa nivel de servicio. Esterol es necesario paratodos los clústeres.

AmazonElasticMapReduceRole

Important

La solicitud deinstancias despot requiereun rol vinculadoa un servicio.Si este rol noexiste, el rolde EMR debetener permisospara crearlo; encaso contrario,se produciráun error depermisos.La políticaadministradaincluye unainstrucciónpara permitiresta acción.Si personalizaeste rol oesta política,asegúresede incluir unainstrucciónque permitala creaciónde este rolvinculado a unservicio. Paraobtener másinformación,consulte Rolde serviciopara AmazonEMR (Rol deEMR) (p. 209)y Rol vinculadoa servicios parasolicitudes de

206

Page 214: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Función Rol predeterminado Descripción Política administradapredeterminada

instancia despot en la Guíadel usuario deAmazon EC2para instanciasde Linux.

Rol de serviciopara instanciasEC2 del clúster(perfil de instanciaEC2) (p. 211)

EMR_EC2_DefaultRole Los procesos deaplicación que seejecutan sobre elecosistema de Hadoop,en las instancias delclúster, utilizan esterol cuando hacenllamadas a otrosservicios de AWS.Para obtener acceso alos datos en AmazonS3 usando EMRFS,puede especificardiferentes roles que seasumirán en funcióndel usuario o grupoque realiza la solicitud,o de la ubicación delos datos en AmazonS3. Para obtener másinformación, consulteConfiguración deroles de IAM para lassolicitudes de EMRFS aAmazon S3 (p. 225).Este rol es necesariopara todos los clústeres.

AmazonElasticMapReduceforEC2Role.Para obtener másinformación, consulteRol de serviciopara instanciasEC2 del clúster(perfil de instanciaEC2) (p. 211).

Rol de servicio para elescalado automáticoen EMR (rol de AutoScaling) (p. 215)

EMR_AutoScaling_DefaultRolePermite accionesadicionales paraentornos de escaladodinámico. Solo esobligatorio para losclústeres que utilizanel escalado automáticoen Amazon EMR.Para obtener másinformación, consulteUso del escaladoautomático con unapolítica personalizadapara grupos deinstancias (p. 382).

AmazonElasticMapReduceforAutoScalingRole.Para obtener másinformación, consulteRol de servicio para elescalado automáticoen EMR (rol de AutoScaling) (p. 215).

207

Page 215: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Función Rol predeterminado Descripción Política administradapredeterminada

Rol de serviciopara Cuadernos deEMR (p. 216)

EMR_Notebooks_DefaultRoleProporciona permisosque un Cuaderno deEMR necesita paraobtener acceso a otrosrecursos de AWS yrealizar acciones. Soloes obligatorio si seutiliza Cuadernos deEMR.

AmazonElasticMapReduceEditorsRole.Para obtener másinformación, consulteRol de serviciopara Cuadernos deEMR (p. 216).

También se asociaS3FullAccessPolicyde formapredeterminada. Acontinuación se muestrael contenido de estapolítica.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ]}

Rol vinculado aservicio (p. 217)

AWSServiceRoleForEMRCleanupAmazon EMR creaautomáticamente un rolvinculado al servicio. Siel servicio de AmazonEMR ha perdido lacapacidad de limpiarlos recursos de AmazonEC2, Amazon EMRpuede utilizar esterol para limpiar estaoperación. Si un clústerutiliza instancias despot, la política depermisos vinculada alRol de servicio paraAmazon EMR (Rol deEMR) (p. 209) debepermitir la creaciónde un rol vinculado alservicio. Para obtenermás información,consulte Permisos defunciones vinculadas aservicios para AmazonEMR (p. 217).

AmazonEMRCleanupPolicy

208

Page 216: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Temas• Roles de servicio de IAM usados por Amazon EMR (p. 209)• Personalización de roles de IAM (p. 223)• Configuración de roles de IAM para las solicitudes de EMRFS a Amazon S3 (p. 225)• Uso de políticas basadas en recursos para el acceso de Amazon EMR a AWS Glue Data

Catalog (p. 230)• Uso de roles de IAM con las aplicaciones que llaman directamente a los servicios de AWS (p. 230)• Cómo permitir a los usuarios y grupos crear y modificar roles (p. 231)

Roles de servicio de IAM usados por Amazon EMRAmazon EMR utiliza roles de servicio de IAM para llevar a cabo acciones en su nombre al aprovisionarlos recursos del clúster, ejecutar aplicaciones, escalar recursos de forma dinámica y crear y ejecutarCuadernos de EMR. Amazon EMR utiliza los siguientes roles al interactuar con otros servicios de AWS.Cada rol tiene una función exclusiva en Amazon EMR. Los temas de esta sección describen la función delrol y facilitan los roles y la política de permisos predeterminados para cada rol.

Si tiene código de aplicación en el clúster que llama directamente a los servicios de AWS, es posible quetenga que utilizar el SDK para especificar las funciones. Para obtener más información, consulte Uso deroles de IAM con las aplicaciones que llaman directamente a los servicios de AWS (p. 230).

Temas• Rol de servicio para Amazon EMR (Rol de EMR) (p. 209)• Rol de servicio para instancias EC2 del clúster (perfil de instancia EC2) (p. 211)• Rol de servicio para el escalado automático en EMR (rol de Auto Scaling) (p. 215)• Rol de servicio para Cuadernos de EMR (p. 216)• Uso del rol vinculado a un servicio para Amazon EMR (p. 217)

Rol de servicio para Amazon EMR (Rol de EMR)El rol de EMR define las acciones permitidas para Amazon EMR al aprovisionar recursos y realizar tareasde nivel de servicio que no se llevan a cabo en el contexto de una instancia EC2 que se ejecuta dentro deun clúster. Por ejemplo, el rol de servicio se utiliza para aprovisionar instancias EC2 cuando se lanza unclúster.

• El rol predeterminado es EMR_DefaultRole.• La política administrada predeterminada que se vincula a EMR_DefaultRole esAmazonElasticMapReduceRole.

A continuación se muestra el contenido de la versión 9 de AmazonElasticMapReduceRole.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateTags",

209

Page 217: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeDhcpOptions", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DeleteVolume", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes", "ec2:DetachVolume", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfiles", "iam:ListRolePolicies", "iam:PassRole", "s3:CreateBucket", "s3:Get*", "s3:List*", "sdb:BatchPutAttributes", "sdb:Select", "sqs:CreateQueue", "sqs:Delete*", "sqs:GetQueue*", "sqs:PurgeQueue", "sqs:ReceiveMessage", "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:Describe*" ] }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot*", "Condition": { "StringLike": {

210

Page 218: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"iam:AWSServiceName": "spot.amazonaws.com" } } } ]}

Rol de servicio para instancias EC2 del clúster (perfil de instancia EC2)El Rol de servicio para instancias EC2 del clúster (también llamado el perfil de instancia EC2 paraAmazon EMR) es un tipo especial de rol de servicio que está asignado a cada instancia EC2 en un clústerde Amazon EMR cuando se lanza la instancia. Los procesos de aplicación que se ejecutan sobre elecosistema de Hadoop asumen este rol para los permisos, para interactuar así con otros servicios deAWS.

Para obtener más información sobre los roles para las instancias EC2, consulte Uso de un rol de IAM paraconceder permisos a aplicaciones que se ejecutan en instancias Amazon EC2 en la Guía del usuario deIAM.

Important

El Rol de servicio para instancias EC2 del clúster predeterminado y la política administrada queutiliza están configurados con permisos que le permiten crear un clúster funcional completo de laforma más sencilla posible. Le recomendamos encarecidamente que modifique esta política paraproporcionar los privilegios mínimos necesarios para su aplicación. Para obtener más información,consulte Creación de un rol de servicio para las instancias EC2 del clúster con permisos deprivilegios mínimos (p. 212).

Política administrada y rol predeterminados

• El rol predeterminado es EMR_EC2_DefaultRole.• La política administrada predeterminada y asociada a EMR_EC2_DefaultRole esAmazonElasticMapReduceforEC2Role

A continuación se muestra el contenido de la versión 3 de AmazonElasticMapReduceforEC2Role.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:Describe*", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSteps", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:MergeShards", "kinesis:PutRecord", "kinesis:SplitShard", "rds:Describe*",

211

Page 219: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"s3:*", "sdb:*", "sns:*", "sqs:*", "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:GetTableVersions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:CreateUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:DeleteUserDefinedFunction", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ] } ]}

Creación de un rol de servicio para las instancias EC2 del clúster con permisos de privilegiosmínimos

Como práctica recomendada, le recomendamos encarecidamente que cree un Rol de servicio parainstancias EC2 del clúster y una política de permisos, de forma que así, tenga los permisos mínimos paraotros servicios de AWS que necesita la aplicación.

La política administrada predeterminada, AmazonElasticMapReduceforEC2Role, proporciona lospermisos que facilitan el lanzar un clúster inicial. Sin embargo, Amazon EMR no necesita de ningúnpermiso para lanzar, monitorizar y administrar un clúster básico. Si lanza un clúster sin permisos de estaforma, el clúster ya está creado, y el registro del sistema se genera y envía a Amazon S3 los buckets quepertenecen a Amazon EMR con un método de autorización alternativo. Sin embargo, las aplicaciones declústeres no serán capaces de interactuar con otros servicios de AWS. Por ejemplo, el clúster no podráleer o escribir desde Amazon S3.

Las siguientes instrucciones de política facilitan ejemplos de permisos necesarios para las distintasfunciones de Amazon EMR. Le recomendamos que utilice estos permisos para crear una política depermisos que restrinja el acceso tan solo a aquellas funciones y recursos que necesite el clúster. Todaslas instrucciones de política de ejemplo utilizan la región us-west-2 y el ID de cuenta de AWS ficticio123456789012. Sustituya estos según corresponda para el clúster.

Para obtener más información sobre la creación y la especificación de roles personalizados, consultePersonalización de roles de IAM (p. 223).

Note

Si crea un rol de EMR personalizado para EC2, siga el flujo de trabajo básico, que creaautomáticamente un perfil de instancia con el mismo nombre. Amazon EC2 le permite crearperfiles de instancia y roles con nombres diferentes, pero Amazon EMR no admite estaconfiguración y genera un error de "perfil de instancia no válido" cuando se crea el clúster.

212

Page 220: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Lectura y escritura de datos en Amazon S3 con EMRFS

Cuando una aplicación que se ejecuta en un clúster de Amazon EMR hace referencia a los datos conel formato s3://mydata, Amazon EMR utiliza EMRFS para realizar la solicitud. Por lo general, losclústeres leen y escriben datos en Amazon S3 de esta forma, y EMRFS utiliza los permisos asociados alRol de servicio para instancias EC2 del clúster de forma predeterminada. Si dispone de varios usuariosde clústeres y varios almacenes de datos, los usuarios deberán tener permisos diferentes para los datosde EMRFS en Amazon S3. Para ello, puede utilizar los roles de IAM para EMRFS. Esto permite a EMRFSasumir diferentes roles con políticas de permisos diferentes basadas en el usuario o grupo que realiza lasolicitud, o en la ubicación de los datos de EMRFS en Amazon S3. Para obtener más información, consulteConfiguración de roles de IAM para las solicitudes de EMRFS a Amazon S3 (p. 225).

Dado que los roles de IAM para EMRFS seguirán usando los permisos asociados al Rol de servicio parainstancias EC2 del clúster, como práctica recomendada, le recomendamos que utilice los roles de IAMpara EMRFS y limite los permisos Amazon S3 y EMRFS asociados al Rol de servicio para instancias EC2del clúster.

La siguiente instrucción de ejemplo señala los permisos que EMRFS necesita para hacer solicitudes aAmazon S3.

• my-data-bucket-in-s3-for-emrfs-reads-and-writes especifica el bucket en Amazon S3,donde el clúster lee y escribe datos y todas las subcarpetas usando /*. Añada solo los buckets ycarpetas que necesita su aplicación.

• La instrucción de política que permite acciones de dynamodb es necesaria solo si la vista consistente deEMRFS está habilitada. EmrFSMetadata especifica la carpeta predeterminada para la vista consistentede EMRFS. Para obtener más información, consulte Habilitación de la vista consistente (p. 77).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions", "s3:ListMultipartUploadParts", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes", "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes/*" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DescribeTable",

213

Page 221: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:DeleteTable", "dynamodb:UpdateTable" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/EmrFSMetadata" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "dynamodb:ListTables", "s3:HeadBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sqs:GetQueueUrl", "sqs:DeleteMessageBatch", "sqs:ReceiveMessage", "sqs:DeleteQueue", "sqs:SendMessage", "sqs:CreateQueue" ], "Resource": "arn:aws:sqs:us-west-2:123456789012:EMRFS-Inconsistency-*" } }

Archivado de archivos de registro a Amazon S3

La siguiente instrucción de política permite al clúster de Amazon EMR archivar los archivos de registroen la ubicación de Amazon S3 indicada. En el siguiente ejemplo, cuando se creó el clúster, s3://MyLoggingBucket/MyEMRClusterLogs se especificó mediante Log folder S3 location (Ubicación dela carpeta de registros en S3) en la consola, utilizando la opción--log-uri de la AWS CLI o usando elparámetro LogUri en el comando RunJobFlow. Para obtener más información, consulte Archivado dearchivos de registro en Amazon S3 (p. 158).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::MyLoggingBucket/MyEMRClusterLogs/*" } ]}

Uso de herramientas de depuración

La siguiente instrucción de política permite las acciones que se requieren si habilita la herramienta dedepuración de Amazon EMR. Para la depuración, se requiere el archivado de los archivos de registro enAmazon S3 y los permisos asociados que aparecen en el ejemplo anterior. Para obtener más información,consulte Habilitar la herramienta de depuración (p. 161).

214

Page 222: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:GetQueueUrl", "sqs:SendMessage" ], "Resource": "arn:aws:sqs:us-west-2:123456789012:AWS-ElasticMapReduce-*" } ]}

Uso de AWS Glue Data Catalog

La siguiente instrucción de política permite las acciones que se requieren si utiliza AWS Glue Data Catalogcomo metaalmacén para las aplicaciones. Para obtener más información, consulte Uso de AWS Glue DataCatalog como metaalmacén para Spark SQL, Uso de AWS Glue Data Catalog como metaalmacén paraHive y Uso de Presto con AWS Glue Data Catalog en la Guía de publicación de Amazon EMR.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:GetTableVersions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:CreateUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:DeleteUserDefinedFunction", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ] } ]}

Rol de servicio para el escalado automático en EMR (rol de Auto Scaling)

El rol de Auto Scaling de EMR sirve básicamente para lo mismo que el rol de servicio, pero permiteacciones adicionales para entornos de escalado dinámico.

215

Page 223: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

• El rol predeterminado es EMR_AutoScaling_DefaultRole.• La política administrada predeterminada y asociada a EMR_AutoScaling_DefaultRole esAmazonElasticMapReduceforAutoScalingRole.

El contenido de la versión 1 de AmazonElasticMapReduceforAutoScalingRole se muestra acontinuación.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DescribeAlarms", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" } ]}

Rol de servicio para Cuadernos de EMR

Cada Cuaderno de EMR requiere permisos para obtener acceso a otros recursos de AWS, así comopara realizar acciones. Las políticas de IAM asociadas a este rol de servicio proporcionan permisos quepermiten al bloc de notas interoperar con otros servicios de AWS. Cuando crea un bloc de notas mediantela Consola de administración de AWS, tiene que especificar un rol de servicio de AWS. Puede utilizar elrol predeterminado, EMR_Notebooks_DefaultRole o especificar un rol que haya creado. Si no se hacreado un bloc de notas anteriormente, puede elegir crear el rol predeterminado.

• El rol predeterminado es EMR_Notebooks_DefaultRole.• La política administrada predeterminada y asociada a EMR_Notebooks_DefaultRole esAmazonElasticMapReduceEditorsRole.

El contenido de la versión 1 de AmazonElasticMapReduceEditorsRole se muestra a continuación.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster"

216

Page 224: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws:elasticmapreduce:editor-id", "aws:elasticmapreduce:job-flow-id" ] } } } ]}

Cuando vincula repositorios de Git a su bloc de notas y necesita crear un secreto para el repositorio, debeañadir el permiso secretsmanager:GetSecretValue a la política de IAM asociada al rol de servicio delos blocs de notas de EMR. A continuación se muestra una política de ejemplo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ]}

Uso del rol vinculado a un servicio para Amazon EMR

Amazon EMR usa roles vinculados a servicios de AWS Identity and Access Management (IAM). Un rolvinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a Amazon EMR.El rol vinculado a un servicio está predefinido por Amazon EMR e incluye los permisos que Amazon EMRrequiere para llamar a Amazon EC2 en su nombre para limpiar los recursos del clúster una vez que ya noestén en uso. El rol vinculado a un servicio funciona conjuntamente con el rol de servicio de Amazon EMRy el perfil de instancia de Amazon EC2 para Amazon EMR. Para obtener más información acerca del rol deservicio y del perfil de instancia, consulte Configurar roles de servicio deIAM para los permisos de AmazonEMR para los servicios y recursos de AWS (p. 205).

Amazon EMR define los permisos de este rol vinculado a un servicio y, a menos que esté definido de otramanera, solo Amazon EMR puede asumir el rol. Los permisos definidos incluyen las políticas de confianzay de permisos, y que la política de permisos no se pueda asociar a ninguna otra entidad de IAM. Puedeeliminar el rol únicamente después de terminar todos los clústeres de EMR de la cuenta.

Para obtener información sobre otros servicios que admiten roles vinculados a servicios, consulte Serviciosde AWS que funcionan con IAM y busque los servicios que tienen Sí en la columna Rol vinculado aservicio. Seleccione una opción Sí con un enlace para ver la documentación acerca del rol vinculado alservicio en cuestión.

Permisos de funciones vinculadas a servicios para Amazon EMR

Amazon EMR utiliza el rol AWSServiceRoleForEMRCleanup, que es un rol basado en servicio que permitea Amazon EMR terminar y eliminar recursos de Amazon EC2 en su nombre si el rol de servicio de Amazon

217

Page 225: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

EMR pierde la capacidad para hacerlo. Si el rol aún no existe, Amazon EMR lo crea automáticamente algenerar el clúster.

La función vinculada al servicio AWSServiceRoleForEMRCleanup confía en los siguientes servicios paraasumir la función:

• elasticmapreduce.amazonaws.com

La política de permisos del rol vinculado al servicio de AWSServiceRoleForEMRCleanup permite queAmazon EMR realice las siguientes acciones en los recursos especificados:

• Acción: DescribeInstances en ec2• Acción: DescribeSpotInstanceRequests en ec2• Acción: ModifyInstanceAttribute en ec2• Acción: TerminateInstances en ec2• Acción: CancelSpotInstanceRequests en ec2• Acción: DeleteNetworkInterface en ec2• Acción: DescribeInstanceAttribute en ec2• Acción: DescribeVolumeStatus en ec2• Acción: DescribeVolumes en ec2• Acción: DetachVolume en ec2• Acción: DeleteVolume en ec2

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o función) crear,editar o eliminar la descripción de una función vinculada a un servicio.

Para permitir que una entidad de IAM cree el rol vinculado a servicio AWSServiceRoleForEMRCleanup

Añada la siguiente instrucción a la política de permisos de la entidad de IAM entidad que necesita crear elrol vinculado a servicio:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

Para permitir a una entidad de IAM edite la descripción del rol vinculado a servicioAWSServiceRoleForEMRCleanup

Añada la siguiente instrucción a la política de permisos de la entidad de IAM que necesita editar ladescripción del rol vinculado a servicio:

{

218

Page 226: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

Para permitir a una entidad de IAM eliminar el rol vinculado a servicio AWSServiceRoleForEMRCleanup

Añada la siguiente instrucción a la política de permisos de la entidad de IAM entidad que necesita eliminarun rol vinculado a servicio:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

Creación de un rol vinculado al servicio para Amazon EMR

No necesita crear manualmente una función AWSServiceRoleForEMRCleanup. Cuando se lanza unclúster, ya sea por primera vez o porque no hay ningún rol vinculado al servicio, Amazon EMR crea el rolvinculado al servicio por usted. Debe disponer de permisos para crear el rol vinculado a un servicio. Paraver una instrucción de ejemplo que añade esta capacidad a la política de permisos de una entidad de IAM(como un usuario, un grupo o un rol), consulte Permisos de funciones vinculadas a servicios para AmazonEMR (p. 217).

Important

Si utilizaba Amazon EMR antes del October 24, 2017, cuando no se admitían los roles vinculadosa servicios, entonces Amazon EMR creó el rol AWSServiceRoleForEMRCleanup en su cuenta.Para obtener más información, consulte Un nuevo rol ha aparecido en la cuenta de IAM.

Edición de un rol vinculado al servicio para Amazon EMR

Amazon EMR no le permite editar la función vinculada al servicio AWSServiceRoleForEMRCleanup.Después de crear un rol vinculado a un servicio, no puede cambiarle el nombre, ya que varias entidadespueden hacer referencia al mismo. Sin embargo, puede editar la descripción de la función utilizando IAM.

Editar la descripción de un rol vinculado a un servicio (Consola IAM)

Puede utilizar la consola de IAM para editar la descripción de un rol vinculado a un servicio.

219

Page 227: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Para editar la descripción de un rol vinculado a un servicio (consola)

1. En el panel de navegación de la consola de IAM, elija Roles (Funciones).2. Seleccione el nombre del rol que desea modificar.3. A la derecha de Role description (Descripción de rol), elija Edit (Editar).4. Escriba una nueva descripción en el cuadro y elija Save changes (Guardar cambios).

Edición de la descripción de un rol vinculado a un servicio (CLI de IAM)

Puede utilizar comandos de IAM desde la AWS Command Line Interface para editar la descripción de unrol vinculado a un servicio.

Para cambiar la descripción de un rol vinculado a un servicio (CLI)

1. (Opcional) Para ver la descripción actual de un rol, ejecute uno de los siguientes comandos:

$ aws iam get-role --role-name role-name

Utilice el nombre del rol, no el ARN, para hacer referencia a los roles con los comandos de CLI. Porejemplo, si un rol tiene el ARN arn:aws:iam::123456789012:role/myrole, debe referirse a élcomo myrole.

2. Para actualizar la descripción de una función vinculada a un servicio, ejecute uno de los siguientescomandos:

$ aws iam update-role-description --role-name role-name --description description

Edición de la descripción de un rol vinculado a un servicio (API de IAM)

Puede utilizar la API de IAM para editar la descripción de un rol vinculado a un servicio.

Para cambiar la descripción de un rol vinculado a un servicio (API)

1. (Opcional) Para ver la descripción actual de una función, ejecute el siguiente comando:

API de IAM: GetRole2. Para actualizar la descripción de una función, use el siguiente comando:

IAM API: UpdateRoleDescription

Eliminación de un rol vinculado a un servicio para Amazon EMR

Si ya no necesita utilizar una característica o servicio que requiere un rol vinculado a un servicio,le recomendamos que elimine dicho rol. De esta forma, no tendrá una entidad no utilizada cuyamonitorización o mantenimiento no se realizan de forma activa. Sin embargo, debe limpiar el rol vinculadoal servicio antes de eliminarlo.

Limpiar un rol vinculado a un servicio

Antes de poder utilizar IAM para eliminar un rol vinculado a un servicio, primero debe confirmar que dichorol no tiene sesiones activas y eliminar los recursos que utiliza.

Para comprobar si el rol vinculado al servicio tiene una sesión activa en la consola de IAM

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

220

Page 228: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

2. Seleccione Roles en el panel de navegación. Seleccione el nombre (no la casilla de verificación) delrol de AWSServiceRoleForEMRCleanup.

3. En la página Summary (Resumen) del rol seleccionado, seleccione Access Advisor.4. En la pestaña Access Advisor, revise la actividad reciente del rol vinculado al servicio.

Note

Si no está seguro de si Amazon EMR utiliza el rol AWSServiceRoleForEMRCleanup, puedeintentar eliminar el rol para comprobarlo. Si el servicio está utilizando el rol, este no podráeliminarse y podrá ver las regiones en las que se está utilizando. Si el rol se está utilizando,debe esperar que la sesión finalice para poder eliminarlo. No se puede revocar la sesión deun rol vinculado a un servicio.

Para eliminar recursos de Amazon EMR utilizados por AWSServiceRoleForEMRCleanup

• Termine todos los clústeres de su cuenta. Para obtener más información, consulte Terminar unclúster (p. 368).

Eliminar un rol vinculado a un servicio (Consola de IAM)

Puede utilizar la consola de IAM para eliminar una función vinculada a un servicio.

Para eliminar un rol vinculado a un servicio (consola)

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Seleccione Roles en el panel de navegación. Marque la casilla de verificación situada junto a

AWSServiceRoleForEMRCleanup, no el nombre o la propia fila.3. Para Role actions en la parte superior de la página, elija Delete role.4. En el cuadro de diálogo de confirmación, revise los datos del último acceso al servicio, que muestra

cuándo cada una de las funciones seleccionadas tuvo acceso a un servicio de AWS por última vez.Esto le ayuda a confirmar si el rol está actualmente activo. Para continuar, elija Yes, Delete.

5. Consulte las notificaciones de la consola de IAM para monitorizar el progreso de la eliminación del rolvinculado al servicio. Como el proceso de eliminación de la función vinculada al servicio de IAM esasíncrono, dicha tarea puede realizarse correctamente o fallar después de que envía la solicitud deeliminación. Si la tarea no se realiza correctamente, puede seleccionar View details o View Resourcesdesde las notificaciones para obtener información acerca de por qué no se pudo eliminar el rol. Si laeliminación no pudo producirse porque hay recursos en el servicio que está utilizando el rol, entoncesel motivo del error incluye una lista de recursos.

Eliminar un rol vinculado a un servicio (CLI de IAM)

Puede utilizar los comandos de IAM desde la AWS Command Line Interface para eliminar un rol vinculadoa un servicio. Como laos roles vinculados a servicios no se puede eliminar si están en uso o tienenrecursos asociados, debe enviar una solicitud de eliminación. Si estas condiciones no se cumplen, dichasolicitud se puede denegar.

Para eliminar un rol vinculado a un servicio (CLI)

1. Para comprobar el estado de la tarea de eliminación, debe apuntar el valor de deletion-task-id de la respuesta. Escriba el siguiente comando para enviar una solicitud de eliminación de un rolvinculado a un servicio:

$ aws iam delete-service-linked-role --role-name AWSServiceRoleForEMRCleanup

2. Escriba el siguiente comando para comprobar el estado de la tarea de eliminación:

221

Page 229: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

$ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

El estado de la tarea de eliminación puede ser NOT_STARTED, IN_PROGRESS, SUCCEEDED o FAILED.Si ocurre un error durante la eliminación, la llamada devuelve el motivo del error para que puedaresolver el problema.

Eliminar una función vinculada a un servicio (API IAM)

Puede utilizar la API de IAM para eliminar un rol vinculado a un servicio. Como laos roles vinculados aservicios no se puede eliminar si están en uso o tienen recursos asociados, debe enviar una solicitud deeliminación. Si estas condiciones no se cumplen, dicha solicitud se puede denegar.

Para eliminar un rol vinculado a un servicio (API)

1. Para enviar una solicitud de eliminación de un rol vinculado a un servicio, realice unallamada a DeleteServiceLinkedRole. En la solicitud, especifique el nombre de rol deAWSServiceRoleForEMRCleanup.

Para comprobar el estado de la tarea de eliminación, debe apuntar el valor de DeletionTaskId de larespuesta.

2. Para comprobar el estado de la tarea de eliminación, realice una llamada aGetServiceLinkedRoleDeletionStatus. En la solicitud, especifique el valor de DeletionTaskId.

El estado de la tarea de eliminación puede ser NOT_STARTED, IN_PROGRESS, SUCCEEDED o FAILED.Si ocurre un error durante la eliminación, la llamada devuelve el motivo del error para que puedaresolver el problema.

Regiones admitidas para los roles vinculados al servicio de Amazon EMR

Amazon EMR admite el uso de roles vinculados al servicio en las siguientes regiones.

Nombre de la región Identidad de la región Compatibilidaden Amazon EMR

US East (N. Virginia) us-east-1 Sí

EE.UU. Este (Ohio) us-east-2 Sí

EE.UU. Oeste (Norte de California) us-west-1 Sí

EE.UU. Oeste (Oregón) us-west-2 Sí

Asia Pacífico (Mumbai) ap-south-1 Sí

Asia Pacífico (Osaka-local) ap-northeast-3 Sí

Asia Pacífico (Seúl) ap-northeast-2 Sí

Asia Pacífico (Singapur) ap-southeast-1 Sí

Asia Pacífico (Sídney) ap-southeast-2 Sí

Asia Pacífico (Tokio) ap-northeast-1 Sí

Canadá (Central) ca-central-1 Sí

Europa (Fráncfort) eu-central-1 Sí

222

Page 230: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Nombre de la región Identidad de la región Compatibilidaden Amazon EMR

Europa (Irlanda) eu-west-1 Sí

Europa (Londres) eu-west-2 Sí

Europa (París) eu-west-3 Sí

América del Sur (São Paulo) sa-east-1 Sí

Personalización de roles de IAMEs posible que quiera personalizar los permisos y los roles de servicio de IAM para limitar los privilegiosde acuerdo con los requisitos de seguridad. Para personalizar los permisos, le recomendamosque cree nuevos roles y políticas. Comience con los permisos de las políticas administradaspara los roles predeterminados (por ejemplo, AmazonElasticMapReduceforEC2Role yAmazonElasticMapReduceRole). A continuación, copie y pegue el contenido de las nuevasinstrucciones de política, modifique los permisos según corresponda y asocie las políticas de permisosmodificadas a los roles que cree. Debe disponer de los permisos de IAM adecuados para trabajar con losroles y las políticas. Para obtener más información, consulte Cómo permitir a los usuarios y grupos crear ymodificar roles (p. 231).

Si crea un rol de EMR personalizado para EC2, siga el flujo de trabajo básico, que crea automáticamenteun perfil de instancia con el mismo nombre. Amazon EC2 le permite crear perfiles de instancia y rolescon nombres diferentes, pero Amazon EMR no admite esta configuración y genera un error de "perfil deinstancia no válido" cuando se crea el clúster.

Important

Las políticas insertadas no se actualizan automáticamente cuando cambian los requisitosde servicio. Si crea y asocia políticas insertadas, tenga en cuenta que se pueden produciractualizaciones de servicio que provoquen errores de permisos de forma repentina. Para obtenermás información, consulte Políticas administradas y políticas insertadas en la Guía del usuario deIAM y Cómo especificar roles de IAM personalizados al crear un clúster (p. 223).

Para obtener más información sobre cómo trabajar con los roles de IAM, consulte los siguientes temas enla Guía del usuario de IAM:

• Crear un rol para delegar permisos a un servicio de AWS• Modificación de un rol• Eliminación de un rol

Cómo especificar roles de IAM personalizados al crear un clúster

El rol de servicio para Amazon EMR y el rol para el perfil de instancia de Amazon EC2 se especifican alcrear un clúster. El usuario que crea los clústeres necesita permisos para recuperar y asignar roles a lasinstancias EC2 y de Amazon EMR. De lo contrario, se produce el error User account is not authorized tocall EC2 (La cuenta de usuario no está autorizada para llamar a EC2). Para obtener más información,consulte Cómo permitir a los usuarios y grupos crear y modificar roles (p. 231).

Uso de la consola para especificar roles personalizados

Cuando cree un clúster, puede especificar un rol de servicio personalizado para Amazon EMR, unrol personalizado para el perfil de instancia EC2 y un rol de Auto Scaling personalizado mediante lasAdvanced options (Opciones avanzadas). Si utiliza las Quick options (Opciones rápidas), se especifican

223

Page 231: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

el rol de servicio y el rol para el perfil de instancia EC2 predeterminados. Para obtener más información,consulte Roles de servicio de IAM usados por Amazon EMR (p. 209).

Para especificar roles de IAM personalizados mediante la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. Elija la configuración del clúster apropiada para la aplicación hasta llegar a Security Options (Opciones

de seguridad).

En Permissions (Permisos), están seleccionados los roles Default (Predeterminados) para AmazonEMR.

4. Elija Custom (Personalizados).5. Seleccione un rol en la lista para cada tipo de rol. Solo aparecerán los roles de la cuenta que tengan la

política de confianza adecuada para ese tipo de rol.

6. Elija las demás opciones que necesite para el clúster y, a continuación, elija Create Cluster (Crearclúster).

Uso de la AWS CLI para especificar roles personalizados

Puede especificar un rol de servicio para EMR y un Rol de servicio para instancias EC2 del clúster deforma explícita mediante las opciones con el comando create-cluster desde la AWS CLI. Utilice laopción --service-role para especificar el rol de servicio. Utilice el argumento InstanceProfile de laopción --ec2-attributes para especificar el rol para el perfil de instancia EC2.

El rol de Auto Scaling se especifica con una opción distinta: --auto-scaling-role. Para obtenermás información, consulte Uso del escalado automático con una política personalizada para grupos deinstancias (p. 382).

Para especificar roles de IAM personalizados mediante la AWS CLI

• El siguiente comando especifica el rol de servicio personalizadoMyCustomServiceRoleForEMR y el rol personalizado para el perfil de instancia EC2MyCustomServiceRoleForClusterEC2Instances al lanzar un clúster. Este ejemplo utiliza el rolde Amazon EMR predeterminado.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

224

Page 232: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

aws emr create-cluster --name "Test cluster" --release-label emr-5.30.0 \--applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \--ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\KeyName=myKey --instance-type m5.xlarge --instance-count 3

Puede utilizar estas opciones para especificar roles predeterminados de forma explícita en lugar de usar laopción --use-default-roles. La opción --use-default-roles especifica el rol de servicio y el rolpara el perfil de la instancia EC2 que se ha definido en el archivo config de la AWS CLI.

El siguiente ejemplo muestra el contenido de un archivo config para la AWS CLI que especificalos roles personalizados de Amazon EMR. Con este archivo de configuración, cuando se especificala opción --use-default-roles, el clúster se crea mediante MyCustomServiceRoleForEMR yMyCustomServiceRoleForClusterEC2Instances. De forma predeterminada, el archivo configespecifica el valor predeterminado service_role como AmazonElasticMapReduceRole y el valorpredeterminado instance_profile como EMR_EC2_DefaultRole.

[default]output = jsonregion = us-west-1aws_access_key_id = myAccessKeyIDaws_secret_access_key = mySecretAccessKeyemr = service_role = MyCustomServiceRoleForEMR instance_profile = MyCustomServiceRoleForClusterEC2Instances

Configuración de roles de IAM para las solicitudes de EMRFS aAmazon S3Cuando una aplicación que se ejecuta en un clúster de Amazon EMR hace referencia a los datos conel formato s3://mydata, Amazon EMR utiliza EMRFS para realizar la solicitud. Para interactuar conAmazon S3, EMRFS asume las políticas de permisos vinculadas al Rol de servicio para instancias EC2del clúster (perfil de instancia EC2) (p. 211) que se especificó al crear el clúster. El mismo Rol de serviciopara instancias EC2 del clúster se utiliza independientemente del usuario o grupo mediante la aplicacióno la ubicación de los datos en Amazon S3. Si tiene clústeres con varios usuarios que necesitan diferentesniveles de acceso a los datos en Amazon S3 a través de EMRFS, puede establecer una configuración deseguridad con los roles de IAM para EMRFS. EMRFS puede asumir un Rol de servicio para instanciasEC2 del clúster diferente en función del usuario o grupo que realiza la solicitud o en función de la ubicaciónde los datos en Amazon S3. Cada rol de IAM para EMRFS puede tener diferentes permisos para obteneracceso a los datos en Amazon S3.

Los roles de IAM para EMRFS están disponibles en la versión 5.10.0 o posterior de Amazon EMR. Siutiliza una versión anterior o tiene requisitos de autorización que las funciones de IAM para EMRFS noson capaces de proporcionar, puede crear un proveedor de credenciales personalizado en su lugar.Para obtener más información, consulte Autorización de acceso a los datos de EMRFS en AmazonS3 (p. 92). Para obtener más información acerca de EMRFS, consulte Uso del sistema de archivos deEMR (EMRFS) (p. 75).

Cuando se usa una configuración de seguridad para especificar funciones de IAM para EMRFS, debedefinir mapeos de funciones. Cada mapeo de roles especifica un rol de IAM que corresponde a losidentificadores. Dichos identificadores determinan la base para el acceso a Amazon S3 a través deEMRFS. Los identificadores pueden ser usuarios, grupos o prefijos de Amazon S3 que indican unaubicación de datos. Cuando EMRFS realiza una solicitud a Amazon S3, y la solicitud coincide con la basepara el acceso, EMRFS tiene las instancias EC2 del clúster que asumen el rol de IAM correspondientepara la solicitud. Los permisos de IAM vinculados a dicho rol se aplican en lugar de los permisos de IAMvinculados al Rol de servicio para instancias EC2 del clúster.

225

Page 233: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Los usuarios y grupos de un mapeo de roles son usuarios y grupos de Hadoop que se definen en elclúster. Los usuarios y grupos se transfieren a EMRFS en el contexto de la aplicación que lo utiliza (porejemplo, una suplantación de usuario de YARN). El prefijo de Amazon S3 puede ser un especificadorde bucket de cualquier profundidad (por ejemplo, s3://mybucket o s3://mybucket/myproject/mydata). Puede especificar varios identificadores dentro de un único mapeo de roles, pero todos debenser del mismo tipo.

Important

Los roles de IAM roles para EMRFS proporcionan aislamiento de nivel de aplicación entre losusuarios de la aplicación. No proporcionan aislamiento de nivel del host entre los usuarios delhost. Cualquier usuario con acceso a el clúster puede omitir el aislamiento para asumir cualquierade los roles.

Cuando una aplicación del clúster realiza una solicitud a Amazon S3 a través de EMRFS, EMRFS evalúalos mapeos de funciones en el orden descendente en el que aparecen en la configuración de seguridad.Si una solicitud realizada a través de EMRFS no coincide con ningún identificador, EMRFS vuelve a usarel Rol de servicio para instancias EC2 del clúster. Por este motivo, le recomendamos que las políticasasociadas a este rol limiten los permisos a Amazon S3. Para obtener más información, consulte Rol deservicio para instancias EC2 del clúster (perfil de instancia EC2) (p. 211).

Configuración de rolesAntes de definir una configuración de seguridad con roles de IAM para EMRFS, planifique y cree losroles y las políticas de permisos que va a asociar a los roles. Para obtener más información, consulte¿Cómo funcionan los roles de instancias EC2? en la Guía del usuario de IAM. Al crear políticasde permisos, le recomendamos que empiece con la política administrada asociada al rol de EMRpredeterminado para EC2 y que luego edite esta política de acuerdo con sus necesidades. El rolpredeterminado es EMR_EC2_DefaultRole y la política administrada predeterminada para editar esAmazonElasticMapReduceforEC2Role. Para obtener más información, consulte Rol de servicio parainstancias EC2 del clúster (perfil de instancia EC2) (p. 211).

Actualización de políticas de confianza para permisos para asumir el rol

Cada rol que utiliza EMRFS debe tener una política de confianza que permita que el rol de EMR del clústerde EC2 lo asuma. Igualmente, el rol de EMR del clúster para EC2 debe tener una política de confianza quepermita que los roles de EMRFS lo asuman.

En el ejemplo siguiente, la política de confianza se asocia a los roles para EMRFS. La instrucción permiteque el rol de EMR predeterminado de EC2 asuma el rol. Por ejemplo, si tiene dos roles de EMRFS ficticios,EMRFSRole_First y EMRFSRole_Second, esta instrucción de la política se añade a las políticas deconfianza para cada uno de ellos.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWSAcctID:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ]}

Además, en el ejemplo siguiente, se añade la instrucción de la política de confianza aEMR_EC2_DefaultRole para permitir que los dos roles de EMRFS ficticios la asuman.

{ "Version":"2012-10-17",

226

Page 234: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

"Statement":[ { "Effect":"Allow", "Principal":{ "AWS": ["arn:aws:iam::AWSAcctID:role/EMRFSRole_First", "arn:aws:iam::AWSAcctID:role/EMRFSRole_Second"] }, "Action":"sts:AssumeRole" } ]}

Para actualizar la política de confianza de un rol de IAM

Abra la consola de IAM en https://console.aws.amazon.com/iam/.

1. Elija Roles, escriba el nombre del rol en Search (Buscar) y, a continuación, seleccione su Role name(Nombre de rol).

2. Seleccione Trust relationships (Relaciones de confianza), Edit trust relationship (Editar relaciones deconfianza).

3. Añada una instrucción de confianza de acuerdo con Policy Document (Documento de política) deacuerdo con las directrices anteriores y, a continuación, seleccione Update Trust Policy (Actualizarpolítica de confianza).

Especificación de un rol como un usuario de claves

Si un rol permite el acceso a una ubicación en Amazon S3 que está cifrada mediante una clave maestradel cliente (CMK) de AWS Key Management Service, asegúrese de que el rol se especifica como unusuario de claves. Esto proporciona al rol permiso para utilizar la CMK. Para obtener más información,consulte Uso de políticas de claves en la AWS Key Management Service Developer Guide.

Definición de una configuración de seguridad con roles de IAM para EMRFSImportant

Si no se aplica ninguno de los roles de IAM para EMRFS especificados, EMRFS vuelve a usarel rol de EMR para EC2. Considere la posibilidad de personalizar este rol para restringir lospermisos en Amazon S3 según sea necesario para su aplicación y de especificar después esterol personalizado en lugar de EMR_EC2_DefaultRole cuando cree un clúster. Para obtener másinformación, consulte Personalización de roles de IAM (p. 223) y Cómo especificar roles de IAMpersonalizados al crear un clúster (p. 223).

Para especificar roles de IAM para las solicitudes de EMRFS a Amazon S3 con la consola

1. Cree una configuración de seguridad que especifique los mapeos de roles:

a. En la consola de Amazon EMR, seleccione Security configurations (Configuraciones deseguridad), Create (Crear).

b. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre). Este nombrese utiliza para especificar la configuración de seguridad cuando crea un clúster.

c. Elija Use IAM roles for EMRFS requests to Amazon S3 (Usar roles de IAM para las solicitudes deEMRFS a Amazon S3).

d. Seleccione el IAM role (Rol de IAM) que desea aplicar y, en la lista Basis for access (Basepara el acceso) seleccione un tipo de identificador (Users (Usuarios), Groups (Grupos) o S3prefixes (Prefijos de S3)) y especifique los identificadores correspondientes. Si utiliza variosidentificadores, sepárelos con una coma y sin espacios. Para obtener más información acercade cada tipo de identificador, consulte Referencia de configuración de JSON (p. 228) acontinuación.

227

Page 235: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

e. Elija Add role (Añadir rol) para configurar mapeos de roles adicionales, tal y como se describe enel paso anterior.

f. Defina otras opciones de configuración de seguridad según corresponda y elija Create (Crear).Para obtener más información, consulte Creación de una configuración de seguridad (p. 171).

2. Especifique la configuración de seguridad que creó anteriormente cuando cree un clúster. Paraobtener más información, consulte Especificación de una configuración de seguridad para unclúster (p. 188).

Para especificar roles de IAM para las solicitudes de EMRFS a Amazon S3 con la AWS CLI

1. Utilice el comando aws emr create-security-configuration, especificando un nombre parala configuración de seguridad y los detalles de configuración de seguridad en formato JSON.

El comando de ejemplo que se muestra a continuación crea una configuración de seguridad con elnombre EMRFS_Roles_Security_Configuration. Se basa en una estructura JSON del archivoMyEmrfsSecConfig.json, que se guarda en el mismo directorio en el que se ejecuta el comando.

aws emr create-security-configuration --name EMRFS_Roles_Security_Configuration --security-configuration file://MyEmrFsSecConfig.json.

Utilice las siguientes directrices para la estructura del archivo MyEmrFsSecConfig.json. Puedeespecificar esta estructura junto con estructuras de otras opciones de configuración de seguridad.Para obtener más información, consulte Creación de una configuración de seguridad (p. 171).

A continuación se muestra un fragmento de código JSON de ejemplo que especifica roles de IAMpersonalizados para EMRFS en una configuración de seguridad. Muestra los mapeos de roles para lostres tipos distintos de identificadores, seguidos por una referencia de parámetro.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } }}

Parámetro Descripción

"AuthorizationConfiguration": Obligatorio.

"EmrFsConfiguration": Obligatorio. Contiene mapeos de roles.

"RoleMappings": Obligatorio. Contiene una o más definicionesde mapeo de roles. Los mapeos de roles seevalúan en el orden descendente en el que

228

Page 236: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

Parámetro Descripciónaparecen. Si un mapeo de roles se evalúa comotrue para una llamada de EMRFS para obtenerdatos de Amazon S3, no se evaluará ningúnmapeo de roles más y EMRFS utilizará el rol deIAM especificado para la solicitud. Los mapeosde roles constan de los siguientes parámetrosobligatorios:

"Role": Especifica el identificador ARN de una funciónIAM en el formato arn:aws:iam::account-id:role/role-name. Este es el rol de IAMque Amazon EMR asume si la solicitud deEMRFS a Amazon S3 coincide con cualquierade los Identifiers especificados.

"IdentifierType": Puede ser uno de los siguientes:

• "User" especifica que los identificadoresson uno o más usuarios de Hadoop, quepueden ser cuentas de usuario de Linux oprincipales de Kerberos. Cuando la solicitudde EMRFS procede del usuario o los usuariosespecificados, se asume el rol de IAM.

• "Prefix" especifica que el identificador esuna ubicación de Amazon S3. Se asume elrol de IAM para llamadas a la ubicación o lasubicaciones con los prefijos especificados.Por ejemplo, el prefijo s3://mybucket/coincide con s3://mybucket/mydir ys3://mybucket/yetanotherdir.

• "Group" especifica que los identificadoresson uno o más grupos de Hadoop. Se asumeel rol de IAM si la solicitud procede de unusuario del grupo o los grupos especificados.

"Identifiers": Especifica uno o más identificadores del tipoadecuado. Separe varios identificadores concomas y sin espacios.

2. Utilice el comando aws emr create-cluster para crear un clúster y especificar la configuración deseguridad que creó en el paso anterior.

En el siguiente ejemplo, se crea un clúster con las aplicaciones de Hadoop básicas predeterminadasinstaladas. El clúster utiliza la configuración de seguridad creada anteriormente comoEMRFS_Roles_Security_Configuration y también utiliza una función de EMR personalizadapara EC2, EC2_Role_EMR_Restrict_S3, que se especifica mediante el argumentoInstanceProfile del parámetro --ec2-attributes.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad.Se pueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos oreemplácelos por un signo de intercalación (^).

aws emr create-cluster --name MyEmrFsS3RolesCluster \--release-label emr-5.30.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \

229

Page 237: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConfigurar roles de servicio para Amazon EMR

--instance-type m5.xlarge --instance-count 3 \--security-configuration EMRFS_Roles_Security_Configuration

Uso de políticas basadas en recursos para el acceso de AmazonEMR a AWS Glue Data CatalogSi usa AWS Glue junto con Hive, Spark, o Presto Amazon EMR, AWS Glue es compatible con las políticasbasadas en recurso para controlar el acceso a los recursos de Data Catalog. Estos recursos incluyenbases de datos, tablas, conexiones y funciones definidas por el usuario. Para obtener más información,consulte Políticas de recursos de AWS Glue en la AWS Glue Developer Guide.

Cuando use las políticas basadas en recursos para limitar el acceso de AWS Glue desde Amazon EMR,lo más importante que tiene que indicar en la política de permisos es el ARN del rol asociado al perfil dela instancia de EC2, que se indicó cuando se creó el clúster. Por ejemplo, para una política basada enrecursos asociada a un catálogo, puede especificar el ARN del rol para el Rol de servicio para instanciasEC2 del clúster, EMR_EC2_DefaultRole predeterminado como el Principal, utilizando el formato quese muestra en el ejemplo siguiente:

arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole

La acct-id puede ser distinta de la ID de la cuenta de AWS Glue. Esto permite el acceso de los clústeresEMR en distintas cuentas. Puede indicar varios principales, cada uno desde una cuenta distinta.

Uso de roles de IAM con las aplicaciones que llamandirectamente a los servicios de AWSLas aplicaciones que se ejecutan en las instancias EC2 de un clúster pueden usar el perfil de instancia deEC2 para obtener credenciales de seguridad temporales al llamar a los servicios de AWS.

Las versiones de Hadoop disponibles con la versión 2.3.0 y posteriores de Amazon EMR ya se hanactualizado para utilizar roles de IAM. Si la aplicación se ejecuta estrictamente sobre la arquitectura deHadoop y no llama directamente a ningún servicio en AWS, debería funcionar con roles de IAM, sin ningúntipo de modificación.

Si la aplicación llama a los servicios de AWS directamente, debe actualizarla para que utilice los rolesde IAM. Esto significa que, en lugar de obtener las credenciales de la cuenta de /etc/hadoop/conf/core-site.xml en las instancias EC2 del clúster, la aplicación utiliza un SDK para obtener acceso a losrecursos mediante roles de IAM o llama a los metadatos de la instancia EC2 para obtener credencialestemporales.

Para tener acceso a los recursos de AWS con roles de IAM mediante un SDK

• Los siguientes temas muestran cómo utilizar varios de los SDK de AWS para tener acceso acredenciales temporales utilizando roles de IAM. Cada tema comienza con una versión de unaaplicación que no utiliza roles de IAM y, a continuación, realiza un recorrido por proceso de conversiónde dicha aplicación para que utilice roles de IAM.

• Uso de roles de IAM para instancias Amazon EC2 con el SDK para Java en la AWS SDK for JavaDeveloper Guide

• Uso de los roles IAM para instancias Amazon EC2 con el SDK para .NET en la AWS SDKpara .NET Developer Guide

• Uso de los roles IAM para instancias Amazon EC2 con el SDK para PHP en la AWS SDK para PHPDeveloper Guide

230

Page 238: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

• Uso de roles de IAM para instancias Amazon EC2 con el SDK para Ruby en la AWS SDK pararRuby Developer Guide

Para obtener credenciales temporales de metadatos de instancias EC2

• Llame a la siguiente URL desde una instancia EC2 que se ejecuta con el rol de IAM especificado,que devuelve las credenciales de seguridad temporales asociadas (AccessKeyId, SecretAccessKey,SessionToken y Expiration). En el ejemplo que aparece a continuación se utiliza el perfil de instanciapredeterminado para Amazon EMR, EMR_EC2_DefaultRole.

GET http://169.254.169.254/latest/meta-data/iam/security-credentials/EMR_EC2_DefaultRole

Para obtener más información sobre la escritura de aplicaciones que utilizan roles de IAM, consulte cómoconceder acceso instantáneo a los recursos de AWS a las aplicaciones que se ejecutan en Amazon EC2.

Para obtener más información sobre las credenciales de seguridad temporales, consulte Credenciales deseguridad temporales en la Usar credenciales de seguridad temporales.

Cómo permitir a los usuarios y grupos crear y modificar rolesLas entidades principales de IAM (usuarios y grupos) que crean, modifican y especifican roles para unclúster, incluidos los roles predeterminados, deben tener permisos para realizar las acciones siguientes.Para obtener información sobre cada una de las acciones, consulte las acciones en la IAM API Reference.

• iam:CreateRole

• iam:PutRolePolicy

• iam:CreateInstanceProfile

• iam:AddRoleToInstanceProfile

• iam:ListRoles

• iam:GetPolicy

• iam:GetInstanceProfile

• iam:GetPolicyVersion

• iam:AttachRolePolicy

• iam:PassRole

El permiso iam:PassRole permite la creación del clúster. Los permisos restantes permiten la creación delas funciones predeterminadas.

Ejemplos de políticas basadas en identidades deAmazon EMRDe forma predeterminada, los usuarios y roles de IAM no tienen permiso para crear, ver ni modificarrecursos de Amazon EMR. Tampoco pueden realizar tareas mediante la Consola de administración deAWS, la AWS CLI, o la API de AWS. Un administrador de IAM debe crear políticas de IAM que concedanpermisos a los usuarios y a los roles para realizar operaciones de la API concretas en los recursosespecificados que necesiten. El administrador debe adjuntar esas políticas a los usuarios o grupos de IAMque necesiten esos permisos.

231

Page 239: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

Para obtener más información acerca de cómo crear una política basada en identidad de IAM con estosdocumentos de políticas de JSON de ejemplo, consulte Creación de políticas en la pestaña JSON en laGuía del usuario de IAM.

Temas• Prácticas recomendadas relativas a políticas de Amazon EMR (p. 232)• Permitir a los usuarios ver sus propios permisos (p. 232)• Políticas administradas de Amazon EMR (p. 233)• Políticas de IAM para acceso basado en etiquetas para clústeres y cuadernos de EMR (p. 236)

Prácticas recomendadas relativas a políticas de Amazon EMRLas políticas basadas en identidad son muy eficaces. Determinan si alguien puede crear, acceder oeliminar los recursos de Amazon EMR de su cuenta. Estas acciones pueden generar costes adicionalespara su cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas enidentidad:

• Introducción sobre el uso de políticas administradas de AWS: para comenzar a utilizar Amazon EMRrápidamente, utilice las políticas administradas de AWS para proporcionar a los empleados los permisosnecesarios. Estas políticas ya están disponibles en su cuenta y las mantiene y actualiza AWS. Paraobtener más información, consulte Introducción sobre el uso de permisos con políticas administradas deAWS en la Guía del usuario de IAM y Políticas administradas de Amazon EMR (p. 233).

• Conceder privilegios mínimos: al crear políticas personalizadas, conceda solo los permisos necesariospara llevar a cabo una tarea. Comience con un conjunto mínimo de permisos y conceda permisosadicionales según sea necesario. Por lo general, es más seguro que comenzar con permisos que sondemasiado tolerantes e intentar hacerlos más severos más adelante. Para obtener más información,consulte Conceder privilegios mínimos en la Guía del usuario de IAM.

• Habilitar MFA para operaciones confidenciales: para mayor seguridad, obligue a los usuarios deIAM a que utilicen la autenticación multifactor (MFA) para acceder a recursos u operaciones de APIconfidenciales. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) enAWS en la Guía del usuario de IAM.

• Utilizar condiciones de política para mayor seguridad: en la medida en que sea práctico, defina lascondiciones en las que sus políticas basadas en identidad permitan el acceso a un recurso. Por ejemplo,puede escribir condiciones para especificar un rango de direcciones IP permitidas desde el que debeproceder una solicitud. También puede escribir condiciones para permitir solicitudes solo en un intervalode hora o fecha especificado o para solicitar el uso de SSL o MFA. Para obtener más información,consulte Elementos de la política de JSON de IAM: condición en la Guía del usuario de IAM.

Permitir a los usuarios ver sus propios permisosEn este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver laspolíticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluyepermisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la APIde AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser",

232

Page 240: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Políticas administradas de Amazon EMRLa forma más sencilla de conceder acceso completo o acceso de solo lectura a las acciones de AmazonEMR requeridas consiste en utilizar las políticas administradas de IAM para Amazon EMR. Las políticasadministradas ofrecen el beneficio de que se actualizan automáticamente si cambian los requisitos depermisos. Si utiliza políticas insertadas, pueden producirse cambios en los servicios que provoquen laaparición de errores de permisos.

Estas políticas no solo incluyen acciones para Amazon EMR; también incluyen acciones para AmazonEC2, Amazon S3 y Amazon CloudWatch, que Amazon EMR utiliza para realizar acciones como ellanzamiento de instancias, la escritura de archivos de registro y la administración de trabajos y tareas deHadoop.

Los usuarios del clúster necesitan permisos para aplicaciones con el fin de pasar los roles de servicio paraAmazon EMR en su nombre. La política de permisos AmazonElasticMapReduceFullAccess, que esla política administrada predeterminada que proporciona a los usuarios permisos completos para AmazonEMR, incluye una instrucción que concede los permisos iam:PassRole para todos los recursos. Estainstrucción permite al usuario transferir cualquier rol a otros servicios de AWS para que Amazon EMRpueda interactuar con dichos servicios en nombre del usuario.

Si desea implementar una política más restrictiva, asocie una política insertada a los usuarios o gruposapropiados que conceda el permiso iam:PassRole únicamente a los roles específicos de AmazonEMR. En el siguiente ejemplo se muestra una instrucción que concede permisos iam:PassRoleúnicamente a los roles de Amazon EMR predeterminados: EMR_DefaultRole, EMR_EC2_DefaultRoley EMR_AutoScalingDefaultRole. Si utiliza roles personalizados, sustituya los nombres de rolpredeterminados por nombres de rol personalizados.

{ "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/EMR_DefaultRole", "arn:aws:iam::*:role/EMR_EC2_DefaultRole", "arn:aws:iam::*:role/EMR_AutoScaling_DefaultRole", "arn:aws:iam::*:role/EMR_Notebooks_DefaultRole"

233

Page 241: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

]}

Para crear políticas personalizadas, le recomendamos que comience a partir de las políticas administradasy las edite de acuerdo con sus requisitos.

Para obtener información sobre cómo asociar políticas a los usuarios de IAM (entidades principales),consulte Uso de las políticas administradas con la Consola de administración de AWS en la Guía delusuario de IAM.

Política administrada de IAM para acceso completo

Para conceder todas las acciones necesarias para Amazon EMR, asocie la política administradaAmazonElasticMapReduceFullAccess. El contenido de esta instrucción de política se muestra acontinuación. Revela todas las acciones que Amazon EMR requiere para otros servicios.

A continuación se muestra el contenido de la versión 6 de esta política. Dado que la políticaAmazonElasticMapReduceFullAccess se actualiza automáticamente, la política aquí mostrada podría estarobsoleta. Utilice la Consola de administración de AWS para ver la política actual.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:*", "cloudformation:CreateStack", "cloudformation:DescribeStackEvents", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:CancelSpotInstanceRequests", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteRoute", "ec2:DeleteTags", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeRouteTables", "ec2:DescribeNetworkAcls", "ec2:CreateVpcEndpoint", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "elasticmapreduce:*", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListRoles", "iam:PassRole",

234

Page 242: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"kms:List*", "s3:*", "sdb:*", "support:CreateCase", "support:DescribeServices", "support:DescribeSeverityLevels" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } } } ]}

Note

La acción ec2:TerminateInstances permite que el usuario de IAM termine cualquiera de lasinstancias Amazon EC2 asociadas con la cuenta de IAM, incluso las que no forman parte de unclúster de EMR.

Política administrada de IAM para acceso de solo lectura

Para conceder privilegios de solo lectura a Amazon EMR, asocie la política administradaAmazonElasticMapReduceReadOnlyAccess. El contenido de esta instrucción de política se muestra acontinuación. Los caracteres comodín para el elemento elasticmapreduce especifican que solo sepermiten las acciones que empiezan por las cadenas especificadas. Tenga en cuenta que, dado que estapolítica no deniega acciones explícitamente, se puede seguir utilizando una instrucción de política distintapara otorgar acceso a acciones especificadas.

Note

Dado que la política AmazonElasticMapReduceReadOnlyAccess se actualiza automáticamente,la política aquí mostrada podría estar obsoleta. Utilice la Consola de administración de AWS paraver la política actual.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticmapreduce:Describe*", "elasticmapreduce:List*", "elasticmapreduce:ViewEventsFromAllClustersInConsole" "s3:GetObject", "s3:ListAllMyBuckets", "s3:ListBucket", "sdb:Select", "cloudwatch:GetMetricStatistics" ],

235

Page 243: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"Resource": "*" } ]}

Políticas de IAM para acceso basado en etiquetas para clústeresy cuadernos de EMRPuede utilizar condiciones en su política basada en identidades para controlar el acceso a clústeres y blocsde notas de EMR basándose en etiquetas.

Para obtener más información sobre la adición de etiquetas a los clústeres de EMR, consulte Etiquetadode clústeres de Amazon EMR. Para obtener más información acerca de las claves de condición, consulteClaves de condición (p. 203).

Los siguientes ejemplos muestran distintos supuestos y formas de utilizar los operadores de condicionescon las claves de condición de Amazon EMR. Estas instrucciones de política de IAM tienen finesdemostrativos y no deben utilizarse en entornos de producción. Existen varias maneras de combinar lasinstrucciones de políticas para conceder y denegar permisos de acuerdo con sus requisitos. Para obtenermás información sobre la planificación y prueba de políticas de IAM, consulte la Guía del usuario de IAM.

Ejemplo de instrucciones de políticas basadas en identidades para clústeres

Los ejemplos que se muestran a continuación muestran las políticas de permisos basadas en identidadesque se utilizan para controlar las acciones que se permiten con clústeres de EMR.

Permitir acciones solo en clústeres con valores de etiqueta específicos

Los ejemplos que aparecen a continuación muestran una política que permite a un usuario realizaracciones en función de la etiqueta de clúster department con el valor dev y también permite a un usuarioetiquetar clústeres con la misma etiqueta. El ejemplo de política muestra cómo denegar los privilegios paraetiquetar clústeres de EMR con cualquier otra cosa excepto la misma etiqueta.

Important

La denegación de permisos explícita para acciones de etiquetado de acciones es un factorimportante. Esto impide a los usuarios concederse permisos a sí mismos a través de etiquetas declústeres que no tenga previsto conceder. Si las acciones mostradas en el último ejemplo no sehan denegado, un usuario podría agregar y eliminar etiquetas de su elección en cualquier clústery sortear el objetivo de las políticas precedentes.

En el siguiente ejemplo de política, la condición StringEquals intenta hacer coincidir dev con el valorde la etiqueta department. Si la etiqueta department no se ha añadido al clúster o no contiene el valordev, la política no se aplica y esta política no permite las acciones. Si no hay otras instrucciones de políticaque permitan las acciones, el usuario solo puede trabajar con clústeres que tenga esta etiqueta con estevalor.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt12345678901234", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps", "elasticmapreduce:TerminateJobFlows",

236

Page 244: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"elasticmapreduce:SetTerminationProtection", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:DescribeStep" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": "dev" } } } ]}

También puede especificar varios valores de etiqueta utilizando un operador de condición. Por ejemplo, afin de permitir que todas las acciones en clústeres donde la etiqueta department contiene el valor dev otest, podría sustituir el bloque de condición en el ejemplo anterior por los siguientes.

"Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department":["dev", "test"] } }

Como en el ejemplo anterior, la siguiente política de ejemplo busca la misma etiqueta coincidente: elvalor dev de la etiqueta department. En este caso, sin embargo, la clave de contexto de condiciónRequestTag especifica que la política se aplica durante la creación de la etiqueta, por lo que el usuariodebe crear una etiqueta que coincida con el valor especificado.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1479334524000", "Effect": "Allow", "Action": [ "elasticmapreduce:RunJobFlow", "iam:PassRole" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/department": "dev" } } } ]}

En el siguiente ejemplo, las acciones de EMR que permiten la adición y eliminación de etiquetas secombinan con un operador StringNotEquals especificando la etiqueta dev que hemos visto en

237

Page 245: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

ejemplos anteriores. El efecto de esta política consiste en denegar a un usuario el permiso para añadir oeliminar cualquier etiqueta en clústeres de EMR que están etiquetados con una etiqueta department quecontiene el valor dev.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticmapreduce:AddTags", "elasticmapreduce:RemoveTags" ], "Condition": { "StringNotEquals": { "elasticmapreduce:ResourceTag/department": "dev" } }, "Resource": [ "*" ] } ]}

Permitir acciones en clústeres con una etiqueta específica, con independencia de su valor deetiqueta

También puede permitir acciones solo en clústeres que tengan una etiqueta particular, con independenciadel valor de la etiqueta. Para ello, puede utilizar el operador Null. Para obtener más información, consulteOperador de condición para comprobar la existencia de claves de condición en la Guía del usuario de IAM.Por ejemplo, para permitir acciones solo en clústeres de EMR que tengan la etiqueta department, conindependencia del valor que contenga, podría sustituir los bloques Condition del ejemplo anterior por elsiguiente. El operador Null buscará la presencia de la etiqueta department en un clúster de EMR. Si laetiqueta existe, la instrucción Null se evalúa como falsa, ajustándose a la condición especificada en estainstrucción de política y se permiten las acciones adecuadas.

"Condition": { "Null": { "elasticmapreduce:ResourceTag/department":"false" }}

La siguiente instrucción de política permite a un usuario crear un clúster de EMR solo si el clúster tendráuna etiqueta department, que puede contener cualquier valor.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:RunJobFlow", "iam:PassRole" ], "Condition": { "Null": { "elasticmapreduce:RequestTag/department": "false"

238

Page 246: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

} }, "Effect": "Allow", "Resource": [ "*" ] } ]}

Requerir que los usuarios añadan etiquetas al crear un clúster

La siguiente instrucción de política permite a un usuario crear un clúster de EMR solo si el clúster tendráuna etiqueta department que contiene el valor dev cuando se crea.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:RunJobFlow", "iam:PassRole" ], "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/department": "dev" } }, "Effect": "Allow", "Resource": [ "*" ] } ]}

Ejemplo de instrucciones de políticas basadas en identidades para Cuadernos deEMR

Las instrucciones de políticas de IAM de ejemplo de esta sección demuestran escenarios comunes del usode claves para limitar las acciones permitidas mediante Cuadernos de EMR. Siempre que no haya ningunaotra política asociada a la entidad principal (usuario) que permita las acciones, las claves de contexto decondición limitan las acciones permitidas tal como se indica.

Example : permitir el acceso solo a los blocs de notas creados por un usuario en función deletiquetado

La instrucción de política de ejemplo mostrada a continuación, cuando se asocia a un rol o a un usuario,permite al usuario de IAM trabajar solamente con los blocs de notas que ha creado. Esta instrucción depolítica utiliza la etiqueta predeterminada que se aplica al crear un bloc de notas.

En el ejemplo, el operador de condición StringEquals intenta emparejar una variable que representael ID de usuario de IAM del usuario actual ({aws:userId}) con el valor de la etiqueta creatorUserID.Si la etiqueta creatorUserID no se ha añadido al bloc de notas o no contiene el valor del ID del usuarioactual, la política no se aplica y esta política no permite las acciones. Si no hay otras instrucciones depolítica que permitan las acciones, el usuario solo puede trabajar con blocs de notas que tengan este valorpara esta etiqueta.

239

Page 247: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:DescribeEditor", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } } ]}

Example Requerir el etiquetado de blocs de notas al crear un bloc de notas

En este ejemplo, se utiliza la clave de contexto RequestTag. La acción CreateEditor solo se permitesi el usuario no cambia ni elimina la etiqueta creatorUserID que se añade de forma predeterminada.La variable ${aws:userId}, especifica el ID de usuario del usuario activo actualmente, que es el valorpredeterminado de la etiqueta.

La instrucción de política se puede utilizar para ayudar a garantizar que los usuarios no eliminan la etiquetacreateUserId ni cambian su valor.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:CreateEditor" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/creatorUserId": "${aws:userid}" } } } ]}

Este ejemplo requiere que el usuario cree el clúster con una etiqueta que tenga la cadena de clave deptestablecida en uno de los siguientes valores: datascience, analytics, operations.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:CreateEditor" ], "Effect": "Allow",

240

Page 248: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/dept": [ "datascience", "analytics", "operations" ] } } } ]}

Example Limitar la creación de blocs de notas a los clústeres etiquetados y requerir etiquetas debloc de notas

Este ejemplo permite la creación de blocs de notas solo si el bloc de notas se crea con una etiqueta quetiene la cadena de clave owner establecida en uno de los valores especificados. Además, el bloc de notassolo se puede crear si el clúster tiene una etiqueta con la cadena de clave department establecida enuno de los valores especificados.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:CreateEditor" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/owner": [ "owner1", "owner2", "owner3" ], "elasticmapreduce:ResourceTag/department": [ "dep1", "dep3" ] } } } ]}

Example Limitar la capacidad de iniciar un bloc de notas en función de las etiquetas

Este ejemplo limita la capacidad de iniciar blocs de notas únicamente a aquellos blocs de notas que tienenuna etiqueta con la cadena de clave owner establecida en uno de los valores especificados. Debido a queel elemento Resource se utiliza solo para especificar el valor editor, la condición no se aplica al clústery no es necesario etiquetarlo.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:StartEditor"

241

Page 249: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [ "owner1", "owner2" ] } } } ]}

Este ejemplo es similar a uno anterior. Sin embargo, el límite solo se aplica a los clústeres etiquetados, noa los blocs de notas.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [ "dep1", "dep3" ] } } } ]}

En este ejemplo, se utiliza un conjunto diferente de etiquetas de bloc de notas y de clúster. Permite el iniciode un bloc de notas solo si:

• El bloc de notas tiene una etiqueta con la cadena de clave owner establecida en cualquiera de losvalores especificados

—y—• El clúster tiene una etiqueta con la cadena de clave department establecida en cualquiera de los

valores especificados

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [

242

Page 250: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"user1", "user2" ] } } }, { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [ "datascience", "analytics" ] } } } ]}

Example Limitar la capacidad de abrir el editor de blocs de notas en función de las etiquetas

En este ejemplo, se permite la apertura del editor de blocs de notas solo si:

• El bloc de notas tiene una etiqueta con la cadena de clave owner establecida en cualquiera de losvalores especificados.

—y—• El clúster tiene una etiqueta con la cadena de clave department establecida en cualquiera de los

valores especificados.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [ "user1", "user2" ] } } }, { "Action": [ "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [

243

Page 251: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAutenticarse en nodos de clúster

"datascience", "analytics" ] } } } ]}

Autenticarse en nodos de clúster de Amazon EMRLo clientes SSH pueden utilizar un par de claves de Amazon EC2 para autenticarse en instancias declúster. De forma alternativa, con la versión 5.10.0 o las versiones posteriores de Amazon EMR, puedeconfigurar Kerberos para autenticar a los usuarios y las conexiones SSH con el nodo principal. Paraobtener más información, consulte Uso de la autenticación Kerberos (p. 244).

Temas• Uso de un par de claves de Amazon EC2 para las credenciales de SSH (p. 244)• Uso de la autenticación Kerberos (p. 244)

Uso de un par de claves de Amazon EC2 para lascredenciales de SSHLos nodos de clúster de Amazon EMR se ejecutan en instancias de Amazon EC2. Puede conectarse anodos del clúster de la misma forma que puede conectarse a instancias de Amazon EC2. Puede utilizarAmazon EC2 para crear un par de claves, o bien puede importar un par de claves. Al crear un clúster,puede especificar el par de claves de Amazon EC2 que se utilizará para las conexiones SSH en todas lasinstancias del clúster. También puede crear un clúster sin un par de claves. Esto se hace con clústerestransitorios que se inician, ejecutan pasos, y luego se terminan de forma automática.

El cliente SSH que se utiliza para conectar al clúster necesita utilizar el archivo de clave privada asociadoa este par de claves. Se trata de un archivo.pem para clientes SSH que utilizan Linux, Unix y MacOS.Debe establecer permisos para que solo el propietario de la clave tenga permiso para acceder al archivo.Para los clientes SSH que utilizan Windows, es un archivo .ppk, que normalmente se crea a partir delarchivo .pem.

• Para obtener más información sobre cómo crear un par de claves de Amazon EC2 consulte Pares declaves de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

• Para obtener instrucciones sobre el uso de PuTTYgen para crear un archivo .ppk a partir de unarchivo .pem, consulte Conversión de la clave privada mediante PuTTYgen en la Guía del usuario deAmazon EC2 para instancias de Linux.

• Para obtener más información acerca de cómo establecer los permisos para el archivo .pem y cómoconectarse a un nodo principal de un clúster de EMR con distintos métodos (incluido ssh desde Linux omacOS, PuTTY desde Windows, o la AWS CLI desde cualquier sistema operativo compatible), consulteConexión al nodo principal utilizando SSH (p. 354).

Uso de la autenticación KerberosLa versión 5.10.0 y las versiones posteriores de Amazon EMR son compatibles con Kerberos, que es unprotocolo de autenticación de red creado por el Massachusetts Institute of Technology (MIT). Kerberos

244

Page 252: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

utiliza la criptografía de clave secreta para proporcionar una autenticación sólida, de forma que lascontraseñas u otras credenciales no se envían a través de la red en un formato no cifrados.

En Kerberos, los servicios y los usuarios que necesitan autenticarse se conocen como entidadesprincipales. Las entidades principales existen dentro de un ámbito de Kerberos. En el ámbito, un servidorde Kerberos conocido como centro de distribución de claves (KDC) proporciona los medios para que seautentiquen las entidades principales. El KDC lo hace mediante la emisión de tickets para la autenticación.El KDC mantiene una base de datos de los principales dentro de su ámbito, sus contraseñas y otrosdatos administrativos sobre cada uno de los principales. Un KDC también puede aceptar credencialesde autenticación de entidades principales de otros ámbitos, lo que se conoce como una confianza entreámbitos. Además, un clúster de EMR puede utilizar un KDC externo para autenticar principales.

Una forma común de establecer una relación de confianza entre ámbitos o de utilizar un KDC externo esautenticar a los usuarios desde un dominio de Active Directory. Esto permite a los usuarios obtener accesoa un clúster de EMR con su cuenta de usuario del dominio cuando utilizan SSH para conectarse a unclúster o trabajan con aplicaciones de big data.

Si utiliza autenticación Kerberos, Amazon EMR configura Kerberos para las aplicaciones, componentes ysubsistemas que instala en el clúster, de forma que se autentiquen entre sí.

Important

Amazon EMR no admite AWS Directory Service for Microsoft Active Directory en una relación deconfianza entre ámbitos o como un KDC externo.

Antes de configurar Kerberos con Amazon EMR, le recomendamos que se familiarice con los conceptosde Kerberos, los servicios que se ejecutan en un KDC y las herramientas de administración de servicios deKerberos. Para obtener más información, consulte la documentación de Kerberos del MIT, que publica elconsorcio Kerberos.

Temas• Aplicaciones compatibles (p. 245)• Opciones de la arquitectura Kerberos (p. 246)• Configuración de Kerberos en Amazon EMR (p. 255)• Uso de SSH para conectarse a clústeres que utilizan Kerberos (p. 263)• Tutorial: Configurar un KDC dedicado del clúster (p. 265)• Tutorial: Configurar una relación de confianza entre ámbitos con un dominio de Active

Directory (p. 267)

Aplicaciones compatiblesDentro de un clúster de EMR, las entidades principales de Kerberos son los servicios de aplicaciones debig data y los subsistemas que se ejecutan en todos los nodos del clúster. Amazon EMR puede configurarlas aplicaciones y componentes que se indican a continuación para utilizar Kerberos. Cada aplicación tieneuna entidad principal de Kerberos asociada.

Amazon EMR no admite las relaciones de confianza entre ámbitos con AWS Directory Service for MicrosoftActive Directory.

Amazon EMR solo configura las características de autenticación de Kerberos de código abierto para lasaplicaciones y los componentes indicados a continuación. Cualquier otra aplicación instalada no utilizaKerberos, lo que puede provocar la incapacidad para comunicarse con los componentes que utilizanKerberos y generar errores en la aplicación. Las aplicaciones y componentes que no utilizan Kerberos notienen habilitada la autenticación. Las aplicaciones y los componentes compatibles pueden variar según laversión de Amazon EMR.

245

Page 253: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Ninguna de las interfaces de usuario web alojadas en el clúster utiliza Kerberos.

• Hadoop MapReduce• HBase• HCatalog• HDFS• Hive

• No active Hive con la autenticación LDAP. Esto puede provocar problemas al comunicarse con elYARN que utiliza Kerberos.

• Hue• Hue la autenticación de usuarios no se establece automáticamente y se pueden configurar mediante

la configuración de la API.• El servidor de Hue utiliza Kerberos. El front-end (la UI) de Hue no está configurado para la

autenticación. La autenticación LDAP se puede configurar para la UI de Hue.• Livy• Oozie• Phoenix• Spark• Tez• YARN• Zeppelin

• Zeppelin solo está configurado para utilizar Kerberos con el intérprete Spark. No está configurado paraotros intérpretes.

• No se admite la suplantación de Zeppelin con Kerberos. Todos los usuarios que inician sesión enZeppelin utilizan la misma entidad principal de Zeppelin para ejecutar trabajos de Spark y autenticarseen YARN.

• ZooKeeper• Zookeeper cliente no es compatible.

Opciones de la arquitectura KerberosCuando se utiliza Kerberos con Amazon EMR, puede elegir entre las arquitecturas que se indican en estasección. Independientemente de la arquitectura que elija, para configurar Kerberos hay que seguir losmismos pasos. Debe crear una configuración de seguridad, especificar la configuración de seguridad y lasopciones de Kerberos específicas del clúster compatibles al crear el clúster y crear directorios de HDFSpara los usuarios de Linux en el clúster que coincidan con las entidades principales de usuarios en elKDC. Para leer una explicación sobre las opciones de configuración y configuraciones de ejemplo de cadaarquitectura, consulte Configuración de Kerberos en Amazon EMR (p. 255).

KDC dedicado del clúster (KDC en nodo principal)

Esta configuración está disponible en la versión 5.10.0 o posterior de Amazon EMR.

246

Page 254: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Ventajas

• Amazon EMR tiene la plena propiedad del KDC.• El KDC en el clúster de EMR es independiente de las implementaciones de KDC centralizadas, como

Microsoft Active Directory o AWS Managed Microsoft AD.• El impacto en el rendimiento es mínimo, ya que el KDC administra la autenticación solo para los nodos

locales del clúster.• Opcionalmente, otros clústeres que utilizan Kerberos pueden hacer referencia al KDC como un

KDC externo. Para obtener más información, consulte KDC externo—nodo principal en un clústerdiferente (p. 252).

Condiciones y limitaciones

• Los clústeres que utilizan Kerberos no se pueden autenticarse entre sí, por lo que las aplicaciones nopueden interactuar. Si las aplicaciones de clústeres tienen que interactuar, debe establecer una relaciónde confianza entre ámbitos entre los clústeres o configurar un clúster como el KDC externo para otrosclústeres. Si se establece una relación de confianza entre ámbitos, los KDC deberán tener diferentesámbitos de Kerberos.

• Debe crear usuarios de Linux en la instancia EC2 del nodo principal que se correspondan con lasentidades principales de usuarios de KDC, junto con los directorios de HDFS de cada usuario.

• Las entidades principales de usuario deben utilizar un archivo de clave privada de EC2 y credenciales dekinit para conectarse al clúster mediante SSH.

247

Page 255: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Relación de confianza entre ámbitos

En esta configuración, las entidades principales (normalmente usuarios) de otro ámbito de Kerberos seautentican para los componentes de la aplicación en un clúster de EMR que utiliza Kerberos y que tienesu propio KDC. El KDC del nodo principal establece una relación de confianza con otro KDC utilizandouna entidad principal entre ámbitos que existe en los dos KDC. El nombre y la contraseña de la entidadprincipal deben coincidir exactamente en cada KDC. Las relaciones de confianza entre ámbitos son máscomunes con las implementaciones de Active Directory, tal y como se muestra en el siguiente diagrama.También se admiten relaciones de confianza entre ámbitos con un KDC de MIT externo o un KDC en otroclúster de Amazon EMR.

248

Page 256: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Ventajas

• El clúster de EMR en el que está instalado el KDC mantiene la plena propiedad del KDC.• Con Active Directory, Amazon EMR crea automáticamente usuarios de Linux que se corresponden

con las entidades principales de usuario del KDC. Aun así, debe crear directorios de HDFS para cadausuario. Además, las entidades principales de usuario del dominio de Active Directory pueden obteneracceso a los clústeres que utilizan Kerberos mediante credenciales de kinit, sin el archivo de clave

249

Page 257: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

privada de EC2. Así se elimina la necesidad de compartir el archivo de clave privada entre usuarios declústeres.

• Dado que cada KDC del clúster administra la autenticación de los nodos del clúster, se minimizan losefectos de la latencia de la red y la sobrecarga de procesamiento de un gran número de nodos entreclústeres.

Condiciones y limitaciones

• Si va a establecer una relación de confianza con un ámbito de Active Directory, debe proporcionar unnombre de usuario y contraseña de Active Directory con permisos para unir entidades principales aldominio al crear el clúster.

• Las relaciones de confianza entre ámbitos no se pueden establecer entre ámbitos de Kerberos con elmismo nombre.

• Las relaciones de confianza entre ámbitos deben establecerse de forma explícita. Por ejemplo,si el Clúster A y B establecen una relación de confianza entre ámbitos con un KDC, no confíanintrínsecamente uno en el otro y sus aplicaciones no pueden autenticarse entre sí para interaccionar.

• Los KDC deben mantenerse de forma independiente y deben coordinarse para que las credenciales delas entidades principales de usuario coincidan exactamente.

KDC externo

Las configuraciones con un KDC externo son compatibles con Amazon EMR 5.20.0 y posteriores.

• KDC externo—KDC de MIT (p. 250)• KDC externo—nodo principal en un clúster diferente (p. 252)• KDC externo—KDC de clúster en un clúster diferente con una relación de confianza entre ámbitos de

Active Directory (p. 253)

KDC externo—KDC de MIT

Esta configuración permite que uno o varios clústeres de EMR utilicen entidades principales definidas ymantenidos en un servidor de KDC de MIT.

250

Page 258: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Ventajas

• La administración de principales se consolida en un solo KDC.• Varios clústeres pueden utilizar el mismo KDC en el mismo ámbito de Kerberos. Esto permite que

las aplicaciones de clústeres interaccionen y simplifica la autenticación de la comunicación entre losclústeres en comparación con una relación de confianza entre ámbitos.

• El nodo principal en un clúster que utiliza Kerberos no tiene la carga de rendimiento asociada con elmantenimiento del KDC.

Condiciones y limitaciones

• Debe crear usuarios de Linux en la instancia EC2 del nodo principal del clúster que tiene Kerberos quese correspondan con las entidades principales de usuarios de KDC, junto con los directorios de HDFS decada usuario.

• Las entidades principales de usuarios deben utilizar un archivo de clave privada de EC2 y credencialesde kinit para conectarse a los clústeres que utilizan Kerberos mediante SSH.

• Cada nodo de los clústeres de EMR que utilizan Kerberos debe tener una ruta de red al KDC.• Cada nodo en los clústeres que utilizan Kerberos impone un carga de autenticación en el KDC externo,

por lo que la configuración del KDC afecta al rendimiento del clúster. Cuando configure el hardware delservidor de KDC, tenga en cuenta el número máximo de nodos de Amazon EMR que se pueden admitirde forma simultánea.

• El rendimiento del clúster depende de la latencia de red entre los nodos en los clústeres que utilizanKerberos y el KDC.

• La solución de problemas puede ser más difícil debido a las interdependencias.

251

Page 259: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

KDC externo—nodo principal en un clúster diferente

Esta configuración es casi idéntica a la implementación de KDC de MIT externos anterior, salvo queel KDC está en el nodo principal de un clúster de EMR. Para obtener más información, consulte KDCdedicado del clúster (KDC en nodo principal) (p. 246) y Tutorial: Configurar una relación de confianzaentre ámbitos con un dominio de Active Directory (p. 267).

252

Page 260: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Ventajas

• La administración de principales se consolida en un solo KDC.• Varios clústeres pueden utilizar el mismo KDC en el mismo ámbito de Kerberos. Esto permite que las

aplicaciones del clúster que utilizan Kerberos interaccionen. También simplifica la autenticación de lacomunicación entre clústeres en comparación con una relación de confianza entre ámbitos.

Condiciones y limitaciones

• Debe crear usuarios de Linux en la instancia EC2 del nodo principal del clúster que tiene Kerberos quese correspondan con las entidades principales de usuarios de KDC, junto con los directorios de HDFS decada usuario.

• Las entidades principales de usuarios deben utilizar un archivo de clave privada de EC2 y credencialesde kinit para conectarse a los clústeres que utilizan Kerberos mediante SSH.

• Cada nodo de cada clúster de EMR debe tener una ruta de red al KDC.• Cada nodo de Amazon EMR de los clústeres que utilizan Kerberos impone un carga de autenticación en

el KDC externo, por lo que la configuración del KDC afecta al rendimiento del clúster. Cuando configureel hardware del servidor de KDC, tenga en cuenta el número máximo de nodos de Amazon EMR que sepueden admitir de forma simultánea.

• El rendimiento del clúster depende de la latencia de red entre los nodos de clústeres y el KDC.• La solución de problemas puede ser más difícil debido a las interdependencias.

KDC externo—KDC de clúster en un clúster diferente con una relación de confianza entre ámbitosde Active Directory

En esta configuración, primero se crea un clúster con un KDC dedicado del clúster que tiene una relaciónde confianza entre ámbitos unidireccional con Active Directory. Para ver un tutorial detallado, consulteTutorial: Configurar una relación de confianza entre ámbitos con un dominio de Active Directory (p. 267).A continuación, lance clústeres adicionales, haciendo referencia al KDC del clúster que tiene la relaciónde confianza con un KDC externo. Para ver un ejemplo, consulte KDC externo del clúster con una relaciónde confianza entre ámbitos de Active Directory (p. 261). De este modo, cada clúster de Amazon EMRpuede utilizar el KDC externo para autenticar entidades principales definidas y mantenidas en un dominiode Microsoft Active Directory.

253

Page 261: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Ventajas

• La administración de entidades principales se consolida en el dominio de Active Directory.• Amazon EMR se une al ámbito de Active Directory, lo que elimina la necesidad de crear usuarios de

Linux que se correspondan con usuarios de Active Directory. Aun así, debe crear directorios de HDFSpara cada usuario.

• Varios clústeres pueden utilizar el mismo KDC en el mismo ámbito de Kerberos, que es diferente delámbito de Active Directory. Esto permite que las aplicaciones de clúster interaccionen.

254

Page 262: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

• Las entidades principales de usuarios del dominio de Active Directory pueden acceder a los clústeresque utilizan Kerberos mediante credenciales de kinit, sin el archivo de clave privada de EC2. Así seelimina la necesidad de compartir el archivo de clave privada entre usuarios de clústeres.

• Solo un nodo principal de Amazon EMR tiene la carga del mantenimiento del KDC y solo ese clústerdebe crearse con credenciales de Active Directory para la relación de confianza entre ámbitos entre elKDC y Active Directory.

Condiciones y limitaciones

• Cada nodo de cada clúster de EMR debe tener una ruta de red al KDC y el controlador de dominio deActive Directory.

• Cada nodo de Amazon EMR impone un carga de autenticación en el KDC externo, por lo que laconfiguración del KDC afecta al rendimiento del clúster. Cuando configure el hardware del servidor deKDC, tenga en cuenta el número máximo de nodos de Amazon EMR que se pueden admitir de formasimultánea.

• El rendimiento del clúster depende de la latencia de red entre los nodos de los clústeres y el servidor deKDC.

• La solución de problemas puede ser más difícil debido a las interdependencias.

Configuración de Kerberos en Amazon EMREn esta sección, se proporcionan detalles y ejemplos de la configuración de Kerberos con arquitecturascomunes. Independientemente de la arquitectura que elija, los aspectos básicos de la configuración sonlos mismos y se realizan en tres pasos. Si utiliza un KDC externo o configura una relación de confianzaentre ámbitos, debe asegurarse de que todos los nodos de un clúster tengan una ruta de red al KDCexterno, incluida la configuración de los grupos de seguridad aplicables para permitir el tráfico de entrada ysalida de Kerberos.

Paso 1: Cree una configuración de seguridad con propiedades de Kerberos

La configuración de seguridad especifica detalles sobre el KDC de Kerberos y permite reutilizar laconfiguración de Kerberos cada vez que se crea un clúster. Puede crear una configuración de seguridadutilizando la consola de Amazon EMR, la AWS CLI o la API de EMR. La configuración de seguridadtambién pueden contener otras opciones de seguridad, como, por ejemplo, el cifrado. Para obtener másinformación acerca de la creación y especificación de las configuraciones de seguridad cuando se crea unclúster, consulte Uso de configuraciones de seguridad para configurar la seguridad del clúster (p. 171).Para obtener más información acerca de las propiedades de Kerberos en una configuración de seguridad,consulte Configuración de Kerberos para las configuraciones de seguridad (p. 256).

Paso 2: Cree un clúster y especifique los atributos de Kerberos específicos delclúster

Al crear un clúster, especifique la configuración de seguridad de Kerberos junto con las opciones deKerberos específicas del clúster. Cuando utilice la consola de Amazon EMR, solo están disponibles lasopciones de Kerberos compatibles con la configuración de seguridad especificada. Cuando utilice la AWSCLI o la API de Amazon EMR, asegúrese de especificar las opciones de Kerberos compatibles con laconfiguración de seguridad especificada. Por ejemplo, si especifica la contraseña de la entidad principalpara una relación de confianza entre ámbitos al crear un clúster mediante la CLI y la configuración deseguridad especificada no tiene parámetros de relación de confianza entre ámbitos, se produce un error.Para obtener más información, consulte Configuración de Kerberos para clústeres (p. 258).

255

Page 263: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Paso 3: Configure el nodo principal del clústerEn función de los requisitos de su arquitectura e implementación, es posible que sea necesario realizar unaconfiguración adicional en el clúster. Puede hacer esto después de crearla o mediante pasos o accionesde arranque durante el proceso de creación.

Para cada usuario autenticado de Kerberos que se conecte al clúster utilizando SSH, debe asegurarsede que se crean cuentas de usuario de Linux que se corresponden con el usuario de Kerberos. Si elcontrolador de dominio de Active Directory proporciona las entidades principales de usuario, ya sea comoel KDC externo o a través de una relación de confianza entre ámbitos, Amazon EMR crea cuentas deusuario de Linux de forma automática. Si no se utiliza Active Directory, debe crear entidades principalespara cada usuario que se correspondan con su usuario de Linux. Para obtener más información,consulte Configuración de un clúster para usuarios de HDFS y conexiones SSH autenticados enKerberos (p. 261).

Cada usuario también debe tener un directorio de usuarios de HDFS propio que debe crear usted.Además, SSH debe estar configurado con GSSAPI habilitado para permitir conexiones de los usuariosautenticados por Kerberos. GSSAPI debe estar habilitado en el nodo principal y se debe configurar laaplicación SSH del cliente para que utilice GSSAPI. Para obtener más información, consulte Configuraciónde un clúster para usuarios de HDFS y conexiones SSH autenticados en Kerberos (p. 261).

Configuración de seguridad y configuración de clústeres para Kerberos enAmazon EMRAl crear un clúster que utiliza Kerberos, debe especificar la configuración de seguridad junto con losatributos de Kerberos específicos para el clúster. No puede especificar un conjunto sin el otro, o seproducirá un error.

En este tema, se ofrece información general de los parámetros de configuración disponibles para Kerberosal crear una configuración de seguridad y un clúster. Además, se proporcionan ejemplos de CLI para crearconfiguraciones de seguridad compatibles y clústeres para arquitecturas comunes.

Configuración de Kerberos para las configuraciones de seguridad

Puede crear una configuración de seguridad que especifica los atributos de Kerberos utilizando la consolade Amazon EMR, la AWS CLI o la API de EMR. La configuración de seguridad también pueden contenerotras opciones de seguridad, como, por ejemplo, el cifrado. Para obtener más información, consulteCreación de una configuración de seguridad (p. 171).

Utilice las siguientes referencias para conocer las opciones de configuración de seguridad disponibles parala arquitectura Kerberos que elija. Se muestra la configuración de la consola de Amazon EMR. Para ver lasopciones de la CLI correspondientes, consulte Especificación de la configuración de Kerberos con la AWSCLI (p. 183) o Ejemplos de configuraciones (p. 259).

Parámetro Descripción

Kerberos Especifica si Kerberos está habilitado para clústeres queusan esta configuración de seguridad. Si un clúster usaesta configuración de seguridad, también debe tener laconfiguración de Kerberos especificada o se producirá unerror.

Proveedor KDC dedicado del clúster Especifica que Amazon EMR crea un KDC en el nodoprincipal de cualquier clúster que utilice esta configuraciónde seguridad. El nombre de ámbito y la contraseña deadministrador de KDC se especifican al crear el clúster.

Puede hacer referencia a este KDC desde otros clústeresen caso necesario. Cree dichos clústeres con una

256

Page 264: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Parámetro Descripciónconfiguración de seguridad diferente, especifique un KDCexterno, y utilice el nombre de ámbito y la contraseñade administrador de KDC que especificó para el KDCdedicado del clúster.

KDC externo Disponible solo con Amazon EMR 5.20.0 y versionesposteriores. Especifica que los clústeres que utilizanesta configuración de seguridad autentican las entidadesprincipales de Kerberos con un servidor de KDC fuera delclúster. No se crea un KDC en el clúster. Cuando cree elclúster, especifique el nombre de ámbito y la contraseñade administrador de KDC para el KDC externo.

Vida útil de los vales Opcional. Especifica el periodo de validez para un ticketde Kerberos generado por el KDC en clústeres que utilicenesta configuración de seguridad.

La vida útil de los vales se limita por motivos de seguridad.Las aplicaciones de clúster y los servicios renuevanautomáticamente los vales después de que expiren.Los usuarios que se conecten al clúster mediante SSHutilizando las credenciales de Kerberos tienen que ejecutarel comando kinit desde la línea de comandos del nodoprincipal para la renovación tras la expiración de un vale.

Confianza entre dominios Especifica una confianza entre ámbitos entre un KDCdedicado del clúster en clústeres que utilicen estaconfiguración de seguridad y un KDC de un ámbito deKerberos diferente.

Las entidades principales (normalmente usuarios) deotro ámbito se autentican en clústeres que usan estaconfiguración. Es obligatorio usar una configuraciónadicional en el otro ámbito de Kerberos. Para obtener másinformación, consulte Tutorial: Configurar una relaciónde confianza entre ámbitos con un dominio de ActiveDirectory (p. 267).

Ámbito Especifica el nombre de ámbito de Kerberos del otroámbito en la relación de confianza. Convencionalmente,los nombres de ámbito de Kerberos coinciden con elnombre de ámbito, pero en mayúsculas.

Dominio Especifica el nombre de dominio del otro dominio en larelación de confianza.

Propiedadesde confianzaentreámbitos

Servidor de administración Especifica el nombre de dominio completo (FQDN) o ladirección IP del servidor de administración del otro ámbitode la relación de confianza. El servidor de administración yel servidor de KDC suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos paracomunicarse.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 749. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:749).

257

Page 265: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Parámetro Descripción

Servidor de KDC Especifica el nombre de dominio completo (FQDN) o ladirección IP del servidor de KDC en el otro ámbito de larelación de confianza. El servidor de KDC y el servidor deadministración suelen ejecutarse en el mismo equipo conel mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 88. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:88).

KDC externa Especifica que el clúster utiliza KDC externos del clúster.

Servidor de administración Especifica el nombre de dominio completo (FQDN) o ladirección IP del servidor de administración externo. Elservidor de administración y el servidor de KDC suelenejecutarse en el mismo equipo con el mismo FQDN, peroutilizan puertos distintos para comunicarse.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 749. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:749).

Servidor de KDC Especifica el nombre de dominio completo (FQDN) o elservidor de KDC externo. El servidor de KDC y el servidorde administración suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puertopredeterminado de Kerberos: el 88. Tambiénse puede especificar el puerto (por ejemplo,domain.example.com:88).

Integración de ActiveDirectory

Especifica que la autenticación principal de Kerberos estáintegrada con un dominio de Microsoft Active Directory.

Ámbitode ActiveDirectory

Especifica el nombre de ámbito de Kerberos del dominiode Active Directory. Convencionalmente, los nombres deámbito de Kerberos coinciden normalmente con el nombrede ámbito, pero en mayúsculas.

Dominiode ActiveDirectory

Especifica el nombre de dominio de Active Directory.

Propiedadesde KDCexternos

Propiedadesdeintegracióncon ActiveDirectory

Servidorde ActiveDirectory

Especifica el nombre de dominio completo (FQDN) delcontrolador de dominio de Microsoft Active Directory.

Configuración de Kerberos para clústeres

Puede especificar la configuración de Kerberos al crear un clúster con la consola de Amazon EMR, la AWSCLI o la API de EMR.

258

Page 266: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Utilice las siguientes referencias para conocer las opciones de configuración de clústeres disponibles parala arquitectura Kerberos que elija. Se muestra la configuración de la consola de Amazon EMR. Para ver lasopciones de la CLI correspondientes, consulte Ejemplos de configuraciones (p. 259).

Parámetro Descripción

Ámbito El nombre del ámbito de Kerberos para elclúster. La convención de Kerberos consiste enestablecerlo igual que el nombre del dominio,pero en mayúsculas. Por ejemplo, para el dominioec2.internal, se utiliza EC2.INTERNAL comonombre de ámbito.

Contraseña de administración de KDC La contraseña utilizada en el clúster kadmino kadmin.local. Son interfaces de línea decomandos para el sistema de administraciónde Kerberos V5, que mantiene las entidadesprincipales, las políticas de contraseñas y lastablas de claves de Kerberos para el clúster.

Contraseña de la entidad principal de confianzaentre ámbitos (opcional)

Es necesaria para establecer una confianza entreámbitos. La contraseña de la entidad principal deconfianza entre ámbitos, que debe ser idéntica enlos distintos ámbitos. Use una contraseña segura.

Usuario de incorporación al dominio de ActiveDirectory (opcional)

Obligatorio cuando se utiliza Active Directory enuna relación de confianza entre ámbitos. Se tratade un nombre de inicio de sesión de usuario deuna cuenta de Active Directory con permisos paraincorporar equipos al dominio. Amazon EMR utilizaesta identidad para incorporar el clúster al dominio.Para obtener más información, consulte the sectioncalled “Paso 3: Añadir cuentas de usuario aldominio para el clúster de EMR” (p. 269).

Contraseña de incorporación al dominio de ActiveDirectory (opcional)

La contraseña del usuario de incorporación a undominio de Active Directory. Para obtener másinformación, consulte the section called “Paso3: Añadir cuentas de usuario al dominio para elclúster de EMR” (p. 269).

Ejemplos de configuraciones

Los siguientes ejemplos muestran configuraciones de seguridad y configuraciones de clúster parasituaciones comunes. Se muestran comandos de AWS CLI por razones de brevedad.

KDC local

Los siguientes comandos crean un clúster con un KDC dedicado del clúster que se ejecuta en el nodoprincipal. Es necesario realizar una configuración adicional en el clúster. Para obtener más información,consulte Configuración de un clúster para usuarios de HDFS y conexiones SSH autenticados enKerberos (p. 261).

Crear configuración de seguridad

aws emr create-security-configuration --name LocalKDCSecurityConfig \--security-configuration '{"AuthenticationConfiguration": \

259

Page 267: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

{"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc",\"ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24 }}}}'

Crear un clúster

aws emr create-cluster --release-label emr-5.30.0 \--instance-count 3 --instance-type m5.xlarge \--applications Name=Hadoop Name=Hive --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole \--security-configuration LocalKDCSecurityConfig \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyPassword

KDC dedicado del clúster con una relación de confianza entre ámbitos de Active Directory

Los siguientes comandos crean un clúster con un KDC dedicado del clúster que se ejecuta en el nodoprincipal con una relación de confianza entre ámbitos con un dominio de Active Directory. Se necesitarealizar configuración adicional en el clúster y en Active Directory. Para obtener más información, consulteTutorial: Configurar una relación de confianza entre ámbitos con un dominio de Active Directory (p. 267).

Crear configuración de seguridad

aws emr create-security-configuration --name LocalKDCWithADTrustSecurityConfig \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc", \"ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24, \"CrossRealmTrustConfiguration": {"Realm":"AD.DOMAIN.COM", \"Domain":"ad.domain.com", "AdminServer":"ad.domain.com", \"KdcServer":"ad.domain.com"}}}}}'

Crear un clúster

aws emr create-cluster --release-label emr-5.30.0 \--instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop Name=Hive \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole --security-configuration KDCWithADTrustSecurityConfig \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyClusterKDCAdminPassword,\ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\CrossRealmTrustPrincipalPassword=MatchADTrustPassword

KDC externo en un clúster diferente

Los siguientes comandos crean un clúster que hace referencia a un KDC dedicado del clúster en elnodo principal de un clúster diferente para autenticar entidades principales. Es necesario realizar unaconfiguración adicional en el clúster. Para obtener más información, consulte Configuración de un clústerpara usuarios de HDFS y conexiones SSH autenticados en Kerberos (p. 261).

Crear configuración de seguridad

aws emr create-security-configuration --name ExtKDCOnDifferentCluster \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ExternalKdc", \"ExternalKdcConfiguration": {"KdcServerType": "Single", \"AdminServer": "MasterDNSOfKDCMaster:749", \"KdcServer": "MasterDNSOfKDCMaster:88"}}}}'

Crear un clúster

aws emr create-cluster --release-label emr-5.30.0 \

260

Page 268: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

--instance-count 3 --instance-type m5.xlarge \--applications Name=Hadoop Name=Hive \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole --security-configuration ExtKDCOnDifferentCluster \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=KDCOnMasterPassword

KDC externo del clúster con una relación de confianza entre ámbitos de Active Directory

Los siguientes comandos crean un clúster sin KDC. El clúster hace referencia a un KDC dedicado delclúster que se ejecuta en el nodo principal de otro clúster para autenticar entidades principales. EsaKDC posee una relación de confianza entre ámbitos con un controlador de dominio de Active Directory.Es necesario realizar una configuración adicional en el nodo principal con el KDC. Para obtener másinformación, consulte Tutorial: Configurar una relación de confianza entre ámbitos con un dominio deActive Directory (p. 267).

Crear configuración de seguridad

aws emr create-security-configuration --name ExtKDCWithADIntegration \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ExternalKdc", \"ExternalKdcConfiguration": {"KdcServerType": "Single", \"AdminServer": "MasterDNSofClusterKDC:749", \"KdcServer": "MasterDNSofClusterKDC.com:88", \"AdIntegrationConfiguration": {"AdRealm":"AD.DOMAIN.COM", \"AdDomain":"ad.domain.com"}}}}}'

Crear un clúster

aws emr create-cluster --release-label emr-5.30.0 \--instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop Name=Hive \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole --security-configuration ExtKDCWithADIntegration \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=KDCOnMasterPassword,\ADDomainJoinUser=MyPrivilegedADUserName,ADDomainJoinPassword=PasswordForADDomainJoinUser

Configuración de un clúster para usuarios de HDFS y conexiones SSHautenticados en Kerberos

Amazon EMR crea clientes de usuario autenticados por Kerberos para las aplicaciones que se ejecutan enel —clúster; por ejemplo, el usuario hadoop, spark y otros. También puede añadir usuarios autenticadosa los procesos del clúster mediante Kerberos. Luego, los usuarios autenticados pueden conectarseal clúster con sus credenciales de Kerberos y trabajar con aplicaciones. Para que un usuario puedaautenticarse en el clúster, es necesario realizar las siguientes configuraciones:

• Debe existir una cuenta de usuario de Linux que coincida con la entidad principal de Kerberos delKDC en el clúster. Amazon EMR lo hace automáticamente en arquitecturas que se integran con ActiveDirectory.

• Debe crear un directorio de usuarios de HDFS en el nodo principal para cada usuario y proporcionarpermisos de usuario al directorio.

• Debe configurar el servicio SSH para que GSSAPI esté habilitado en el nodo principal. Además, losusuarios deben tener un cliente SSH con GSSAPI habilitado.

Adición de usuarios de Linux y entidades principales de Kerberos al nodo principal

Si no utiliza Active Directory, debe crear las cuentas de Linux en el nodo principal del clúster y añadirentidades principales para estos usuarios de Linux al KDC. Esto incluye una entidad principal en el KDC

261

Page 269: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

para el nodo principal. Además de las entidades principales de usuarios, el KDC que se ejecuta en el nodoprincipal necesita una entidad principal para el host local.

Cuando la arquitectura incluye integración con Active Directory, los usuarios y entidades principales deLinux en el KDC local, si procede, se crean automáticamente. Puede omitir este paso. Para obtener másinformación, consulte Relación de confianza entre ámbitos (p. 248) y KDC externo—KDC de clúster enun clúster diferente con una relación de confianza entre ámbitos de Active Directory (p. 253).

Important

El KDC; junto con la base de datos de principales, se pierde cuando se termina el nodo principal,ya que el nodo principal usa almacenamiento efímero. Si crea usuarios para conexiones SSH,recomendamos que establezca una confianza entre dominios con un KDC externo configuradopara disponibilidad alta. Como alternativa, si crea usuarios para conexiones SSH con cuentasde usuario de Linux, automatice el proceso de creación de cuentas con acciones de arranque yscripts para poder repetirlo al crear un nuevo clúster.

La manera más sencilla de añadir usuarios y entidades principales de KDC es enviar un paso al clústerdespués de crearlo o al crear el clúster. Si lo prefiere, puede conectarse al nodo principal utilizando un parde claves de EC2 como el usuario predeterminado hadoop para ejecutar los comandos. Para obtener másinformación, consulte Conexión al nodo principal utilizando SSH (p. 354).

En el siguiente ejemplo, se envía un script bash configureCluster.sh a un clúster que ya existe,especificando su ID de clúster. El script se almacena en Amazon S3.

aws emr add-steps --cluster-id j-01234567 \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://myregion.elasticmapreduce/libs/script-runner/script-runner.jar,\Args=["s3://mybucket/configureCluster.sh"]

El siguiente ejemplo muestra el contenido del script configureCluster.sh. El script también se encargade la creación de los directorios de usuario de HDFS y de habilitar GSSAPI para SSH, lo que se explica enlas siguientes secciones.

#!/bin/bash#Add a principal to the KDC for the master node, using the master node's returned host namesudo kadmin.local -q "ktadd -k /etc/krb5.keytab host/`hostname -f`"#Declare an associative array of user names and passwords to adddeclare -A arrarr=([lijuan]=pwd1 [marymajor]=pwd2 [richardroe]=pwd3)for i in ${!arr[@]}; do #Assign plain language variables for clarity name=${i} password=${arr[${i}]}

# Create a principal for each user in the master node and require a new password on first logon sudo kadmin.local -q "addprinc -pw $password +needchange $name"

#Add hdfs directory for each user hdfs dfs -mkdir /user/$name

#Change owner of each user's hdfs directory to that user hdfs dfs -chown $name:$name /user/$namedone

# Enable GSSAPI authentication for SSH and restart SSH servicesudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_configsudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_config

262

Page 270: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

sudo /etc/init.d/sshd restart

Adición de directorios de HDFS de usuarios

Para permitir a los usuarios iniciar sesión en el clúster para ejecutar los trabajos de Hadoop, debe añadirdirectorios de usuario de HDFS para sus cuentas de usuario de Linux y conceder a cada usuario lapropiedad de su directorio.

La manera más sencilla de crear directorios de HDFS es enviar un paso al clúster después de crearlo o alcrear el clúster. Si lo prefiere, podría conectarse al nodo principal utilizando un par de claves de EC2 comoel usuario predeterminado hadoop para ejecutar los comandos. Para obtener más información, consulteConexión al nodo principal utilizando SSH (p. 354).

En el siguiente ejemplo, se envía un script bash AddHDFSUsers.sh a un clúster que ya existe,especificando su ID de clúster. El script se almacena en Amazon S3.

aws emr add-steps --cluster-id ClusterID \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://MyRegion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://MyBucketPath/AddHDFSUsers.sh"]

El siguiente ejemplo muestra el contenido del script AddHDFSUsers.sh.

#!/bin/bash# AddHDFSUsers.sh script

# Initialize an array of user names from AD, or Linux users created manually on the clusterADUSERS=("lijuan" "marymajor" "richardroe" "myusername")

# For each user listed, create an HDFS user directory# and change ownership to the user

for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$usernamedone

Habilitación de GSSAPI para SSH

Para que los usuarios autenticados por Kerberos se conecten al nodo principal mediante SSH, el servicioSSH debe tener habilitada la autenticación de GSSAPI. Para habilitar GSSAPI, ejecute los siguientescomandos desde la línea de comandos del nodo principal o utilice un paso para ejecutarlo como un script.Después de volver a configurar SSH, reinicie el servicio.

sudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_configsudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_configsudo /etc/init.d/sshd restart

Uso de SSH para conectarse a clústeres que utilizan KerberosEn esta sección, se muestran los pasos para que un usuario autenticado por Kerberos se conecte al nodoprincipal de un clúster de EMR.

Cada equipo que se utiliza para una conexión SSH debe tener instalados un cliente SSH y aplicaciones decliente de Kerberos. Lo más probable es que los equipos Linux los incluyan de forma predeterminada. Por

263

Page 271: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

ejemplo, OpenSSH está instalado en la mayoría de los sistemas operativos Linux, Unix y macOS. Puedecomprobar si tiene un cliente SSH escribiendo ssh en la línea de comandos. Si su equipo no reconoceel comando, instale un cliente SSH para conectarse al nodo principal. El proyecto OpenSSH ofrece unaimplementación gratuita de toda la suite de herramientas de SSH. Para obtener más información, consulteel sitio web OpenSSH. Los usuarios de Windows pueden utilizar aplicaciones como PuTTY como clienteSSH.

Para obtener más información sobre las conexiones SSH persistentes, use Conectar al clúster (p. 353).

SSH utiliza GSSAPI para autenticar a los clientes de Kerberos y debe habilitar la autenticación de GSSAPIpara el servicio SSH en el nodo principal del clúster. Para obtener más información, consulte Habilitaciónde GSSAPI para SSH (p. 263). Los clientes SSH también deben utilizar GSSAPI.

En los siguientes ejemplos, para MasterPublicDNS utilice el valor que aparece para Master public DNS(DNS público principal) en la pestaña Summary (Resumen) del panel de detalles del clúster; por ejemplo,ec2-11-222-33-44.compute-1.amazonaws.com.

Requisito previo para krb5.conf (sin Active Directory)

Cuando se utiliza una configuración sin integración con Active Directory, además del cliente SSH ylas aplicaciones de cliente de Kerberos, cada equipo cliente debe tener una copia del archivo /etc/krb5.conf que coincida con el archivo /etc/krb5.conf en el nodo principal del clúster.

Para copiar el archivo krb5.conf

1. Utilice SSH para conectarse al nodo principal utilizando un par de claves de EC2 y el usuario hadooppredeterminado; por ejemplo, hadoop@MasterPublicDNS. Para obtener instrucciones detalladas,consulte Conectar al clúster (p. 353).

2. Desde el nodo principal, copie el contenido del archivo /etc/krb5.conf. Para obtener másinformación, consulte Conectar al clúster (p. 353).

3. En cada equipo cliente que se utilice para conectarse al clúster, cree un archivo /etc/krb5.confidéntico a partir de la copia que hizo en el paso anterior.

Uso de Kinit y SSH

Cada vez que un usuario se conecta desde un equipo cliente con credenciales de Kerberos, el usuariodebe renovar primero los tickets de Kerberos para su usuario en el equipo cliente. Además, se debeconfigurar el cliente SSH para utilizar la autenticación GSSAPI.

Para utilizar SSH para conectarse a un clúster de EMR que utilice Kerberos

1. Utilice kinit para renovar sus tickets de Kerberos, como se muestra en el siguiente ejemplo

kinit user1

2. Utilice un cliente ssh junto con la entidad principal que creó en el KDC dedicado del clúster o elnombre de usuario de Active Directory. Asegúrese de que la autenticación GSSAPI está habilitada, taly como se muestra en los siguientes ejemplos.

Ejemplo: usuarios de Linux

La opción -K especifica la autenticación GSSAPI.

ssh -K user1@MasterPublicDNS

Ejemplo: usuarios de Windows (PuTTY)

264

Page 272: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Asegúrese de que la opción de autenticación GSSAPI de la sesión está habilitada, tal y como semuestra:

Tutorial: Configurar un KDC dedicado del clústerEn este tema, le enseñaremos cómo crear un KDC dedicado del clúster, cómo añadir manualmentecuentas de usuario de Linux a todos los nodos del clúster, cómo añadir entidades principales de Kerberosal KDC en el nodo principal y cómo asegurarse de que los equipos cliente tienen instalado un cliente deKerberos.

Paso 1: Crear el clúster que utiliza Kerberos

1. Cree una configuración de seguridad que habilite Kerberos. El siguiente ejemplo muestra el uso de uncomando create-security-configuration con la AWS CLI que especifica la configuración deseguridad como una estructura JSON en línea. También puede hacer referencia a un archivo guardadode forma local.

aws emr create-security-configuration --name MyKerberosConfig \--security-configuration '{"AuthenticationConfiguration": {"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24}}}}}'

2. Cree un clúster que haga referencia a la configuración de seguridad, establezca los atributos deKerberos para el clúster y añada las cuentas de Linux mediante una acción de arranque. El siguienteejemplo muestra el uso de un comando create-cluster en la AWS CLI. El comando hace referencia

265

Page 273: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

a la configuración de seguridad que se ha creado anteriormente, MyKerberosConfig. También hacereferencia a un script sencillo, createlinuxusers.sh, como acción de arranque, que debe crear ycargar en Amazon S3 antes de crear el clúster.

aws emr create-cluster --name "MyKerberosCluster" \--release-label emr-5.30.0 \--instance-type m5.xlarge \--instance-count 3 \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair \--service-role EMR_DefaultRole \--security-configuration MyKerberosConfig \--applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \--kerberos-attributes Realm=EC2.INTERNAL,\KdcAdminPassword=MyClusterKDCAdminPwd \--bootstrap-actions Path=s3://mybucket/createlinuxusers.sh

El siguiente ejemplo ilustra el contenido del script createlinuxusers.sh, que añade user1, user2 yuser3 en cada nodo del clúster. En el siguiente paso, añadirá estos usuarios como entidades principalesde KDC.

#!/bin/bashsudo adduser user1sudo adduser user2sudo adduser user3

Paso 2: Añadir entidades principales al KDC, crear directorios de usuarios deHDFS y configurar SSHEn el KDC que se ejecuta en el nodo principal se debe añadir una entidad principal para el host localy para cada usuario que se cree en el clúster. También puede crear directorios de HDFS para cadausuario en caso de que necesitan conectarse al clúster y ejecutar trabajos de Hadoop. Del mismo modo,configurae el servicio SSH para activar la autenticación GSSAPI, que es necesaria para Kerberos.Después de habilitar GSSAPI, reinicie el servicio SSH.

La forma más sencilla de realizar estas tareas es enviar un paso para el clúster. El siguiente ejemplo envíaun script bash configurekdc.sh al clúster que ha creado en el paso anterior, haciendo referencia asu ID de clúster. El script se almacena en Amazon S3. De forma alternativa, puede conectarse al nodoprincipal utilizando un par de claves de EC2 para ejecutar los comandos o enviar el paso durante lacreación del clúster.

aws emr add-steps --cluster-id j-01234567 --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myregion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/configurekdc.sh"]

El siguiente ejemplo muestra el contenido del script configurekdc.sh.

#!/bin/bash#Add a principal to the KDC for the master node, using the master node's returned host namesudo kadmin.local -q "ktadd -k /etc/krb5.keytab host/`hostname -f`"#Declare an associative array of user names and passwords to adddeclare -A arrarr=([user1]=pwd1 [user2]=pwd2 [user3]=pwd3)for i in ${!arr[@]}; do #Assign plain language variables for clarity name=${i} password=${arr[${i}]}

266

Page 274: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

# Create principal for sshuser in the master node and require a new password on first logon sudo kadmin.local -q "addprinc -pw $password +needchange $name"

#Add user hdfs directory hdfs dfs -mkdir /user/$name

#Change owner of user's hdfs directory to user hdfs dfs -chown $name:$name /user/$namedone

# Enable GSSAPI authentication for SSH and restart SSH servicesudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_configsudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_configsudo /etc/init.d/sshd restart

Los usuarios que ha añadido ahora deberían ser capaces de conectarse al clúster mediante SSH.Para obtener más información, consulte Uso de SSH para conectarse a clústeres que utilizanKerberos (p. 263).

Tutorial: Configurar una relación de confianza entre ámbitos conun dominio de Active DirectoryAl crear una relación de confianza entre ámbitos, se permite a las entidades principales (normalmenteusuarios) de otro ámbito de Kerberos autenticar a los componentes de la aplicación en el clúster de EMR.El KDC dedicado del clúster establece una relación de confianza con otro KDC utilizando una entidadprincipal de confianza entre ámbitos que existe en los dos KDC. El nombre y la contraseña de la entidadprincipal deben coincidir exactamente.

Una relación de confianza entre ámbitos requiere que los KDC puedan tener acceso entre sí a travésde la red y resolver sus nombres de dominio. Pasos para establecer una relación de confianza con unámbito Microsoft AD controlador de dominio se ejecutan como una instancia de EC2 se suministran acontinuación, junto con un ejemplo de configuración de red que proporciona la conectividad y la resoluciónde nombres de dominio. Es aceptable cualquier configuración de red que permita el tráfico de rednecesario entre KDC.

Opcionalmente, después de establecer una relación de confianza entre ámbitos con Active Directoryutilizando un KDC en un clúster, puede crear otro clúster con una configuración de seguridad diferentepara hacer referencia al KDC en el primer clúster como un KDC externo. Para ver un ejemplo de laconfiguración de seguridad y la configuración del clúster, consulte KDC externo del clúster con una relaciónde confianza entre ámbitos de Active Directory (p. 261).

Important

Amazon EMR no admite las relaciones de confianza entre ámbitos con AWS Directory Service forMicrosoft Active Directory.

Paso 1: Configurar la VPC y la subred (p. 268)

Paso 2: Lanzar e instalar el controlador de dominio de Active Directory (p. 269)

Paso 3: Añadir cuentas de usuario al dominio para el clúster de EMR (p. 269)

Paso 4: Configurar una relación de confianza entrante en el controlador de dominio de ActiveDirectory (p. 269)

Paso 5: Utilizar un conjunto de opciones de DHCP para especificar el controlador de dominio de ActiveDirectory como un servidor DNS de la VPC (p. 270)

267

Page 275: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Paso 6: Lanzar un clúster de EMR que utiliza Kerberos (p. 270)

Paso 7: Crear usuarios de HDFS y establecer permisos en el clúster para las cuentas de usuario de ActiveDirectory (p. 271)

Paso 1: Configurar la VPC y la subredLos pasos siguientes muestran cómo crear una VPC y una subred para que el KDC dedicado del clústerpueda tener acceso al controlador de dominio de Active Directory y resolver su nombre de dominio. Enestos pasos, la resolución de nombres de dominio se proporciona haciendo referencia al controlador dedominio de Active Directory como el servidor de nombres de dominio en el conjunto de opciones de DHCP.Para obtener más información, consulte Paso 5: Utilizar un conjunto de opciones de DHCP para especificarel controlador de dominio de Active Directory como un servidor DNS de la VPC (p. 270).

El KDC y el controlador de dominio de Active Directory deben ser capaces de resolver sus respectivosnombres de dominio. Esto permite a Amazon EMR incorporar equipos al dominio y configurarautomáticamente las cuentas de usuario de Linux y los parámetros de SSH correspondientes en lasinstancias de clúster.

Si Amazon EMR no puede resolver el nombre de dominio, se puede hacer referencia a la confianzamediante la dirección IP del controlador de dominio de Active Directory. Sin embargo, debe añadirmanualmente las cuentas de usuario de Linux, añadir las correspondientes entidades principales al KDCdedicado del clúster y configurar SSH.

Para configurar la VPC y la subred

1. Cree una Amazon VPC con una única subred pública. Para obtener más información, consulte Paso 1:Creación de la VPC en la Guía de introducción a Amazon VPC.

Important

Cuando utilice un controlador de dominio de Microsoft Active Directory, elija un bloque deCIDR para el clúster de EMR, de forma que todas las direcciones IPv4 tengan menos denueve caracteres (por ejemplo, 10.0.0.0/16). Esto se debe a que se utilizan los nombresde DNS de los equipos del clúster cuando los equipos se incorporan al directorio de ActiveDirectory. AWS asigna los nombres de host DNS basándose en las direcciones IPv4 con unmétodo que, de usarse direcciones IP más largas, podría dar como resultado nombres deDNS de más de 15 caracteres. Active Directory tiene un límite de 15 caracteres para registrarlos nombres de los equipos que se incorporan, y trunca los nombres que son más largos, loque puede provocar errores impredecibles.

2. Elimine el conjunto de opciones de DHCP predeterminado asignado a la VPC. Para obtener másinformación, consulte Modificación de una VPC para que no utilice ninguna opción de DHCP.Posteriormente, puede añadir uno nuevo que especifique el controlador de dominio de Active Directorycomo servidor DNS.

3. Confirme que se ha activado el soporte de DNS para la VPC, es decir, que se han activado losnombres de host DNS y la resolución de DNS. De forma predeterminada, están habilitadas. Paraobtener más información, consulte Actualización de la compatibilidad de DNS para su VPC en la.

4. Confirme que la VPC tiene un asociada una gateway de Internet, que es la opción predeterminada.Para obtener más información, consulte Creación y asociación de una gateway de Internet.

Note

En este ejemplo, se utiliza una gateway de Internet porque se está estableciendo un nuevocontrolador de dominio para la VPC. Puede que no sea necesaria una gateway de Internetpara su aplicación. El único requisito es que el KDC dedicado del clúster pueda tener accesoal controlador de dominio de Active Directory.

5. Cree una tabla de ruteo personalizada, añada una ruta que se dirija a la gateway de Internet y, acontinuación, asóciela a la subred. Para obtener más información, consulte Crear una tabla de ruteopersonalizada.

268

Page 276: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

6. Al lanzar la instancia de EC2 para el dominio, debe disponer de un controlador estático de direccionesIPv4 públicas para que pueda conectarse a ella con RDP. La forma más sencilla de hacerloes configurar la subred pública automáticamente asignar direcciones IPv4. Este no es el valorpredeterminado cuando se crea una subred. Para obtener más información, consulte Modificación delatributo de direcciones IPv4 públicas de su subred. Si lo prefiere, puede asignar la dirección al lanzarla instancia. Para obtener más información, consulte Asignación de una dirección IPv4 público duranteel lanzamiento de la instancia.

7. Cuando termine, tome nota de los ID de la VPC y de la subred. Los utilizará posteriormente al lanzar elcontrolador de dominio de Active Directory y el clúster.

Paso 2: Lanzar e instalar el controlador de dominio de Active Directory

1. Lance una instancia de EC2 basada en la AMI base de Microsoft Windows Server 2016. Lerecomendamos un tipo de instancia m4.xlarge o mejor. Para obtener más información, consulteLanzamiento de una instancia de AWS Marketplace en la Guía del usuario de Amazon EC2 parainstancias de Windows.

2. Anote el Group ID (ID de grupo) del grupo de seguridad asociado a la instancia EC2. Lo necesitará paraPaso 6: Lanzar un clúster de EMR que utiliza Kerberos (p. 270). Utilizamos sg-012xrlmdomain345.También puede especificar distintos grupos de seguridad para el clúster de EMR y esta instancia quepermita el tráfico entre ellos. Para obtener más información, consulte Grupos de seguridad de AmazonEC2 para instancias Linux en la Guía del usuario de Amazon EC2 para instancias de Linux.

3. Conéctese a la instancia de EC2 a través de RDP. Para obtener más información, consulte Conexióncon la instancia de Windows en la Guía del usuario de Amazon EC2 para instancias de Windows.

4. Inicie Server Manager (Administrador del servidor) para instalar y configurar el rol de los servicios dedominio de Active Directory en el servidor. Promocione el servidor a controlador de dominio y asígneleun nombre de dominio (el ejemplo que utilizamos aquí es ad.domain.com). Anote el nombre dedominio porque lo necesitará más adelante al crear el clúster y la configuración de seguridad de EMR.Si es la primera vez que configura Active Directory, puede seguir las instrucciones de How to Set UpActive Directory (AD) in Windows Server 2016.

La instancia se reiniciará cuando termine.

Paso 3: Añadir cuentas de usuario al dominio para el clúster de EMRRealice una conexión RDP al controlador de dominio de Active Directory para crear cuentas de usuario enUsuarios y equipos de Active Directory para cada usuario del clúster. Para obtener instrucciones, consulteCreate a User Account in Active Directory Users and Computers. Anote el User logon name (Nombre deinicio de sesión de usuario) de cada usuario. Necesitas estas versiones posteriores al configurar el clúster.

Además, crear una cuenta de usuario con privilegios suficientes de unir ordenadores al dominio. Solodebe especificar esta cuenta al crear un clúster. Amazon EMR la utiliza para unir instancias de clústeral dominio. Solo debe especificar esta cuenta y su contraseña Paso 6: Lanzar un clúster de EMR queutiliza Kerberos (p. 270). Para delegar ordenador unirse a los privilegios a la cuenta de usuario, lerecomendamos que cree un grupo con unirse a los privilegios y, a continuación, asignar el usuario algrupo. Para obtener instrucciones, consulte Delegación de privilegios de unión a directorios en la AWSDirectory Service Administration Guide.

Paso 4: Configurar una relación de confianza entrante en el controlador dedominio de Active DirectoryLos comandos del ejemplo siguiente crean una relación de confianza en Active Directory, que es unaconfianza de ámbito, entrante, unidireccional y no transitiva con el KDC dedicado del clúster. El ejemploque utilizamos para el ámbito del clúster es EC2.INTERNAL. Sustituya el KDC-FQDN por el nombre deDNS público que aparece para el nodo principal Amazon EMR que aloja el KDC. El parámetro passwordtespecifica la cross-realm principal password (contraseña de la entidad principal de confianza entre

269

Page 277: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

ámbitos), que se especifica junto con el realm (ámbito) del clúster al crear un clúster. El nombre del ámbitose deriva del nombre de dominio predeterminado en us-east-1 para el clúster. El Domain es el dominiode Active Directory en el que va a crear la confianza, que es en minúsculas por convención. El ejemploutiliza ad.domain.com

Abra el símbolo del sistema de Windows con privilegios de administrador y escriba los siguientescomandos para crear la relación de confianza en el controlador de dominio de Active Directory:

C:\Users\Administrator> ksetup /addkdc EC2.INTERNAL KDC-FQDNC:\Users\Administrator> netdom trust EC2.INTERNAL /Domain:ad.domain.com /add /realm /passwordt:MyVeryStrongPasswordC:\Users\Administrator> ksetup /SetEncTypeAttr EC2.INTERNAL AES256-CTS-HMAC-SHA1-96

Paso 5: Utilizar un conjunto de opciones de DHCP para especificar el controladorde dominio de Active Directory como un servidor DNS de la VPC

Ahora que está configurado el controlador de dominio de Active Directory, debe configurar la VPCpara utilizarla como servidor de nombres de dominio para la resolución de nombres en la VPC.Para ello, asocie un conjunto de opciones de DHCP. En Domain name, especifique el nombre dedominio del clúster; por ejemplo, ec2.internal si el clúster se encuentra en la región us-east-1 oregion.compute.internal para las demás regiones. En Domain name servers (Servidores denombres de dominio), debe especificar la dirección IP del controlador de dominio de Active Directory (alque se debe tener acceso desde el clúster) como la primera entrada, seguida de AmazonProvidedDNS(por ejemplo, xx.xx.xx.xx,AmazonProvidedDNS). Para obtener más información, consulte Cambio delos conjuntos de opciones de DHCP.

Paso 6: Lanzar un clúster de EMR que utiliza Kerberos

1. En Amazon EMR, cree una configuración de seguridad que especifique el controlador de dominiode Active Directory que ha creado en los pasos anteriores. A continuación se muestra un ejemplo.Sustituya el dominio, ad.domain.compor el nombre del dominio especificado en el Paso 2: Lanzar einstalar el controlador de dominio de Active Directory (p. 269).

aws emr create-security-configuration --name MyKerberosConfig \--security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } }}'

2. Cree el clúster con los siguientes atributos:• Utilice la opción --security-configuration para especificar la configuración de seguridad que

ha creado. Utilizamos MyKerberosConfig en el ejemplo.• Utilice la propiedad SubnetId de --ec2-attributes option para especificar la subred que ha

creado en Paso 1: Configurar la VPC y la subred (p. 268). Utilizamos step1-subnet en el ejemplo.• Utilice AdditionalMasterSecurityGroups y AdditionalSlaveSecurityGroups de la opción--ec2-attributes para especificar que el grupo de seguridad asociado al controlador de dominio

270

Page 278: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

de AD desde Paso 2: Lanzar e instalar el controlador de dominio de Active Directory (p. 269) estáasociado al nodo maestro del clúster, así como a los nodos secundarios y de tareas. Utilizamossg-012xrlmdomain345 en el ejemplo.

Utilice --kerberos-attributes para especificar los siguientes atributos de Kerberos específicos delclúster:• El ámbito para el clúster que especificó al configurar el controlador de dominio de Active Directory.• La contraseña de la entidad principal de confianza entre ámbitos que especificó como passwordt

en el Paso 4: Configurar una relación de confianza entrante en el controlador de dominio de ActiveDirectory (p. 269).

• Una KdcAdminPassword, que se puede utilizar para administrar el KDC dedicado del clúster.• El nombre de inicio de sesión de usuario y la contraseña de la cuenta de Active Directory con

privilegios para incorporar equipos que ha creado en el Paso 3: Añadir cuentas de usuario al dominiopara el clúster de EMR (p. 269).

El siguiente ejemplo lanza un clúster que utiliza Kerberos.

aws emr create-cluster --name "MyKerberosCluster" \--release-label emr-5.10.0 \--instance-type m5.xlarge \--instance-count 3 \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair,\SubnetId=step1-subnet, AdditionalMasterSecurityGroups=sg-012xrlmdomain345,AdditionalSlaveSecurityGroups=sg-012xrlmdomain345\--service-role EMR_DefaultRole \--security-configuration MyKerberosConfig \--applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \--kerberos-attributes Realm=EC2.INTERNAL,\KdcAdminPassword=MyClusterKDCAdminPwd,\ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\CrossRealmTrustPrincipalPassword=MatchADTrustPwd

Paso 7: Crear usuarios de HDFS y establecer permisos en el clúster para lascuentas de usuario de Active DirectoryCuando se configura una relación de confianza con Active Directory, Amazon EMR crea usuarios de Linuxen el clúster para cada cuenta de usuario de Active Directory. Por ejemplo, el nombre de inicio de sesiónde usuario LiJuan en Active Directory se corresponde con la cuenta de usuario de Linux lijuan. Losnombres de usuario de Active Directory pueden contener letras mayúsculas, pero Linux no distingue entremayúsculas y minúsculas para dichos nombres.

Para permitir a los usuarios iniciar sesión en el clúster para ejecutar los trabajos de Hadoop, debe añadirdirectorios de usuario de HDFS para sus cuentas de usuario de Linux y conceder a cada usuario lapropiedad de su directorio. Para ello, le recomendamos que ejecute un script almacenado en Amazon S3como un paso de clúster. De forma alternativa, puede ejecutar los comandos en el script siguiente desde lalínea de comandos en el nodo principal. Utilice el par de claves de EC2 especificado al crear el clúster paraconectarse al nodo principal a través de SSH como usuario de Hadoop. Para obtener más información,consulte Uso de un par de claves de Amazon EC2 para las credenciales de SSH (p. 244).

Ejecute el siguiente comando para añadir un paso al clúster que ejecuta un script, AddHDFSUsers.sh.

aws emr add-steps --cluster-id ClusterID \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://MyRegion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://MyBucketPath/AddHDFSUsers.sh"]

El contenido del archivo AddHDFSUsers.sh es el siguiente.

271

Page 279: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónIntegración de Amazon EMR

con AWS Lake Formation (Beta)

#!/bin/bash# AddHDFSUsers.sh script

# Initialize an array of user names from AD or Linux users and KDC principals created manually on the clusterADUSERS=("lijuan" "marymajor" "richardroe" "myusername")

# For each user listed, create an HDFS user directory# and change ownership to the user

for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$usernamedone

Grupos de Active Directory mapeados a grupos de Hadoop

Amazon EMR utiliza System Security Services Daemon (SSD) para mapear grupos de Active Directory agrupos de Hadoop. Para confirmar los mapeos de grupos, después de iniciar sesión en el nodo principaltal y como se describe en Uso de SSH para conectarse a clústeres que utilizan Kerberos (p. 263),puede utilizar el comando hdfs groups para confirmar que los grupos de Active Directory a los quepertenece su cuenta de Active Directory se han mapeado a los grupos de Hadoop del usuario de Hadoopcorrespondiente en el clúster. También puede comprobar los mapeos de grupos de otros usuariosespecificando uno o varios nombres de usuario con el comando, por ejemplo hdfs groups lijuan.Para obtener más información, consulte groups en la Apache HDFS Commands Guide.

Integración de Amazon EMR con AWS LakeFormation (Beta)

A partir de la versión 5.26.0 de Amazon EMR, puede lanzar un clúster que se integre con Lake Formationde AWS. Esta característica solo está disponible en la versión beta pública.

AWS Lake Formation es un servicio administrado que simplifica la configuración, la protección y laadministración de lagos de datos. AWS Lake Formation le ayuda a detectar, catalogar, eliminar yproteger datos en un lago de datos de Amazon Simple Storage Service (Amazon S3). Para obtener másinformación, consulte AWS Lake Formation.

La integración de Amazon EMR con AWS Lake Formation proporciona los siguientes beneficiosprincipales:

• Proporciona acceso detallado de nivel de columna a bases de datos y tablas en el catálogo de datos deAWS Glue.

• Habilita el inicio de sesión único federado en blocs de notas de EMR o Apache Zeppelin desde susistema de identidad empresarial, que es compatible con el lenguaje Security Assertion MarkupLanguage (SAML) 2.0.

Esta sección proporciona información general sobre los conceptos de la integración de Amazon EMR conLake Formation. También facilita los requisitos previos y los pasos necesarios para lanzar un clúster deAmazon EMR integrado con Lake Formation.

Temas• Información general sobre los conceptos de la integración de Amazon EMR con Lake

Formation (p. 273)• Aplicaciones y características compatibles (p. 277)

272

Page 280: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónInformación general sobre los conceptos de la

integración de Amazon EMR con Lake Formation

• Antes de empezar (p. 278)• Lanzar un clúster de Amazon EMR con Lake Formation. (p. 285)

Información general sobre los conceptos de laintegración de Amazon EMR con Lake FormationAl integrar Amazon EMR con AWS Lake Formation, habilita la autenticación basada en SAML con suscredenciales corporativas y aplica un control de acceso minucioso a nivel de columna en función de laspolíticas definidas en AWS Lake Formation.

Para integrar Amazon EMR y Lake Formation, su organización debe cumplir los siguientes requisitos:

• Administrar sus identidades corporativas con un proveedor de identidad existente basado en SAML,como los servicios Active Directory Federation Services (AD FS). Para obtener más información,consulte Proveedores de terceros admitidos para SAML (p. 282).

• Utilice el catálogo de datos de AWS Glue como almacén de metadatos.• Utilice blocs de notas de EMR o Apache Zeppelin para acceder a los datos administrados por AWS Glue

y Lake Formation.• Defina y administre los permisos en Lake Formation para acceder a las bases de datos, tablas y

columnas en el catálogo de datos de AWS Glue. Para obtener más información, consulte AWS LakeFormation.

Antes de lanzar un clúster que se integra con Lake Formation, tiene que habilitar la federación basadaen SAML 2.0 configurando los roles del proveedor de identidad (IdP) y de AWS Access and IdentityManagement (IAM). También tiene que configurar los controles de seguridad adecuados para el clúster deAmazon EMR. Para obtener más información, consulte Antes de empezar (p. 278) y Lanzar un clúster deAmazon EMR con Lake Formation. (p. 285).

Temas• Términos y conceptos (p. 273)• Cómo acceder a los trabajos de datos en Lake Formation (p. 274)• Componentes de Amazon EMR (p. 275)• Arquitectura de inicio de sesión único habilitado para SAML y control de acceso minucioso (p. 275)

Términos y conceptosEsta sección ofrece información general sobre los conceptos y términos que se utilizan en el contexto de laintegración de Amazon EMR con AWS Lake Formation.

Autenticación

Proceso de establecimiento de la identidad de un usuario. Mediante la integración de Amazon EMR y LakeFormation, los usuarios pueden utilizar sus credenciales corporativas para iniciar sesión en blocs de notasde EMR y Apache Zeppelin.

Autorización

El proceso de validación de las acciones que un usuario determinado puede realizar en determinadosrecursos. Al integrar un clúster de Amazon EMRcon Lake Formation, el acceso a las bases de datos ytablas se autoriza mediante las políticas de Lake Formation. Este proceso garantiza que los usuarios solopuedan consultar y analizar las tablas o columnas a las que están autorizados para acceder.

Federación

273

Page 281: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónInformación general sobre los conceptos de la

integración de Amazon EMR con Lake Formation

La creación de una relación de confianza entre un proveedor de identidad externo y AWS Identity andAccess Management (IAM). Los usuarios pueden iniciar sesión en un sistema de identidad empresarialque sea compatible con Security Assertion Markup Language (SAML) 2.0, como Microsoft Active DirectoryFederation Services. Para obtener más información, consulte Proveedores de terceros admitidos paraSAML (p. 282). Cuando se utiliza SAML 2.0 para configurar una relación de confianza entre estosproveedores de identidad externos e IAM, el usuario se asigna a un rol de IAM. El usuario también recibecredenciales temporales que le permiten tener acceso a los recursos de AWS Lake Formation.

Política de confianza

Un documento en formato JSON en el que define quién tiene permiso para asumir el rol. Esta entidad deconfianza se incluye en la política como el elemento principal del documento. El documento se redactasegún las reglas del lenguaje de la política de IAM.

Política de permisos

Un documento de permisos en formato JSON en el que define las acciones y recursos a los que tieneacceso el rol. El documento se redacta según las reglas del lenguaje de la política de IAM.

Principal

Una entidad que puede acceder a recursos protegidos por políticas de Lake Formation y ejecutar consultasen Amazon EMR. Las entidades principales pueden ser usuarios o roles de AWS Identity and AccessManagement (IAM), o usuarios federados que están identificados por su proveedor de identidad (IdP)SALM.

Cómo acceder a los trabajos de datos en Lake FormationLake Formation permite el acceso a los datos proporcionando credenciales temporales a servicios comoAmazon EMR. Este proceso se denomina de venta credenciales. Para obtener más información, consulteAWS Lake Formation.

Cuando ejecuta una consulta en datos protegidos por políticas de seguridad de Lake Formation,Amazon EMR solicita las credenciales temporales desde AWS Lake Formation para acceder a los datosalmacenados en Amazon S3.

A continuación se muestra cómo se permite el acceso a los datos:

274

Page 282: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónInformación general sobre los conceptos de la

integración de Amazon EMR con Lake Formation

1. Puede configurar y controlar el acceso de los usuarios a los recursos de mediante las políticas deAWS Lake Formation. Puede crear dichas políticas mediante un conjunto de permisos de concesión yrevocación disponibles en la consola de Lake Formation. Por ejemplo, puede dar acceso a una base dedatos o una tabla. También puede dar permisos de nivel de columna a los usuarios. Puede especificarlos permisos para las tablas y columnas directamente en Lake Formation, en lugar de especificarlospara los buckets y objetos de Amazon S3. Para obtener más información, consulte Permisos de LakeFormation..

2. Cuando una entidad principal intenta ejecutar una consulta en Amazon EMR, en los datos de LakeFormation, Amazon EMR solicita las credenciales temporales para el acceso a los datos de AWS LakeFormation.

3. Lake Formation devuelve las credenciales temporales, lo que permite el acceso a los datos.4. Amazon EMR envía la solicitud de la consulta para obtener datos de Amazon S3.5. Amazon EMR filtra y devuelve los resultados en función de los permisos de usuario definidos en Lake

Formation.

Componentes de Amazon EMRAmazon EMR permite un control de acceso minucioso con Lake Formation al utilizar los siguientescomponentes:

• Agente proxy agent: el agente proxy se basa en Apache Knox. Recibe solicitudes autenticadas de SAMLde los usuarios y convierte las notificaciones SAML en credenciales temporales. También almacenalas credenciales temporales en el agente secreto. El agente proxy se ejecuta en el nodo maestro comousuario del sistema knox y escribe registros en el directorio /var/log/knox.

• Agente secreto: el agente secreto almacena secretos de forma segura y los distribuye a otroscomponentes o aplicaciones de EMR. Los secretos pueden incluir credenciales de usuario temporales,claves de cifrado o tickets de Kerberos. El agente secreto se ejecuta en cada nodo del clúster y utilizalas API de AWS Glue y Lake Formation para recuperar las credenciales temporales y los metadatosdel catálogo de datos de AWS Glue. El agente secreto se ejecuta como el usuario emrsecretagent yescribe registros en el directorio /emr/secretagent/log. El proceso recurre a un conjunto específicode reglas iptables para funcionar. Es importante asegurarse de que iptables no está deshabilitadoy, si personaliza la configuración de iptables, las reglas de la tabla nat deben conservarse y nomodificarse.

• Servidor de registros: el servidor de registros recibe las solicitudes de acceso a los datos. Después,autoriza las solicitudes en función de las credenciales temporales y las políticas de control de accesoa las tablas distribuidas por el agente secreto. El servidor de registros lee los datos de Amazon S3 ydevuelve los datos a nivel de columna a los que el usuario tiene autorización para acceder. El servidorde registros se ejecuta en cada nodo del clúster como usuario emr_record_server y escribe registrosen el directorio /var/log/emr-record-server.

Note

Spark SQL se ha integrado con cada uno de estos componentes, lo que permite que las tareas deSpark SQL lean y procesen datos protegidos por las políticas de Lake Formation.

Arquitectura de inicio de sesión único habilitado para SAML ycontrol de acceso minuciosoEn el siguiente diagrama se ilustra la arquitectura del inicio de sesión único habilitado para SAML y elcontrol de acceso minucioso con Lake Formation y Amazon EMR.

275

Page 283: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónInformación general sobre los conceptos de la

integración de Amazon EMR con Lake Formation

1. Un usuario sin autenticar utiliza el agente proxy para acceder a blocs de notas de EMR o Zeppelin. Seredirigirá al usuario a la página de inicio de sesión del proveedor de identidad (IdP) de su organización.

2. El IdP verifica la identidad del usuario en la organización.3. El IdP genera una respuesta de autenticación SAML que incluye aserciones que identifican al usuario e

incluyen atributos sobre el mismo.4. El navegador del cliente publica la aserción SAML en el agente proxy.

276

Page 284: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAplicaciones y características compatibles

5. El agente proxy solicita las credenciales específicas de seguridad temporales del usuario de AWS LakeFormation en nombre del usuario. Las credenciales de seguridad temporales se envían de vuelta alagente proxy.

6. El agente proxy almacena las credenciales específicas de seguridad temporales del usuario en elagente secreto. El agente secreto envía las credenciales temporales del usuario a los agentes secretosen los nodos principal y de tareas.

7. El agente proxy permite que el usuario inicie sesión correctamente.8. Cuando el usuario ejecuta una tarea de Spark mediante blocs de notas de EMR o Zeppelin, el servidor

de registros llama al agente secreto para obtener las credenciales temporales del usuario.9. El servidor de registros lee y filtra los datos de Amazon S3 en función de las políticas definidas en Lake

Formation.

Desde el punto de vista del usuario, este proceso se produce de forma transparente. El usuario comienzaen la página de autenticación de su organización y acaba en los blocs de notas de EMR o Zeppelin através del navegador sin tener que proporcionar ninguna credencial de AWS.

Aplicaciones y características compatiblesAplicaciones compatiblesLa integración entre Amazon EMR y AWS Lake Formation admite las siguientes aplicaciones:

• Apache Spark• Apache Zeppelin• Blocs de notas de Amazon EMR

Important

Actualmente no se admiten otras aplicaciones. Para garantizar la seguridad del clúster, no instaleaplicaciones que se incluyan en esta lista.

Características admitidasLas siguientes características de Amazon EMR se pueden utilizar con EMR y Lake Formation:

• Cifrado en reposo y en tránsito• Autenticación de Kerberos mediante un KDC dedicado del clúster• Grupos de instancias, flotas de instancias e instancias de spot• Reconfiguración de aplicaciones en un clúster en ejecución

Las siguientes características de EMR no funcionan actualmente con la integración de Lake Formation:

• Pasos• Varios nodos maestros• Vista consistente de EMRFS• CSE-C y SSE-C de EMRFS utilizan claves de cifrado proporcionadas por el cliente

LimitacionesTenga en cuenta las siguientes limitaciones al utilizar Amazon EMR con Lake Formation de AWS:

277

Page 285: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

• En clústeres habilitados de Lake Formation, Spark SQL solo puede leer datos administrados por elcatálogo de datos de AWS Glue y no puede acceder a los datos administrados fuera de AWS Glue oLake Formation. Se puede acceder a los datos de otras fuentes mediante operaciones que no sean deSpark SQL si el rol de IAM para otros servicios de AWS elegido durante la implementación del clústercuenta con políticas in situ que permitan al clúster acceder a dichas fuentes de datos.• Por ejemplo, podría tener dos buckets de Amazon S3 y una tabla de Amazon DynamoDB a la que

desea que tenga acceso la tarea de Spark, además de un conjunto de tablas de Lake Formation. Eneste caso, podría crear un rol que pueda acceder a los dos buckets de Amazon S3 y a la tabla deAmazon DynamoDB y utilizarlo para elIAM role for other AWS services al lanzar el clúster.

• El envío de tareas de Spark se debe realizar a través de blocs de notas de EMR, Zeppelin o Livy. Lastareas de Spark enviadas a través de spark-submit no funcionarán con Lake Formation en estemomento.

• Spark SQL solo puede leer en las tablas de Lake Formation. Actualmente, no se admite el uso de SparkSQL para escribir en tablas o crear tablas nuevas en Lake Formation.

• Actualmente, no se admite el uso de Spark SQL para acceder a las tablas de Lake Formation queutilizan el tipo de datos Hive Map.

• Cuando se utiliza Spark para acceder a los datos almacenados en un formato de columnas, no seadmiten las optimizaciones de desempeño como la inserción de predicados y las lecturas vectorizadas.Las aplicaciones de Spark SQL que dependen de estas optimizaciones verán una reducción en sudesempeño cuando se utilizan con Lake Formation.

• Actualmente, no hay ningún cierre de sesión central disponible para los blocs de notas de Amazon EMRy Zeppelin.

• Cuando se utiliza Spark SQL para acceder a los datos protegidos por Lake Formation, las entradas deAWS CloudTrail para acceder a los datos solo contienen el nombre del rol de IAM asociado al clúster deAmazon EMR. No incluyen el usuario federado que utiliza el bloc de notas.

• La alternativa de Spark a HDFS para la capacidad de recopilación de estadísticas no se admite en estaversión con Lake Formation. La propiedad spark.sql.statistics.fallBackToHdfs de estacaracterística está deshabilitada de forma predeterminada. Esta característica no funciona cuando estapropiedad se habilita de forma manual.

• Actualmente, no se admite la consulta de tablas que contienen particiones en diferentes rutas de tablasen Amazon S3.

• Es importante saber que la autorización a nivel de columna de Lake Formation impide que losusuarios accedan a los datos de las columnas a las que el usuario no tiene acceso. Sin embargo, endeterminadas situaciones, los usuarios pueden obtener acceso a los metadatos que describen todaslas columnas de la tabla, incluidas las a las que el usuario no tiene acceso. Los metadatos de estacolumna se almacenan en las propiedades de tabla de la tabla para las tablas que utilizan el formato dealmacenamiento Avro o un serializador/deserializador (SerDe) personalizado en el que el esquema detabla se define en las propiedades de la tabla junto con la definición del SerDe. Cuando utilice AmazonEMR con Lake Formation, le recomendamos que revise el contenido de las propiedades de la tabla paralas tablas que protege y, siempre que sea posible, limite la información almacenada en las propiedadesde la tabla para evitar que los metadatos confidenciales sean visibles para los usuarios.

Antes de empezarAntes de lanzar un clúster de Amazon EMR con AWS Lake Formation, complete los siguientes requisitosprevios:

• Configure los roles de IAM de AWS y el proveedor de IdP para habilitar la federación basada en SAML2.0.

• Configure las características de seguridad de Amazon EMR.

Temas

278

Page 286: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

• Información general sobre los roles de IAM para Lake Formation (p. 279)• Configurar la relación de confianza entre el IdP y Lake Formation (p. 281)• Proveedores de terceros admitidos para SAML (p. 282)• Configure las características de EMR. (p. 285)

Información general sobre los roles de IAM para Lake FormationLa integración entre Amazon EMR y AWS Lake Formation se basa en tres roles principales: el rol de IAMpara Lake Formation, el rol de IAM para los servicios de AWS y el perfil de instancia EC2 para AmazonEMR. Esta sección proporciona información general sobre estos roles y las políticas que debe incluir encada rol.

Para obtener más información acerca de cómo configurar los roles para Lake Formation, consulteConfigurar la relación de confianza entre el IdP y Lake Formation (p. 281).

El rol de IAM para Lake FormationEl rol de IAM para Lake Formation define qué privilegios tendrá un usuario que inicia sesión a través delIdP y qué proveedor de identidad puede asumir este rol. El rol Maximum CLI/API session durationdefine el tiempo de espera de la sesión para acceder a los blocs de notas de EMR y Apache Zeppelin.

• Este rol se debe crear con la siguiente política de permisos.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GetMetadataAccess", "glue:GetUnfiltered*", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" }}

Note

No conceda permisos a este rol para acceder a los buckets de Amazon S3 administrados porAWS Glue. El usuario federado tiene que acceder a los datos a través de Lake Formationmediante Spark SQL y no debe hacerlo directamente a través de Amazon S3.

• El rol también debe incluir la siguiente política de confianza, que permite al proveedor deidentidad de IAM asumir el rol. Sustituya account-id por el ID de la cuenta de AWS. SustituyaIAM_identity_provider_name por el nombre de su proveedor de identidad de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {

279

Page 287: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

"Federated": "arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name" }, "Action": "sts:AssumeRoleWithSAML" }, { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

El rol de IAM para los servicios de AWS

El rol de IAM para los servicios de AWS define los permisos que tiene el clúster de Amazon EMR alacceder a los servicios que no pertenecen a AWS Lake Formation. Por ejemplo, si las tareas que seejecutan en el clúster precisan acceder a Amazon DynamoDB o a cualquier otro servicio de AWS, el rolde IAM para los servicios de AWS debe incluir las políticas necesarias para acceder a dichos servicios. Alconfigurar las políticas para este rol, asegúrese de que este no tenga acceso a las siguientes operacionesde la API:

• Cualquier operación de la API de AWS Glue.• Cualquier operación de la API de AWS Lake Formation.• Cualquier operación AssumeRole de AWS Security Token Service (STS).• Cualquier acceso de Amazon S3 a los buckets administrados por AWS Glue. El clúster tiene que

acceder a los datos a través de Lake Formation mediante Spark SQL y no debe hacerlo directamente através de Amazon S3.

El perfil de instancia EC2

El perfil de instancia EC2 es un tipo especial de rol de servicio que define los permisos para quelos clústeres de EMR interactúen con Lake Formation y otros servicios de AWS. Puede utilizar elEMR_EC2_DefaultRole al lanzar un clúster o elegir utilizar un perfil de instancia EC2 personalizado. Encualquier caso, se debe añadir la siguiente política al rol, incluidas las referencias al rol de IAM para LakeFormation y el rol de IAM para AWS Services. Sustituya account-id por el ID de la cuenta de AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account-id:role/IAM_Role_for_AWS_Services" }, { "Effect": "Allow", "Action": "lakeformation:GetTemporaryUserCredentialsWithSAML", "Resource": "*"

280

Page 288: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

}, { "Effect": "Allow", "Action": "iam:GetRole", "Resource": "arn:aws:iam::*:role/*" } ]}

Para obtener más información, consulte Rol de servicio para instancias EC2 del clúster (perfil de instanciade EC2) y Personalizar roles de IAM.

Configurar la relación de confianza entre el IdP y Lake FormationPara establecer una relación de confianza entre el proveedor de identidad (IdP) de su organización y AWS,tiene que hacer lo siguiente:

• Informe a su IdP de AWS como proveedor de servicios añadiendo una relación de confianza entre el IdPy AWS.

• Informe a AWS sobre su IdP externo al crear un proveedor de identidad de IAM y un rol para el accesoSAML en AWS IAM.

Para configurar esta relación de confianza

1. Registre AWS con su IdP. El proceso de registro de AWS con su IdP depende del IdP que estéutilizando. Para obtener más información sobre cómo hacerlo en Auth0, Microsoft Active DirectoryFederation Services (AD FS) y Okta, consulte Proveedores de terceros admitidos para SAML (p. 282).

2. Con el IdP, genere un archivo XML de metadatos que pueda describir su IdP como un proveedor deidentidad de IAM en AWS. Debe incluir el nombre de emisor, una fecha de creación, una fecha devencimiento y claves que AWS utiliza para validar las respuestas de autenticación (aserciones) de laorganización. Cada IdP tiene una forma específica de exportar de forma sencilla estos metadatos. Paraobtener más información, consulte la documentación del IdP.

Tiene que cargar el archivo XML de metadatos en un bucket de Amazon S3. Al lanzar un clúster que seintegra con Lake Formation, tiene que especificar la ruta al bucket de S3.

3. En la consola de IAM, cree una entidad de proveedor de identidad SAML.a. Inicie sesión en la consola de administración de AWS y abra la consola de IAM en https://

console.aws.amazon.com/iam/.b. En el panel de navegación, seleccione Identity Providers (Proveedores de identidad), Create Provider

(Crear proveedor).c. En Provider Type (Tipo de, proveedor), seleccione Choose a provider type (Elegir un tipo de

proveedor), SAML (SAML).d. Escriba un nombre para el proveedor de identidad.e. En Metadata Document (Documento de metadatos), haga clic en Choose File (Elegir archivo),

especifique el documento de metadatos SAML que se descargó de su IdP en el paso anterior yseleccione Open (Abrir).

f. Compruebe la información que ha proporcionado y haga clic en Create (Crear).4. En la consola de IAM, cree un rol de IAM para la identidad federada.

a. En el panel de navegación de la consola de IAM, seleccione Roles (Roles), Create role (Crear rol).b. Elija el tipo de rol SAML 2.0 federation.c. En SAML Provider (Proveedor SAML), elija el proveedor para el rol.d. Elija Allow programmatic and AWS Management Console access (Permitir el acceso mediante

la consola de administración de AWS y mediante programación) para crear un rol que pueda serasumido mediante programación y desde la consola.

281

Page 289: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

e. Revise la información de confianza de SAML 2.0 y, a continuación, seleccione Next: Permissions(Siguiente: Permisos).

f. Cree la política de permisos del rol en función del ejemplo de Información general sobre los roles deIAM para Lake Formation (p. 279).

g. Elija Next: Tags (Siguiente: Etiquetas).h. Elija Next: Review (Siguiente: revisar).i. En Role name (Nombre del rol), escriba el nombre del rol. Los nombres de rol deben ser únicos en su

cuenta de AWS.j. Revise el rol y, a continuación, seleccione Create role.k. Haga clic en la pestaña Roles y busque el nombre de rol creado en el último paso.l. Seleccione Trust relationships (Relaciones de confianza), y, a continuación, seleccione Edit trust

relationship (Editar relación de confianza).m.Anule el documento de política existente con el rol de IAM para la política de confianza de Lake

Formation especificada en la sección Información general sobre los roles de IAM para LakeFormation (p. 279). A continuación, haga clic en Update Trust Relationship (Actualizar relación deconfianza).

5. En el IdP de su organización, tiene que configurar las aserciones SAML que asignen los usuarios de suorganización al proveedor de identidad y al rol de IAM de Lake Formation que se acaba de crear. Paraello, configure los tres elementos de atributo que se muestran en la siguiente tabla.• Sustituya account-id por el ID de la cuenta de AWS.• Sustituya IAM_Role_For_Lake_Formation con el nombre del rol de IAM para Lake Formation que

ha creado.• Sustituya IAM_identity_provider_name con el nombre del proveedor de identidad de IAM que

ha creado en los pasos anteriores.• Sustituya user_alias con el nombre del atributo utilizado para mantener el nombre de usuario

definido en su organización.

Elementos de los atributos Valor

https://aws.amazon.com/SAML/Attributes/Role

arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name

https://aws.amazon.com/SAML/Attributes/RoleSessionName

user_alias

https://lakeformation.amazon.com/SAML/Attributes/Username

user_alias

Los pasos exactos para llevar a cabo la asignación dependerán del IdP que esté utilizando. Paraobtener más información, consulte la siguiente sección, Proveedores de terceros admitidos paraSAML (p. 282).

Para obtener más información, consulte Configuración de aserciones SAML para la respuesta deautenticación.

Proveedores de terceros admitidos para SAMLLa integración entre Amazon EMR y AWS Lake Formation admite la federación basada en SAML 2.0 conlos siguientes proveedores de terceros: Microsoft Active Directory Federation Services (AD FS), Auth0 y

282

Page 290: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

Okta. En las siguientes secciones se incluye información que le ayudará a configurar estos IdP para quefuncionen con la federación de AWS Lake Formation.

Auth0

Integración de AWS en Auth0: esta página del sitio web de documentación de Auth0 describe cómoconfigurar el inicio de sesión único (SSO) con la consola de administración de AWS. También incluye unejemplo de JavaScript.

Para habilitar el acceso federado a Lake Formation, personalice los siguientes pasos en la documentaciónde Auth0:

• Cuando proporcione una URL de devolución de llamada de la aplicación, proporcione una URL temporal,tal y como se muestra en el siguiente ejemplo. Actualice public-dns con el nombre DNS actual delnodo maestro después de lanzar el clúster.

https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

• Al configurar SAML, pegue el siguiente código de configuración SAML en Settings (Configuración).

{ "audience": "urn:amazon:webservices", "mappings": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false, "mapIdentities": false, "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "nameIdentifierProbes": [ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" ]}

• Al asignar el rol de AWS a un usuario, cree una regla con el siguiente código. Sustituya elIAM_Role_For_Lake_Formation con el nombre del rol de IAM para la Lake Formation que hacreado. Sustituya el IAM_identity_provider_name por el nombre del proveedor de identidad deIAM que creó para Auth0.

function (user, context, callback) { user.awsRole = 'arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name'; // the username must not contain "@" - as it is not a valid Linux username user.glueUser = user.name.replace(/@.*/, ''); context.samlConfiguration.mappings = { 'https://aws.amazon.com/SAML/Attributes/Role': 'awsRole', 'https://aws.amazon.com/SAML/Attributes/RoleSessionName': 'glueUser', 'https://lakeformation.amazon.com/SAML/Attributes/Username': 'glueUser' }; callback(null, user, context);}

283

Page 291: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAntes de empezar

Microsoft Active Directory Federation Services (AD FS)

Autenticación federada de AWS con Active Directory Federation Services (AD FS): esta publicación en elblog de seguridad de AWS muestra cómo configurar AD FS y habilitar la federación SAML con AWS.

Para habilitar el acceso federado a Lake Formation, personalice los siguientes pasos:

• Para añadir una relación de confianza con una parte, escriba manualmente los datos de la relación deconfianza en lugar de importar los metadatos de la URL existente. Seleccione la opción Permit all usersto access this relying party (Permitir a todos los usuarios acceder a esta relación de confianza). Para laURL de confianza del punto de enlace, facilite una URL temporal, tal y como se muestra en el siguienteejemplo. Actualice public-dns con el nombre DNS actual del nodo maestro después de lanzar elclúster.

https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

• En el paso de Edit Claim Issuance Policy (Editar política de emisión de reclamación), personalice las tresreglas NameId, RoleSessionName y Role en función de los valores de los elementos de atributo enConfigurar la relación de confianza entre el IdP y Lake Formation (p. 281).

Okta

Configurar una aplicación de SAML en Okta: en esta página del sitio de soporte de Okta, puede obtenerinformación sobre cómo configurar Okta proporcionando metadatos sobre la relación de confianza.

Para habilitar el acceso federado a Lake Formation, personalice los siguientes pasos:

• Al configurar SAML, para Single sign-on URL (URL de inicio de sesión único), utilice la URL temporal,tal y como se muestra en el siguiente ejemplo. Actualice el public-dns con el nombre DNS actual delnodo maestro después de lanzar el clúster.

https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

• En el cuadro Audience URI (SP Entity ID) (URI de destino [ID de identidad del SP]), relleneurn:amazon:webservices.

• En la sección Attribute Statements (Instrucciones de atributo), añada tres instrucciones de atributo, taly como se muestra en el siguiente procedimiento. Sustituya el IAM_Role_For_Lake_Formationcon el nombre del rol de IAM para la Lake Formation que ha creado. Sustituya elIAM_identity_provider_name con el nombre del proveedor de identidad de IAM que ha creadoen los pasos anteriores. Sustituya user_alias con el nombre del atributo utilizado para mantener elnombre de usuario definido en su organización.1. Nombre: https://aws.amazon.com/SAML/Attributes/Role

Valor: arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name

2. Nombre: https://aws.amazon.com/SAML/Attributes/RoleSessionName

Valor: user_alias3. Nombre: https://glue.amazon.com/SAML/Attributes/UserName

Valor: user_alias

284

Page 292: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR con Lake Formation.

Configure las características de EMR.Para garantizar que Amazon EMR se ha integrado de forma segura con AWS Lake Formation, configurelas siguientes características de seguridad de EMR:

• Habilite la autenticación de Kerberos mediante el KDC dedicado del clúster. Para obtener másinformación, consulte Uso de la autenticación Kerberos.

• Configure el grupo de segurdad de Amazon EC2 o la lista de control de acceso (ACL) de la red deAmazon VPC para permitir el acceso al agente proxy (puerto 8442) de los escritorios de su usuario. Paraobtener más información, consulte Control del tráfico de red con grupos de seguridad.

• (Opcional) Habilite el cifrado en tránsito o en reposo. Para obtener más información, consulte Opcionesde cifrado en la Guía de administración de Amazon EMR.

• (Opcional) Cree un par de claves de seguridad de la capa de transporte (TLS) para el agente proxy. Paraobtener más información, consulte Personalización del certificado del agente proxy (p. 289).

Para obtener más información, consulte Seguridad en Amazon EMR.

Lanzar un clúster de Amazon EMR con LakeFormation.Esta sección proporciona información sobre cómo lanzar un clúster de Amazon EMR integrado con LakeFormation. También muestra cómo actualizar la URL de inicio de sesión único en su IdP, cómo utilizar losbloc de notas con Lake Formation y como personalizar el certificado del agente proxy.

Para obtener más información sobre la solución de problemas comunes, consulte Solución de problemasde un clúster de Lake Formation en la Guía de administración de Amazon EMR.

Temas• Lanzar un clúster de Amazon EMR con Lake Formation utilizando la consola (p. 285)• Lanzar un clúster integrado de Amazon EMR con Lake Formation utilizando la CLI (p. 286)• Actualice la devolución de llamada o la ULR de inicio de sesión único en el IdP (p. 287)• Uso de los blocs de notas con Lake Formation (p. 288)• Personalización del certificado del agente proxy (p. 289)

Lanzar un clúster de Amazon EMR con Lake Formation utilizandola consola1. Cree una configuración de seguridad que especifique la opción AWS Lake Formation integration

(Integración de AWS Lake Formation):

1. En la consola de Amazon EMR, seleccione Security configurations (Configuraciones de seguridad),Create (Crear).

2. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre). Este nombrese utiliza para especificar la configuración de seguridad cuando crea un clúster.

3. En AWS Lake Formation integration (Integración de AWS Lake Formation), seleccione Enable fine-grained access control managed by AWS Lake Formation (Habilitar el control de acceso detalladoadministrado por AWS Lake Formation).

4. Seleccione un IAM role for AWS Lake Formation (Rol de IAM para AWS Lake Formation) quesolicitar.

285

Page 293: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR con Lake Formation.

Note

Para obtener más información, consulte Información general sobre los roles de IAM paraLake Formation (p. 279).

5. Seleccione un IAM role for other AWS services (Rol de IAM para otros servicios de AWS) quesolicitar.

6. Cargue sus metadatos de proveedor de identidad (IdP) al especificar la ruta de S3 donde se ubicanlos metadatos.

Note

Para obtener más información, consulte Configurar la relación de confianza entre el IdP yLake Formation (p. 281).

7. Defina otras opciones de configuración de seguridad según corresponda y elija Create (Crear).Debe habilitar la autenticación de Kerberos mediante el KDC dedicado del clúster. Para obtenermás información, consulte Configure las características de EMR. (p. 285).

2. Lance un clúster con la configuración de seguridad que especificó en el paso anterior. Para obtenermás información, consulte Especificar una configuración de seguridad para un clúster.

Lanzar un clúster integrado de Amazon EMR con Lake Formationutilizando la CLIEl siguiente procedimiento demuestra cómo lanzar un clúster de Amazon EMR con Zeppelin integrado conAWS Lake Formation.

1. Cree un archivo security-configuration.json para la configuración de seguridad con elsiguiente contenido.

• Especifique la ruta entera para el archivo de metadatos del IdP cargado en S3.• Sustituya account-id por el ID de la cuenta de AWS.• Especifique un valor para TicketLifetimeInHours para determinar el periodo para el que un

vale de Kerberos generado por el KDC es válido.

{ "LakeFormationConfiguration": { "IdpMetadataS3Path": "s3://mybucket/myfolder/idpmetadata.xml", "EmrRoleForUsersARN": "arn:aws:iam::account-id:role/IAM_Role_For_AWS_Services", "LakeFormationRoleForSAMLPrincipalARN": "arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation" }, "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24 } } }}

2. Ejecute el siguiente comando para crear una configuración de seguridad.

aws emr create-security-configuration \--security-configuration file://./security-configuration.json \--name security-configuration

286

Page 294: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR con Lake Formation.

3. Cree un archivo configurations.json que configure el metaalmacén de Hive.

[ { "Classification": "spark-hive-site", "Properties": { "hive.metastore.glue.catalogid": "account-id" } }]

4. Ejecute el siguiente comando para lanzar un clúster de Amazon EMR.

• Sustituya subnet-00xxxxxxxxxxxxx11 con su ID de subred.• Sustituya EC2_KEY_PAIR con el nombre de su par de claves de EC2 para este clúster. El par de

claves de EC2 es opcional y solo se precisa si desea utilizar SSH para acceder a su clúster.• Sustituya cluster-name por el nombre de su clúster.

aws emr create-cluster --region us-east-1 \--release-label emr-5.26.0 \--use-default-roles \--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.xlarge \InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.xlarge \--applications Name=Zeppelin Name=Livy \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyClusterKDCAdminPassword \--configurations file://confugurations.json \--ec2-attributes KeyName=EC2_KEY_PAIR,SubnetId=subnet-00xxxxxxxxxxxxx11 \--security-configuration security-configuration \--name cluster-name

Actualice la devolución de llamada o la ULR de inicio de sesiónúnico en el IdP1. Localice la dirección IP del nodo maestro y el ID de la instancia maestra en su clúster al utilizar la

consola o la CLI.2. Configure una URL de devolución de llamadas en su cuenta del IdP:

• Cuando utilice AD FS como su IDP, complete los siguientes pasos:1. En la consola de gestión de AD FS, vaya a Relying Party Trusts (Relaciones de confianza para

usuario autenticado).2. Haga clic con el botón derecho en el nombre de visualización de su relación de confianza para

usuario autenticado y elija Properties (Propiedades).3. En la ventana Propiedades (Propiedades), elija la pestaña Endpoints (Puntos de enlace).4. Seleccione la URL temporal que proporcionó anteriormente y, a continuación, elija edit (editar).5. En la ventana Edit Endpoint (Editar punto de enlace), actualice la URL de confianza con el

nombre de DNS para su nodo maestro.6. En la ventana Add an Endpoint (Añadir un punto de enlace), rellene la caja Trusted URL (URL de

confianza) con su DNS público del nodo maestro. Por ejemplo,

https://ec2-11-111-11-111.compute-1.amazonaws.com:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

7. Seleccione OK.

287

Page 295: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR con Lake Formation.

• Cuando utilice Auth0 como su IdP, complete los siguientes pasos:1. Vaya a https://auth0.com/ e inicie sesión.2. En el panel izquierdo, elija Applications (Aplicaciones).3. Seleccione su aplicación creada anteriormente.4. En la pestaña Settings (Configuración), actualice Allowed Callback URLs (URL de devolución de

llamada permitidas) con su DNS público del nodo maestro.• Cuando utilice Okta como su IdP, complete los siguientes pasos:

1. Vaya a https://developer.okta.com/ e inicie sesión.2. En la esquina superior derecha, elija Admin (Administrador) y, a continuación, elija la pestaña

Applications (Aplicaciones).3. Seleccione el nombre de la aplicación.4. En la pestaña General en el nombre de su aplicación, elija SAML Settings (Configuración de

SAML) y, a continuación, elija Edit (Editar).5. En la pestaña Configure SAML (Configurar SAML), actualice Single-sign on URL (URL de inicio

de sesión único) con su DNS público del nodo maestro.

Uso de los blocs de notas con Lake FormationApache Zeppelin y los blocs de notas de EMR se integran con Lake Formation y se pueden utilizar una vezque se haya creado un clúster de EMR integrado con Lake Formation.

Para obtener acceso a las aplicaciones del bloc de notas, primero debe asegurarse de que el grupo deseguridad de EC2 o la lista de control de acceso (ACL) de la red de VPC se ha configurado para permitir elacceso al agente proxy (puerto 8442) desde su escritorio.

Note

El agente proxy en el clúster de EMR utiliza un certificado de seguridad de la capa de transporte(TLS) autofirmado por defecto y su navegador le pedirá que acepte el certificado antes decontinuar. Si desea utilizar un certificado personalizado para el agente proxy, consulte la sección“Personalizar certificado del agente proxy”.

Apache Zeppelin

Para acceder a Apache Zeppelin, utilice la consola de EMR para localizar el DNS públicomaestro en la pestaña Summary (Resumen) del clúster. Utilizando su navegador, diríjase ahttps://MasterPublicDNS:8442/gateway/default/zeppelin/. Asegúrese de que la URL incluya la barrainclinada al final.

Una vez que se acepte el certificado del agente proxy, su navegador le redirige a su proveedor deidentidad para la autenticación. Una vez autenticado, se le redirigirá a Zeppelin.

Creación de su primer bloc de notas de Zeppelin

Para comenzar, cree un nuevo bloc de notas al seleccionar Notebook (Block de notas) Create new note(Crear nueva nota). Asigne un nombre a su bloc de notas y utilice el intérprete de livy predeterminado.

Para ver una lista de las bases de datos de Lake Formation, utilice el siguiente comando de Spark SQL.

spark.sql("show databases").show()

Para consultar una tabla de Lake Formation específica, utilice el siguiente comando de Spark SQL.Sustituya database.table por las bases de datos y las tablas actuales en Lake Formation:

288

Page 296: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR con Lake Formation.

spark.sql("SELECT * FROM database.table limit 10").show()

Cuadernos de EMR

Los blocs de notas de EMR se pueden crear al utilizar la consola de Amazon EMR y se pueden utilizar conun clúster de EMR existente integrado con Lake Formation.

Para crear un bloc de notas de EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Notebooks (Blocs de notas), Create notebook (Crear bloc de notas).3. Introduzca el Notebook name (Nombre del bloc de notas) y una Notebook description (Descripción del

bloc de notas) opcional.4. Seleccione Choose an existing cluster (Seleccionar un clúster existente) y, a continuación, Choose

(Seleccionar).5. Seleccione un clúster existente de EMR integrado con Lake Formation.6. Seleccione Create notebook (Crear bloc de notas) para crear el bloc de notas.

Una vez creado el bloc de notas, selecciónelo y haga clic en Open (Abrir). Se le redirigirá al agente proxyen el clúster de Amazon EMR. Una vez que haya aceptado el certificado del agente proxy, el navegador leredirigirá a su proveedor de identidad (IdP) para autenticarse. Una vez autenticado, se le redirigirá al blocde notas de EMR.

Para obtener más información, consulte Cómo usar los blocs de notas de Amazon EMR en la Guía deadministración de Amazon EMR.

Personalización del certificado del agente proxyEl agente proxy utiliza un certificado de seguridad de la capa de transporte (TLS) autofirmado de formapredeterminada. Para utilizar un certificado personalizado para el agente proxy, primero debe obtenerun certificado, una cadena de certificados y una clave privada de su entidad de certificación. Con estoselementos, se utilizará un archivo PKCS12 para proteger el material de claves, de forma que se puedaimportar en el almacén de claves del agente proxy. El agente proxy se basa en Apache Knox. Puedesustituir el certificado predeterminado por su certificado personalizado siguiendo los pasos que sedescriben a continuación.

En los siguientes pasos, sustituya MasterPublicDNS con el valor que aparece para Master public DNS(DNS público principal) en la pestaña Summary (Resumen) del panel de detalles del clúster. Por ejemplo,ec2-11-222-33-44.compute-1.amazonaws.com.

1. Para crear un archivo PKCS12 a partir de su certificado, cadena de certificados y clave privada,ejecute el siguiente comando en un host con los archivos de certificado y openssl instalado.

openssl pkcs12 -export -out proxy_agent_certificate.pfx -inkey private.key -in certificate.cer -certfile certchain.cer

2. Copie el archivo proxy_agent_certificate.pfx en el directorio /home/hadoop del nodomaestro del clúster.

scp -i EC2KeyPair.pem proxy_agent_certificate.pfx hadoop@MasterPublicDNS:/home/hadoop

3. SSH en el nodo maestro del clúster.

ssh -i EC2KeyPair.pem hadoop@MasterPublicDNS

289

Page 297: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR con Lake Formation.

4. Busque la clave maestra específica del clúster mediante el siguiente comando.

less /etc/knox/conf/gateway-site.xml

Busque la propiedad gateway.master.secret y copie el contenido de la etiqueta value, ya que lanecesitará para pasos futuros.

5. Cree una copia de seguridad de los almacenes de claves del agente proxy existentes mediante lossiguientes comandos.

sudo -scd /mnt/var/lib/knox/data/security/keystoresmkdir backupsmv gateway.jks __gateway-credentials.jceks backups/

6. Importe sus certificados personalizados a un nuevo almacén de claves utilizando los siguientescomandos.

sudo -scd /mnt/var/lib/knox/data/security/keystoreskeytool -importkeystore \-srckeystore /home/hadoop/proxy_agent_certificate.pfx \-srcstoretype pkcs12 -destkeystore gateway.jks \-deststoretype jks \-srcalias 1 \-destalias gateway-identity

Cuando se le solicite Enter destination keystore password, utilice el secreto maestro deKnox del archivo gateway-site.xml.

Asegúrese de que el archivo gateway.jks recién creado es propiedad del usuario knox mediante elsiguiente comando.

chown knox:knox gateway.jks

Si su clave privada está protegida por una contraseña, asegúrese de que Knox conoce esacontraseña.

sudo -u knox bashcd /usr/lib/knoxbin/knoxcli.sh create-cert create-alias gateway-identity-passphrase

Escriba la contraseña que protege su clave privada cuando se le solicite.7. Reinicie Knox con los siguientes comandos.

sudo -u knox bashcd /usr/lib/knoxbin/gateway.sh stop

Knox debe reiniciarse automáticamente y puede comprobar el estado de Knox visualizando el /var/log/knox/gateway.log.

8. Para asegurarse de que el agente proxy está utilizando el nuevo certificado, vaya a Apache Zeppelinhttps://MasterPublicDNS:8442/gateway/default/zeppelin/. Puede utilizar el navegador parainspeccionar el certificado y asegurarse de que es su certificado personalizado.

290

Page 298: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónControl del tráfico de red con grupos de seguridad

Control del tráfico de red con grupos de seguridadLos grupos de seguridad funcionan como firewalls virtuales para que las instancias EC2 del clústercontrolen el tráfico entrante y saliente. Cada grupo de seguridad tiene un conjunto de reglas que controlanel tráfico entrante y un conjunto de reglas distinto que controlan el tráfico saliente. Para obtener másinformación, consulte Grupos de seguridad de Amazon EC2 para instancias Linux en la Guía del usuariode Amazon EC2 para instancias de Linux.

Puede utilizar dos clases de grupos de seguridad con Amazon EMR: grupos de seguridad administradospor Amazon EMR y grupos de seguridad adicionales.

Cada clúster tiene asociados grupos de seguridad administrados. Puede utilizar los grupos de seguridadadministrados predeterminados o especificar grupos de seguridad administrados personalizados. Enambos casos, Amazon EMR añade automáticamente reglas a los grupos de seguridad administrados queun clúster necesita para comunicarse entre las instancias de clúster y los servicios de AWS.

Los grupos de seguridad adicionales son opcionales. Puede especificarlos junto con los grupos deseguridad administrados para adaptar el acceso a las instancias de clúster. Los grupos de seguridadadicionales contienen solo las reglas que usted defina. Amazon EMR no los modifica.

Las reglas que Amazon EMR crea en los grupos de seguridad administrados permiten la comunicaciónentre los componentes internos del clúster. Para permitir que los usuarios y las aplicaciones obtenganacceso a un clúster desde fuera de este, puede editar las reglas de los grupos de seguridad administrados,crear grupos de seguridad adicionales con reglas adicionales o ambas cosas.

Important

Además, la edición de reglas de los grupos de seguridad administrados puede tenerconsecuencias no deseadas. Es posible bloquear accidentalmente el tráfico necesario paraque los clústeres funcionen correctamente y generar errores debido a que los nodos esténinaccesibles. Planifique y pruebe cuidadosamente las configuraciones de los grupos de seguridadantes de su implementación.Warning

El grupo de seguridad administrado por EMR predeterminado de la instancia principal ensubredes públicas, ElasticMapReduce-master, está preconfigurado con una regla quepermite el tráfico entrante en el puerto 22 de todos los orígenes (IPv4 0.0.0.0/0). Esto es parasimplificar las conexiones de los clientes SSH iniciales al nodo principal. Le recomendamosencarecidamente editar esta regla de entrada para restringir el tráfico únicamente a partir deorígenes de confianza o especificar un grupo de seguridad personalizado que restrinja el acceso.Para obtener más información, consulte Uso de grupos de seguridad administrados por AmazonEMR (p. 292).

Solo puede especificar grupos de seguridad al crear un clúster. No se pueden añadir a un clúster ni a lasinstancias de clúster mientras se está ejecutando un clúster, pero es posible editar, añadir y eliminar reglasde los grupos de seguridad existentes. Las reglas surtirán efecto tan pronto como se guarden.

Los grupos de seguridad son restrictivos de forma predeterminada. A menos que se añada una reglaque permita el tráfico, el tráfico se rechaza. Si existe más de una regla que se aplica al mismo tráfico y almismo origen, se aplica la regla más permisiva. Por ejemplo, si tiene una regla que permite el tráfico SSHdesde la dirección IP 192.0.2.12/32 y otra regla que permite el acceso a todo el tráfico TCP desde el rango192.0.2.0/24, tiene prioridad la regla que permite todo el tráfico TCP desde el rango que incluye 192.0.2.12.En este caso, el cliente en la dirección 192.0.2.12 podría tener más acceso del deseado.

Actúe con precaución al editar las reglas de grupos de seguridad. Asegúrese de añadir reglas quesolo permitan el tráfico desde los clientes de confianza para los protocolos y puertos necesarios. Norecomendamos ninguna regla de entrada que permita el acceso público, es decir, el tráfico procedentede orígenes especificados como IPv4 0.0.0.0/0 o IPv6::/0. Puede configurar el Amazon EMR Block Public

291

Page 299: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad

administrados por Amazon EMR

Access en cada región que utilice para evitar la creación de clústeres si una regla permite el accesopúblico en algún puerto que no haya añadido a una lista de excepciones. El puerto 22 para SSH está enla lista de excepciones de forma predeterminada. Para las cuentas de AWS creadas después de julio de2019, el Amazon EMR Block Public Access está activado de forma predeterminada. Para las cuentas deAWS que crearon un clúster antes de julio de 2019, el Amazon EMR Block Public Access está desactivadode forma predeterminada. Para obtener más información, consulte Uso de Amazon EMR Block PublicAccess (p. 302).

Temas• Uso de grupos de seguridad administrados por Amazon EMR (p. 292)• Uso de grupos de seguridad adicionales (p. 298)• Especificación de los grupos de seguridad adicionales administrados por Amazon EMR (p. 298)• Especificación de grupos de seguridad de EC2 para blocs de notas de EMR (p. 300)• Uso de Amazon EMR Block Public Access (p. 302)

Uso de grupos de seguridad administrados porAmazon EMRSon varios los grupos de seguridad administrados que están asociados a la instancia principal y con lasinstancias secundarias y de tareas de un clúster. Se requiere un grupo de seguridad administrado adicionalpara el acceso al servicio al crear un clúster en una subred privada. Para obtener más información sobrela función de los grupos de seguridad administrados con respecto a la configuración de la red, consulteOpciones de Amazon VPC (p. 130).

Cuando especifique grupos de seguridad administrados para un clúster, debe utilizar el mismo tipo degrupo de seguridad, predeterminado o personalizado, para todos los grupos. Por ejemplo, no puedeespecificar un grupo de seguridad personalizado para la instancia principal y, acto seguido, no especificarun grupo de seguridad personalizado para las instancias secundarias y de tareas.

Si piensa utilizar los grupos de seguridad administrados predeterminados, no es necesario que losespecifique al crear un clúster. Amazon EMR los utiliza de forma automática. Además, si los grupospredeterminados no existen aún en la VPC del clúster, Amazon EMR los crea. Amazon EMR también loscreará si se especifican de forma explícita y no existen todavía.

Puede editar reglas en los grupos de seguridad administrados una vez que se hayan creado los clústeres.Cuando se crea un clúster nuevo, Amazon EMR comprueba las reglas de los grupos de seguridadadministrados que se especifican y, a continuación, crea las reglas que faltan y que el clúster nuevonecesita, junto con las reglas que se hayan podido añadir anteriormente. A menos que se indique locontrario, cada regla para los grupos de seguridad administrados por EMR predeterminados también seañade a los grupos de seguridad administrados por EMR personalizados que especifique.

Los grupos de seguridad administrados predeterminados son los siguientes:

• ElasticMapReduce-master

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para la instancia principal (subredes públicas) (p. 293).

• ElasticMapReduce-slave

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para las instancias secundarias y de tareas (subredes públicas) (p. 295).

• ElasticMapReduce-Master-Private

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para la instancia principal (subredes privadas) (p. 296).

292

Page 300: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad

administrados por Amazon EMR

• ElasticMapReduce-Slave-Private

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para las instancias secundarias y de tareas (subredes privadas) (p. 297).

• ElasticMapReduce-ServiceAccess

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para el acceso de los servicios (subredes privadas) (p. 297).

Grupo de seguridad administrado por Amazon EMR para lainstancia principal (subredes públicas)El grupo de seguridad administrado predeterminado de la instancia principal en las subredes públicastiene el Group Name (Nombre de grupo) ElasticMapReduce-master. El grupo de seguridad administradopredeterminado tiene las siguientes reglas, y Amazon EMR añade las mismas reglas si especifica un grupode seguridad administrado personalizado.

Tipo ProtocoloRangodepuertos

Origen Detalles

Reglas de entrada

Todo elICMP IPv4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministrado para lainstancia principal.En otras palabras,el mismo grupo deseguridad en el queaparece la regla.

Estas reglas reflexivas permiten el tráficoentrante desde cualquier instancia asociadaal grupo de seguridad especificado. El usodel grupo de seguridad predeterminadoElasticMapReduce-master para variosclústeres permite que los nodos secundarios yde tareas de dichos clústeres se comuniquenentre sí a través de ICMP o de cualquier puertoTCP o UDP. Especifique grupos de seguridadadministrados personalizados para restringir elacceso entre clústeres.

Todo elICMP IPV4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministradoespecificado para losnodos secundarios yde tareas.

Estas reglas permiten todo el tráfico ICMPentrante y el tráfico a través de cualquierpuerto TCP o UDP desde cualquier instanciasecundaria y de tareas asociada al grupo deseguridad especificado, incluso si las instanciasse encuentran en clústeres distintos.

PersonalizadoTCP 8443 Diversos rangos dedirecciones IP deAmazon

Estas reglas permiten que el administrador delclúster se comunique con el nodo principal.

SSH TCP 22 0.0.0.0/0 Permita conexiones SSH entrantes de cualquierorigen.

Warning

Le recomendamos encarecidamenteeditar esta regla de entrada pararestringir el tráfico únicamente desdeorígenes de confianza. De manera

293

Page 301: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad

administrados por Amazon EMR

Tipo ProtocoloRangodepuertos

Origen Detalles

alternativa, especifique un grupo deseguridad administrado por EMRpersonalizado para restringir el acceso.Para obtener más información, consultela procedimiento para eliminar el accesoa público a SSH (p. 294).

Para eliminar la regla de entrada que permite el acceso público mediante SSH para el grupo deseguridad ElasticMapReduce-master

En el siguiente procedimiento se supone que no se ha editado previamente el grupo de seguridadElasticMapReduce-master. Además, para editar grupos de seguridad, debe haber iniciado sesión en AWScomo usuario raíz o como principal de IAM con permiso para administrar grupos de seguridad para la VPCen la que se encuentra el clúster. Para más información, consulte Cambio de los permisos de un usuariode IAM y el Ejemplo de política que permite administrar grupos de seguridad de EC2 en la Guía del usuariode IAM.

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Seleccione Clusters (Clústeres).3. Elija el Name (Nombre) del clúster.4. En Security and access (Seguridad y acceso), elija el enlace Security groups for Master (Grupos de

seguridad para principal).

5. Elija ElasticMapReduce-master en la lista.6. Elija Inbound (Entrada), Edit (Editar).

294

Page 302: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad

administrados por Amazon EMR

7. Busque la regla con la siguiente configuración y seleccione el icono x para eliminarlo:

• Type (Tipo)

SSH• Port (Puerto)

22• Source (Fuente)

Personalizada 0.0.0.0/08. Desplácese a la parte inferior de la lista y elija Add Rule (Añadir regla).9. En Type (Tipo), seleccione SSH.

Esto introduce automáticamente TCP para Protocol (Protocolo) y 22 para Port Range (Rango depuertos).

10. Como origen, seleccione My IP (Mi IP).

Esto añade automáticamente la dirección IP del equipo cliente como la dirección de origen. Tambiénpuede añadir un rango de direcciones IP de clientes de confianza Custom (Personalizadas) y elegirAdd rule (Añadir regla) para crear reglas adicionales para otros clientes. En muchos entornos dered, las direcciones IP se asignan de forma dinámica, por lo que es posible que necesite editarperiódicamente las reglas de grupos de seguridad para actualizar la dirección IP de los clientes deconfianza.

11. Seleccione Save.12. Opcionalmente, elija ElasticMapReduce-slave en la lista y repita los pasos anteriores para permitir el

acceso de los clientes SSH a los nodos secundarios y de tareas desde los clientes de confianza.

Grupo de seguridad administrado por Amazon EMR para lasinstancias secundarias y de tareas (subredes públicas)El grupo de seguridad administrado predeterminado de las instancias secundarias y de tareas de lassubredes públicas tiene el Group Name (Nombre de grupo) ElasticMapReduce-slave. El grupo deseguridad administrado predeterminado tiene las siguientes reglas, y Amazon EMR añade las mismasreglas si especifica un grupo de seguridad administrado personalizado.

Tipo ProtocoloRangodepuertos

Origen Detalles

Reglas de entrada

Todo elICMP IPV4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministrado paralas instanciassecundarias y detareas. En otraspalabras, el mismogrupo de seguridaden el que aparece laregla.

Estas reglas reflexivas permiten el tráficoentrante desde cualquier instancia asociadaal grupo de seguridad especificado. El usodel grupo de seguridad predeterminadoElasticMapReduce-slave para variosclústeres permite que las instancias secundariasy de tareas de dichos clústeres se comuniquenentre sí a través de ICMP o de cualquier puertoTCP o UDP. Especifique grupos de seguridadadministrados personalizados para restringir elacceso entre clústeres.

295

Page 303: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad

administrados por Amazon EMR

Tipo ProtocoloRangodepuertos

Origen Detalles

Todo elICMP IPV4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todo

El ID de grupo delgrupo de seguridadadministrado para lainstancia principal.

Estas reglas permiten todo el tráfico ICMPentrante y el tráfico a través de cualquier puertoTCP o UDP desde cualquier instancia principalasociada al grupo de seguridad especificado,incluso si las instancias se encuentran enclústeres distintos.

Grupo de seguridad administrado por Amazon EMR para lainstancia principal (subredes privadas)El grupo de seguridad administrado predeterminado de la instancia principal en las subredes privadas tieneel Group Name (Nombre de grupo) ElasticMapReduce-Master-Private. El grupo de seguridad administradopredeterminado tiene las siguientes reglas, y Amazon EMR añade las mismas reglas si especifica un grupode seguridad administrado personalizado.

Tipo ProtocoloRangodepuertos

Origen Detalles

Reglas de entrada

Todo elICMP IPv4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministrado para lainstancia principal.En otras palabras,el mismo grupo deseguridad en el queaparece la regla.

Estas reglas reflexivas permiten el tráficoentrante desde cualquier instancia asociadaal grupo de seguridad especificado y que estéaccesible desde dentro de la subred privada.El uso del grupo de seguridad predeterminadoElasticMapReduce-Master-Privatepara varios clústeres permite que los nodossecundarios y de tareas de dichos clústeresse comuniquen entre sí a través de ICMP o decualquier puerto TCP o UDP. Especifique gruposde seguridad administrados personalizados pararestringir el acceso entre clústeres.

Todo elICMP IPV4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministrado para losnodos secundarios yde tareas.

Estas reglas permiten todo el tráfico ICMPentrante y el tráfico a través de cualquier puertoTCP o UDP desde cualquier instancia secundariay de tareas asociada al grupo de seguridadespecificado y que esté accesible desde lasubred privada, incluso si las instancias seencuentran en clústeres distintos.

HTTPS(8443)

TCP 8443 El ID de grupo delgrupo de seguridadadministrado parael acceso de losservicios en unasubred privada.

Esta regla permite que el administrador delclúster se comunique con el nodo principal.

296

Page 304: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad

administrados por Amazon EMR

Grupo de seguridad administrado por Amazon EMR para lasinstancias secundarias y de tareas (subredes privadas)El grupo de seguridad administrado predeterminado de las instancias secundarias y de tareas de lassubredes privadas tiene el Group Name (Nombre de grupo) ElasticMapReduce-Slave-Private. El grupode seguridad administrado predeterminado tiene las siguientes reglas, y Amazon EMR añade las mismasreglas si especifica un grupo de seguridad administrado personalizado.

Tipo ProtocoloRangodepuertos

Origen Detalles

Reglas de entrada

Todo elICMP IPV4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministrado paralas instanciassecundarias y detareas. En otraspalabras, el mismogrupo de seguridaden el que aparece laregla.

Estas reglas reflexivas permiten el tráficoentrante desde cualquier instancia asociadaal grupo de seguridad especificado. El usodel grupo de seguridad predeterminadoElasticMapReduce-slave para variosclústeres permite que las instancias secundariasy de tareas de dichos clústeres se comuniquenentre sí a través de ICMP o de cualquier puertoTCP o UDP. Especifique grupos de seguridadadministrados personalizados para restringir elacceso entre clústeres.

Todo elICMP IPV4

Todos N/D

Todo elTCP

TCP Todos

Todo elUDP

UDP Todos

El ID de grupo delgrupo de seguridadadministrado para lainstancia principal.

Estas reglas permiten todo el tráfico ICMPentrante y el tráfico a través de cualquier puertoTCP o UDP desde cualquier instancia principalasociada al grupo de seguridad especificado,incluso si las instancias se encuentran enclústeres distintos.

HTTPS(8443)

TCP 8443 El ID de grupo delgrupo de seguridadadministrado parael acceso de losservicios en unasubred privada.

Esta regla permite que el administrador delclúster se comunique con los nodos secundariosy de tareas.

Grupo de seguridad administrado por Amazon EMR para elacceso de los servicios (subredes privadas)El grupo de seguridad administrado predeterminado para el acceso de los servicios en las subredesprivadas tiene el Group Name (Nombre de grupo) ElasticMapReduce-ServiceAccess. Tiene reglas deentrada y reglas de salida que permiten el tráfico a través de HTTPS (puerto 8443 o 9443) hacia los demásgrupos de seguridad administrados en las subredes privadas. Estas reglas permiten que el administradordel clúster se comunique con el nodo principal y con nodos principales y de tarea. Se necesitan las mismasreglas si utiliza grupos de seguridad personalizados.

297

Page 305: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de grupos de seguridad adicionales

Tipo ProtocoloRangodepuertos

Origen Detalles

Reglas de salida Necesarias para todos los clústeres de EMR

HTTPS(8443)

TCP 8443 El ID de grupo delgrupo de seguridadadministrado de lainstancia principal.

Estas reglas permiten que el administrador delclúster se comunique con el nodo principal y connodos principales y de tarea.

HTTPS(8443)

TCP 8443 El ID de grupo delgrupo de seguridadadministrado paralas instanciassecundarias y detareas.

Estas reglas permiten que el administrador delclúster se comunique con el nodo principal y connodos principales y de tarea.

Reglas de entrada Necesarias para clústeres de EMR con Amazon EMR versión 5.30.0 y posterior.

HTTPS(9443)

TCP 9443 El ID de grupo delgrupo de seguridadadministrado de lainstancia principal.

Esta regla permite la comunicación entre el grupode seguridad de la instancia principal y el grupode seguridad de acceso al servicio.

Uso de grupos de seguridad adicionalesTanto si utiliza los grupos de seguridad administrados predeterminados como si especifica grupos deseguridad administrados personalizados, puede utilizar grupos de seguridad adicionales. Los grupos deseguridad adicionales le proporcionan la flexibilidad necesaria para adaptar el acceso entre diferentesclústeres y desde clientes, aplicaciones y recursos externos.

Considere el siguiente escenario de ejemplo. Dispone de varios clústeres y necesita que se comuniquenentre ellos, pero desea permitir el acceso SSH entrante a la instancia principal solo a un determinadosubconjunto de clústeres. Para ello, puede utilizar el mismo conjunto de grupos de seguridadadministrados para los clústeres. A continuación, debe crear grupos de seguridad adicionales que permitanel acceso SSH entrante desde los clientes de confianza y especificar los grupos de seguridad adicionalespara la instancia principal de cada uno de los clústeres del subconjunto.

Puede aplicar hasta cuatro grupos de seguridad adicionales a la instancia principal, cuatro a las instanciassecundarias y de tareas, y cuatro para el acceso al servicio (en subredes privadas). Si fuera necesario,puede especificar el mismo grupo de seguridad adicional para las instancias principales, las instanciassecundarias y de tareas y el acceso al servicio. El número máximo de grupos de seguridad y reglas de lacuenta está sujeto a los límites de la cuenta. Para obtener más información, consulte Límites de los gruposde seguridad en la Guía del usuario de Amazon VPC.

Especificación de los grupos de seguridad adicionalesadministrados por Amazon EMRPuede especificar grupos de seguridad mediante la Consola de administración de AWS, la AWSCLI, o la API de EMR. Si no especifica grupos de seguridad, Amazon EMR crea grupos de seguridadpredeterminados. La especificación de grupos de seguridad adicionales es opcional. Puede asignar gruposde seguridad adicionales a las instancias principales, a las instancias secundarias y de tareas y al accesode los servicios (solo para las subredes privadas).

298

Page 306: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEspecificación de grupos de seguridad

Para especificar grupos de seguridad desde la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. Elija las opciones para el clúster hasta que llegue al Step 4: Security (Paso 4: Seguridad).4. Elija EC2 Security Groups (Grupos de seguridad de EC2) para expandir la sección.

En EMR managed security groups (Grupos de seguridad administrados de EMR), los grupos deseguridad administrados predeterminados están seleccionados de forma predeterminada. Si no existeun valor predeterminado en la VPC para Master (Principal), Core & Task (Secundarias y de tareas) oService Access (Acceso a los servicios) (solo subredes privadas), Create (Crear) aparece delante delnombre del grupo de seguridad asociado.

5. Si utiliza grupos de seguridad administrados personalizados, selecciónelos en las listas EMR managedsecurity groups (Grupos de seguridad administrados de EMR).

Si selecciona un grupo de seguridad administrado personalizado, un mensaje le indica que debeseleccionar un grupo de seguridad personalizado para las demás instancias. En un clúster, no puedemezclar grupos de seguridad administrados predeterminados y personalizados, debe elegir unos uotros.

6. Como opción, en Additional security groups (Grupos de seguridad adicionales), elija el icono de lápiz,seleccione un máximo de cuatro grupos de seguridad en la lista y, a continuación, elija Assign securitygroups (Asignar grupos de seguridad). Repita estos pasos para cada instancia Master (Principal), Core& Task (Secundaria y de tareas) y Service Access (Acceso a los servicios).

7. Elija Create Cluster (Crear clúster).

Especificación de grupos de seguridad mediante la AWS CLIPara especificar los grupos de seguridad mediante la AWS CLI, utilice el comando create-cluster conlos siguientes parámetros para la opción --ec2-attributes:

Parámetro Descripción

EmrManagedMasterSecurityGroup Utilice este parámetro para especificar ungrupo de seguridad administrado personalizadopara la instancia principal. Si se especificaeste parámetro, también se debe especificarEmrManagedSlaveSecurityGroup. Paraclústeres en subredes privadas, también se debeespecificar ServiceAccessSecurityGroup.

EmrManagedSlaveSecurityGroup Utilice este parámetro para especificar un grupode seguridad administrado personalizado para lasinstancias secundarias y de tareas. Si se especificaeste parámetro, también se debe especificarEmrManagedMasterSecurityGroup. Paraclústeres en subredes privadas, también se debeespecificar ServiceAccessSecurityGroup.

ServiceAccessSecurityGroup Utilice este parámetro para especificar un grupode seguridad administrado personalizado para elacceso de los servicios, que se aplica únicamentea los clústeres de las subredes privadas. Si seespecifica este parámetro, también se debenespecificar EmrManagedMasterSecurityGroup.

299

Page 307: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónGrupos de seguridad de Cuadernos de EMR

Parámetro Descripción

AdditionalMasterSecurityGroups Utilice este parámetro para especificar hasta cuatrogrupos de seguridad adicionales para la instanciaprincipal.

AdditionalSlaveSecurityGroups Utilice este parámetro para especificar hastacuatro grupos de seguridad adicionales para lasinstancias secundarias y de tareas.

Example — Especificar grupos de seguridad administrados por Amazon EMR personalizados ygrupos de seguridad adicionales

En el siguiente ejemplo, se especifican grupos de seguridad administrados por Amazon EMRpersonalizados para un clúster en una subred privada, varios grupos de seguridad adicionales para lainstancia principal y un único grupo de seguridad adicional para las instancias secundarias y de tareas.

Note

Se incluyen los caracteres de continuación de línea de Linux (\) para facilitar la legibilidad. Sepueden eliminar o emplear en los comandos de Linux. En Windows, elimínelos o reemplácelos porun signo de intercalación (^).

aws emr create-cluster --name "ClusterCustomManagedAndAdditionalSGs" \--release-label emr-emr-5.30.0 --applications Name=Hue Name=Hive \Name=Pig --use-default-roles --ec2-attributes \SubnetIds=subnet-xxxxxxxxxxxx,KeyName=myKey,\ServiceAccessSecurityGroup=sg-xxxxxxxxxxxx,\EmrManagedMasterSecurityGroup=sg-xxxxxxxxxxxx,\EmrManagedSlaveSecurityGroup=sg-xxxxxxxxxxx,\AdditionalMasterSecurityGroups=['sg-xxxxxxxxxxx',\'sg-xxxxxxxxxxx','sg-xxxxxxxxxx'],\AdditionalSlaveSecurityGroups=sg-xxxxxxxxxxx \--instance-type m5.xlarge

Para obtener más información, consulte create-cluster en la AWS CLI Command Reference.

Especificación de grupos de seguridad de EC2 parablocs de notas de EMRAl crear un Cuaderno de EMR, se utilizan dos grupos de seguridad para controlar el tráfico de red entreel Cuaderno de EMR y el clúster de Amazon EMR cuando se usa el editor de blocs de notas. Los gruposde seguridad predeterminados tienen reglas mínimas que únicamente permiten el tráfico de red entre elservicio de Cuadernos de EMR y los clústeres a los que están asociados los blocs de notas.

Un Cuaderno de EMR utiliza Apache Livy para comunicarse con el clúster a través de un proxy medianteel puerto TCP 18888. La creación de grupos de seguridad personalizados con reglas adaptadas al entornole permite limitar el tráfico de la red de forma que solo un subconjunto de blocs de notas puedan ejecutarcódigo en el editor de blocs de notas en determinados clústeres. Los grupos de seguridad se utilizan juntocon los grupos de seguridad del clúster. Para obtener más información, consulte Control del tráfico de redcon grupos de seguridad en la Guía de administración de Amazon EMR y Especificación de grupos deseguridad de EC2 para blocs de notas de EMR (p. 300).

300

Page 308: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónGrupos de seguridad de Cuadernos de EMR

Grupo de seguridad de EC2 predeterminado para la instanciaprincipalEl grupo de seguridad de EC2 predeterminado para la instancia principal está asociado a esta, junto conlos grupos de seguridad del clúster para dicha instancia.

Nombre del grupo: ElasticMapReduceEditors-Livy

Reglas

• Entrada

Permite el tráfico en el puerto TCP 18888 desde cualquier recurso en el grupo de seguridad de EC2predeterminado para Cuadernos de EMR

• Salida

Ninguno

Grupo de seguridad de EC2 predeterminado para los blocs denotas de EMREl grupo de seguridad de EC2 predeterminado para Cuaderno de EMR está asociado al editor de blocs denotas para cualquier Cuaderno de EMR al que esté asignado.

Nombre del grupo: ElasticMapReduceEditors-Editor

Reglas

• Entrada

Ninguno• Salida

Permite el tráfico en el puerto TCP 18888 a cualquier recurso en el grupo de seguridad de EC2predeterminado para Cuadernos de EMR

Grupo de seguridad de EC2 personalizado para los blocs denotas de EMR al asociar blocs de notas con repositorios de GitPara vincular un repositorio de Git a su bloc de notas, el grupo de seguridad del bloc de notas de EMRdebe incluir una regla de salida para permitir que el bloc de notas envíe tráfico a Internet. Se recomiendacrear un nuevo grupo de seguridad para este fin. La actualización del grupo de seguridad predeterminadoElasticMapReduceEditors-Editor puede proporcionar las mismas reglas de salida a otros blocs de notasque estén asociados a este grupo de seguridad.

Reglas

• Entrada

Ninguno• Salida

Permita que el bloc de notas envíe tráfico a Internet a través del clúster, como se muestra en el siguienteejemplo:

301

Page 309: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de Block Public Access

Tipo Protocolo Rango de puertos Destino

Regla TCPpersonalizada

TCP 18888 SG-

HTTPS TCP 443 0.0.0.0/0

Uso de Amazon EMR Block Public AccessAmazon EMR Block Public Access evita que un clúster se ejecute cuando un grupo de seguridad asociadocon el clúster disponga de una regla que permita el tráfico de entrada desde IPv4 0.0.0.0/0 o IPv6 ::/0(acceso público) en un puerto, a no ser que el puerto se especifique como excepción. El puerto 22 es unaexcepción de forma predeterminada. Puede configurar excepciones para permitir el acceso público en unpuerto o rango de puertos. Además, puede habilitar o deshabilitar Block Public Access. Le recomendamosque lo habilite.

Block Public Access está habilitado y configurado para cada región deAWS de su cuenta de AWS. En otraspalabras, cada región tiene una configuración de Block Public Access que se aplica a todos los clústerescreados por su cuenta en esa región.

Note

Para las cuentas que crearon clústeres en una región antes del 25 de noviembre de 2019, elbloqueo de acceso público está deshabilitado de forma predeterminada en esa región. Parautilizar esta función, debe habilitarla y configurarla manualmente. Para las cuentas que nocrearon un clúster de EMR en una región antes de esta fecha, el bloqueo de acceso público estáhabilitado de forma predeterminada en esa región.

Configurar Block Public AccessPuede habilitar y deshabilitar la configuración de Block Public Access mediante la Consola deadministración de AWS, la AWS CLI y la API de Amazon EMR. La configuración se aplica a toda su cuentaregión por región.

Para configurar Block Public Access mediante la Consola de administración de AWS

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. En la barra de navegación, asegúrese de que la Region (Región) que desea configurar está

seleccionada.3. Elija Block public access (Bloquear acceso público).4. En Block public access settings (Configuración de Block Public Access), complete los pasos

siguientes.

Para... Haga lo siguiente...

Activar o desactivar Block Public Access Elija Change (Cambiar), elija On (Activar)o Off (Desactivar) según corresponda y, acontinuación, elija la marca de verificación quedesea confirmar.

Editar puertos en la lista de excepciones 1. En Exceptions (Excepciones), elija Edit(Editar).

2. Para añadir puertos a la lista de excepciones,elija Add a port range (Añadir un rango de

302

Page 310: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de Block Public Access

Para... Haga lo siguiente...puertos) y escriba un nuevo puerto o rango depuertos. Repita para cada puerto o rango depuertos que desee añadir.

3. Para eliminar un puerto o rango de puertos,elija la x situado junto a la entrada en la listaPort ranges (Rangos de puertos).

4. Elija Guardar cambios.

Para configurar Block Public Access mediante la AWS CLI

Utilice el comando aws emr put-block-public-access-configuration para configurar BlockPublic Access, tal y como se muestra en los siguientes ejemplos.

Para... Haga lo siguiente...

Activar Block Public Access Defina BlockPublicSecurityGroupRules entrue como se muestra en el ejemplo siguiente.Para que el clúster se lance, ningún grupo deseguridad asociado a un clúster puede tener unaregla de entrada que permita el acceso público.

aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=true

Desactivar Block Public Access Defina BlockPublicSecurityGroupRulesen false como se muestra en el ejemplosiguiente. Los grupos de seguridad asociados aun clúster pueden tener reglas de entrada quepermitan el acceso público en cualquier puerto. Norecomendamos esta configuración.

aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=false

Activar Block Public Access y especificar lospuertos como excepciones

En el siguiente ejemplo se activa el bloqueo delacceso público y se especifica el puerto 22 y lospuertos 100-101 como excepciones. Esto permitecrear clústeres si un grupo de seguridad asociadotiene una regla de entrada que permite el accesopúblico en los puertos 22, 100 o 101.

aws emr put-block-public-access-configuration --block-public-access-configuration '{ "BlockPublicSecurityGroupRules": true, "PermittedPublicSecurityGroupRuleRanges": [ { "MinRange": 22, "MaxRange": 22 }, { "MinRange": 100, "MaxRange": 101 } ] }'

303

Page 311: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónValidación de la conformidad

Validación de la conformidad en Amazon EMRAuditores externos evalúan la seguridad y la conformidad de Amazon EMR como parte de variosprogramas de conformidad de AWS. Estos incluye SOC, PCI, FedRAMP, HIPAA y otros.

Para obtener una lista de los servicios de AWS en el ámbito de programas de conformidad específicos,consulte Servicios de AWS en el ámbito del programa de conformidad. Para obtener información general,consulte Programas de conformidad de AWS.

Puede descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener másinformación, consulte la sección Descarga de informes en AWS Artifact.

Su responsabilidad de conformidad al utilizar Amazon EMR se determina en función de la confidencialidadde los datos, los objetivos de conformidad de su empresa, así como de la legislación y los reglamentosaplicables. Si su uso de Amazon EMR está sujeto a conformidad con normas tales como HIPAA, PCI oFedRAMP, AWS proporciona recursos para ayudarle:

• Guías de inicio rápido de seguridad y conformidad: estas guías de implementación tratanconsideraciones sobre arquitectura y ofrecen pasos para implementar los entornos de referenciacentrados en la seguridad y la conformidad en AWS.

• Documento técnico sobre arquitectura para seguridad y conformidad de HIPAA: este documento técnicodescribe cómo las empresas pueden utilizar AWS para crear aplicaciones conformes con HIPAA.

• Recursos de conformidad de AWS: este conjunto de manuales y guías podría aplicarse a su sector yubicación.

• AWS Config: este servicio de AWS evalúa en qué medida las configuraciones de los recursos cumplenlas prácticas internas, las directrices del sector y las normativas.

• AWS Security Hub: este servicio de AWS ofrece una vista integral de su estado de seguridad en AWSque le ayuda a comprobar la conformidad con las normas del sector de seguridad y las prácticasrecomendadas.

Resiliencia de Amazon EMRLa infraestructura global de AWS está conformada por regiones y zonas de disponibilidad de AWS. Lasregiones de AWS proporcionan varias zonas de disponibilidad físicamente independientes y aisladasque se encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, ademásde baja latencia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datosque realizan una conmutación por error automática entre zonas de disponibilidad sin interrupciones. Laszonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que lasinfraestructuras tradicionales de centros de datos únicos o múltiples.

Para obtener más información sobre las zonas de disponibilidad y las regiones de AWS, consulteInfraestructura global de AWS.

Además de la infraestructura global de AWS, Amazon EMR ofrece varias características que le ayudan consus necesidades de resiliencia y copia de seguridad de los datos.

• Integración con Amazon S3 a través de EMRFS• Soporte para varios nodos principales

Seguridad de la infraestructura en Amazon EMRAl tratarse de un servicio administrado, Amazon EMR está protegido por los procedimientos de seguridadde red globales de AWS que se describen en el documento técnico Amazon Web Services: Informacióngeneral sobre procesos de seguridad.

304

Page 312: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión a Amazon EMR mediante un

punto de enlace de la VPC de tipo interfaz

Puede utilizar llamadas a la API publicadas en AWS para obtener acceso a Amazon EMR a través de lared. Los clientes deben ser compatibles con Transport Layer Security (TLS) 1.0 o una versión posterior.Le recomendamos TLS 1.2 o una versión posterior. Los clientes también deben ser compatibles conconjuntos de cifrado con confidencialidad directa total (PFS) tales como Ephemeral Diffie-Hellman (DHE)o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La mayoría de los sistemas modernos como Java 7 yposteriores son compatibles con estos modos.

Además, las solicitudes deben estar firmadas mediante un ID de clave de acceso y una clave de accesosecreta que esté asociada a una entidad principal de IAM. También puede utilizar AWS Security TokenService (AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.

Temas• Conexión a Amazon EMR mediante un punto de enlace de la VPC de tipo interfaz (p. 305)

Conexión a Amazon EMR mediante un punto deenlace de la VPC de tipo interfazPuede conectarse directamente a Amazon EMR mediante un punto de enlace de la VPC de tipo interfaz(AWS PrivateLink) en su nube virtual privada (VPC) en lugar de conectarse a través de Internet. Cuando seutiliza un punto de enlace de la VPC de tipo interfaz, la comunicación su VPC y Amazon EMR se realiza ensu totalidad dentro de la red de AWS. Cada punto de enlace de la VPC está representado por una o variasInterfaces de red elásticas (ENI) con direcciones IP privadas en las subredes de la VPC.

El punto de enlace de la VPC de tipo interfaz conecta directamente la VPC con Amazon EMR sinnecesidad de gateway de Internet, dispositivos NAT, conexiones de VPN ni conexiones de AWS DirectConnect. Las instancias de la VPC no necesitan direcciones IP públicas para comunicarse con la API deAmazon EMR.

Para utilizar Amazon EMR a través de la VPC, debe conectarse desde una instancia que está dentro dela VPC o conectar su red privada a la VPC a través de una red privada virtual (VPN) de Amazon o deAWS Direct Connect. Para obtener más información sobre Amazon VPN, consulte Conexiones de VPNen la Guía del usuario de Amazon Virtual Private Cloud. Para obtener información acerca de AWS DirectConnect, consulte Creación de una conexión en la Guía del usuario de AWS Direct Connect.

Puede crear un punto de enlace de la VPC de tipo interfaz para conectarse a Amazon EMR mediantela consola de AWS o los comandos de AWS Command Line Interface (AWS CLI). Para obtener másinformación, consulte Creación de un punto de conexión de interfaz.

Después de crear un punto de enlace de la VPC de tipo interfaz, si habilita nombres de host DNS privadospara el punto de enlace, el punto de enlace predeterminado de Amazon EMR se resuelve en el punto deenlace de la VPC. El punto de enlace del nombre de servicio predeterminado para Amazon EMR tiene elsiguiente formato.

elasticmapreduce.Region.amazonaws.com

Si no habilita nombres de host DNS privados, Amazon VPC proporciona un nombre de punto de enlace deDNS que puede utilizar en el siguiente formato.

VPC_Endpoint_ID.elasticmapreduce.Region.vpce.amazonaws.com

Para obtener más información, consulte Servicios de punto de conexión de la VPC (AWS PrivateLink) en laGuía del usuario de Amazon VPC.

Amazon EMR permite realizar llamadas a todas sus acciones de API dentro de su VPC.

305

Page 313: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión a Amazon EMR mediante un

punto de enlace de la VPC de tipo interfaz

Puede asociar políticas de punto de enlace de la VPC a un punto de enlace de la VPC para controlar elacceso de las entidades principales de IAM. También puede asociar grupos de seguridad con un punto deenlace de la VPC para controlar el acceso de entrada y salida en función del origen y el destino del tráficode red, como un rango de direcciones IP. Para obtener más información, consulte Control del acceso a losservicios con Puntos de conexión de la VPC.

Creación de una política de puntos de enlace de la VPC paraAmazon EMRPuede crear una política para los puntos de enlace de la Amazon VPC de Amazon EMR para especificar losiguiente:

• La entidad principal que puede o no puede realizar acciones• Las acciones que se pueden realizar• Los recursos en los que se pueden llevar a cabo las acciones

Para obtener más información, consulte Control del acceso a los servicios con Puntos de conexión de laVPC en la Guía del usuario de Amazon VPC.

Example – Política de punto de enlace de la VPC para denegar el acceso desde una cuenta deAWS especificada

La siguiente política de punto de enlace de la VPC deniega a la cuenta 123456789012 de AWS el accesoa los recursos mediante el punto de enlace.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ]}

Example – Política de punto de enlace de VPC para permitir el acceso de VPC solo a una entidadprincipal de IAM especificada (usuario)

La siguiente política de punto de enlace de la VPC permite el acceso completo solo al usuario lijuan deIAM en la cuenta 123456789012 de AWS. A las demás entidades principales de IAM se les deniega elacceso mediante el punto de enlace.

{ "Statement": [ { "Action": "*", "Effect": "Allow",

306

Page 314: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión a Amazon EMR mediante un

punto de enlace de la VPC de tipo interfaz

"Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/lijuan" ] } }]}

Example – Política de punto de enlace de la VPC para permitir operaciones EMR de solo lectura

La siguiente política de punto de enlace de la VPC solo permite que la cuenta 123456789012 de AWSrealice las acciones de Amazon EMR especificadas.

Las acciones especificadas proporcionan el equivalente al acceso de solo lectura para Amazon EMR. Lasdemás acciones en la VPC se deniegan para la cuenta especificada. A las demás cuentas se les deniegael acceso. Para obtener una lista de acciones de Amazon EMR, consulte Acciones, recursos y claves decondición de Amazon EMR.

{ "Statement": [ { "Action": [ "elasticmapreduce:DescribeSecurityConfiguration", "elasticmapreduce:GetBlockPublicAccessConfiguration", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ViewEventsFromAllClustersInConsole", "elasticmapreduce:ListSteps", "elasticmapreduce:ListInstanceFleets", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeStep", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSecurityConfigurations", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:ListEditors" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ]}

Example – Política de punto de enlace de la VPC que deniega el acceso a un clúster específico

La siguiente política de punto de enlace de la VPC permite el acceso completo para todas las cuentas yentidades principales, pero niega cualquier acceso para la cuenta 123456789012 de AWS a las accionesrealizadas en el clúster de Amazon EMR con el ID de clúster j-A1B2CD34EF5G. Se siguen permitiendootras acciones de Amazon EMR que no admiten permisos de nivel de recursos para los clústeres. Paraobtener una lista de acciones de Amazon EMR y su correspondiente tipo de recurso, consulte Acciones,recursos y claves de condición para Amazon EMR.

{ "Statement": [ {

307

Page 315: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión a Amazon EMR mediante un

punto de enlace de la VPC de tipo interfaz

"Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-west-2:123456789012:cluster/j-A1B2CD34EF5G", "Principal": { "AWS": [ "123456789012" ] } } ]}

308

Page 316: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer y monitorizar un clúster

Administración de clústeresDespués de haber lanzado el clúster, puede monitorizarlo y administrarlo. Amazon EMR proporciona variasherramientas que puede utilizar para conectarse al clúster y controlarlo.

Temas• Ver y monitorizar un clúster (p. 309)• Conectar al clúster (p. 353)• Terminar un clúster (p. 368)• Escalado de recursos de clúster (p. 370)• Clonación de un clúster utilizando la consola (p. 398)• Enviar trabajo a un clúster (p. 398)• Automatización de clústeres periódicos con AWS Data Pipeline (p. 405)

Ver y monitorizar un clústerAmazon EMR proporciona varias herramientas que puede utilizar para recopilar información sobre suclúster. Puede acceder a información sobre el clúster desde la consola, la CLI o mediante programación.Las interfaces web estándar de Hadoop y los archivos de registro están disponibles en el nodo principal.También puede utilizar servicios de monitorización como CloudWatch y Ganglia para realizar elseguimiento del rendimiento del clúster.

Temas• Ver el estado y los detalles del clúster (p. 309)• Depuración de pasos mejorada (p. 314)• Ver el historial de aplicaciones (p. 316)• Ver archivos de registro (p. 320)• Ver instancias de clúster en Amazon EC2 (p. 324)• Eventos y métricas de CloudWatch (p. 325)• Ver métricas de aplicaciones de clúster con Ganglia (p. 351)• Registro de llamadas a la API de Amazon EMR en AWS CloudTrail (p. 351)

Ver el estado y los detalles del clústerDespués de crear un clúster, puede monitorizar su estado y obtener información detallada acerca desu ejecución y los errores que puedan haberse producido, incluso después de que se haya terminado.Amazon EMR guarda los metadatos de los clústeres terminados para que pueda consultarlos durante dosmeses, después de los cuales se eliminan. El historial de aplicaciones se guarda durante una semanadesde el momento en que se registra, independientemente de si el clúster se está ejecutando o haterminado. No puede eliminar clústeres del historial de clústeres, pero con la Consola de administraciónde AWS, puede utilizar la función Filter (Filtro), y con la AWS CLI, puede utilizar opciones con el comandolist-clusters para centrarse en los clústeres que le interesen.

Ver el estado del clúster con la Consola de administración deAWSEn Clusters List (Lista de clústeres), en la consola de Amazon EMR, se muestran todos los clústeres desu cuenta y su región de AWS, incluidos los clústeres terminados. La lista muestra lo siguiente para cada

309

Page 317: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el estado y los detalles del clúster

clúster: el Name (Nombre) y el ID, el Status (Estado), la Creation time (Hora de creación), el Elapsed time(Tiempo transcurrido) desde que se ejecutó el clúster y las Normalized instance hours (horas de instancianormalizadas) que han acumulado todas las instancias EC2 del clúster. Esta lista es el punto de partidapara monitorear el estado de los clústeres. Se ha diseñado para que pueda profundizar hasta los detallesde cada clúster para su análisis y resolución de problemas.

Para ver un resumen abreviado de información del clúster

• Seleccione la flecha abajo situada junto al enlace del clúster bajo Name (Nombre).

La fila del clúster se expande para proporcionar más información sobre el clúster, el hardware, lospasos y las acciones de arranque. Utilice los enlaces de esta sección para examinar los detalles.Por ejemplo, haga clic en un enlace en Steps (Pasos) para obtener acceso a los archivos de registrodel paso, ver el archivo JAR asociado al paso, consultar los trabajos y las tareas del paso y obteneracceso a los archivos de registro.

Para ver el estado detallado del clúster

• Elija el enlace del clúster bajo Name (Nombre) para abrir la página de detalles del clúster. Utilice cadapestaña para ver la información que se describe en la siguiente sección.

Use cada pestaña para la siguiente información:

Tab Información

Resumen Utilice esta pestaña para ver aspectos básicosde la configuración del clúster, como la direcciónURL que se utiliza para las conexiones SSH enel nodo principal, qué aplicaciones de códigoabierto instaló Amazon EMR cuando se creo elclúster, dónde se almacenan los registros enAmazon S3 y qué versión de Amazon EMR seusó para crear el clúster.

Historial de aplicaciones Use esta pestaña para ver detalles de laaplicación YARN. Para los trabajos deSpark, puede consultar información sobre lostrabajos, etapas y ejecutores. Para obtener

310

Page 318: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el estado y los detalles del clúster

Tab Informaciónmás información, consulte Ver el historial deaplicaciones (p. 316).

Monitorización Utilice esta pestaña para ver gráficosque representan indicadores clave delfuncionamiento del clúster durante el períodoque especifique. Puede ver datos de nivel declúster, datos de nivel de nodo e informaciónsobre las operaciones E/S y almacenamiento dedatos.

Hardware Utilice esta pestaña para ver informaciónacerca de los nodos del clúster, incluidos losidentificadores de instancias EC2, nombresDNS, direcciones IP, etc.

Eventos Utilice esta pestaña para ver los registrosde eventos del clúster. Para obtener másinformación, consulte Monitorización de eventosde CloudWatch (p. 325).

Pasos Utilice esta pestaña para ver el estado y obteneracceso a los archivos logs de los pasos emitidos.Para obtener más información acerca de lospasos, consulte Trabajo con pasos utilizando laAWS CLI y la consola (p. 399).

Configuraciones Utilice esta pestaña para ver todos los objetosde configuración personalizados aplicados alclúster. Para obtener más información sobrelas clasificaciones de configuración, consulteConfiguración de aplicaciones en la Guía depublicación de Amazon EMR.

Acciones de arranque Utilice esta pestaña para ver el estado de lasacciones de arranque que ejecuta el clústercuando se lanza. Las acciones de arranque seutilizan para las instalaciones y la configuraciónavanzada del software personalizado. Paraobtener más información, consulte Creaciónde acciones de arranque para instalar softwareadicional (p. 116).

Ver el estado del clúster con la AWS CLILos siguientes ejemplos muestran cómo recuperar detalles del clúster utilizando la AWS CLI. Para obtenermás información sobre los comandos disponibles, consulte la referencia de comandos de la AWS CLIde Amazon EMR. Puede usar el comando describe-cluster para ver detalles de nivel de clúster comoel estado, la configuración de hardware y de software, los ajustes de VPC, las acciones de arranque,los grupos de instancias, etc. El siguiente ejemplo ilustra cómo usar el comando describe-cluster,seguido de ejemplos del comando list-clusters.

311

Page 319: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el estado y los detalles del clúster

Example Ver el estado del clúster

Para utilizar el comando describe-cluster, necesita el ID del clúster. Este ejemplo muestra cómoobtener una lista de los clústeres creados en un intervalo de fechas determinado y cómo usar uno de los IDde clúster devueltos para obtener más información sobre el estado de un determinado clúster.

El siguiente comando describe el clúster j-1K48XXXXXXHCB, que debe sustituirse por el ID del clúster quese desee.

aws emr describe-cluster --cluster-id j-1K48XXXXXXHCB

La salida de este comando es similar a la siguiente:

{ "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1438281058.061, "CreationDateTime": 1438280702.498 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "EmrManagedMasterSecurityGroup": "sg-cXXXXX0", "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2KeyName": "myKey", "Ec2AvailabilityZone": "us-east-1c", "EmrManagedSlaveSecurityGroup": "sg-example" }, "Name": "Development Cluster", "ServiceRole": "EMR_DefaultRole", "Tags": [], "TerminationProtected": false, "ReleaseLabel": "emr-4.0.0", "NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1438281058.101, "CreationDateTime": 1438280702.499 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "Id": "ig-2EEXAMPLEXXP", "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1438281023.879,

312

Page 320: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el estado y los detalles del clúster

"CreationDateTime": 1438280702.499 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "Id": "ig-2A1234567XP", "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "RunningInstanceCount": 1 } ], "Applications": [ { "Version": "1.0.0", "Name": "Hive" }, { "Version": "2.6.0", "Name": "Hadoop" }, { "Version": "0.14.0", "Name": "Pig" }, { "Version": "1.4.1", "Name": "Spark" } ], "BootstrapActions": [], "MasterPublicDnsName": "ec2-X-X-X-X.compute-1.amazonaws.com", "AutoTerminate": false, "Id": "j-jobFlowID", "Configurations": [ { "Properties": { "hadoop.security.groups.cache.secs": "250" }, "Classification": "core-site" }, { "Properties": { "mapreduce.tasktracker.reduce.tasks.maximum": "5", "mapred.tasktracker.map.tasks.maximum": "2", "mapreduce.map.sort.spill.percent": "90" }, "Classification": "mapred-site" }, { "Properties": { "hive.join.emit.interval": "1000", "hive.merge.mapfiles": "true" }, "Classification": "hive-site" } ] }}

313

Page 321: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDepuración de pasos mejorada

Example Mostrar clústeres por fecha de creación

Para recuperar clústeres creados en un intervalo de fechas específico, use el comando list-clusterscon los parámetros --created-after y --created-before.

El siguiente comando muestra todos los clústeres creados entre el 9 de octubre de 2014 y el 12 de octubrede 2014.

aws emr list-clusters --created-after 2014-10-09T00:12:00 --created-before 2014-10-12T00:12:00

Example Mostrar clústeres por estado

Para mostrar clústeres por estado, use el comando list-clusters con el parámetro --cluster-states. Los estados de clúster válidos incluyen: STARTING, BOOTSTRAPPING, RUNNING, WAITING,TERMINATING, TERMINATED y TERMINATED_WITH_ERRORS.

aws emr list-clusters --cluster-states TERMINATED

También puede utilizar los siguientes parámetros de acceso directo para mostrar todos los clústeres conlos estados especificados:

• El parámetro --active filtra los clústeres por los estados STARTING, BOOTSTRAPPING, RUNNING,WAITING o TERMINATING.

• El parámetro --terminated filtra los clústeres por el estado TERMINATED.• El parámetro --failed filtra los clústeres por el estado TERMINATED_WITH_ERRORS.

Los siguientes comandos devuelven el mismo resultado.

aws emr list-clusters --cluster-states TERMINATED

aws emr list-clusters --terminated

Depuración de pasos mejoradaSi un paso de Amazon EMR devuelve un error y envió el trabajo utilizando la operación Step de la API conla versión 5.x o posterior de la AMI, Amazon EMR puede identificar y devolver la causa raíz del error delpaso en algunos casos, junto con el nombre del archivo de registro relevante y una parte del rastro de lapila de la aplicación a través de la API. Por ejemplo, puede identificar los siguientes errores:

• Un error de Hadoop común como, por ejemplo, el directorio de salida ya existe, el directorio de entradano existe o una aplicación se queda sin memoria.

• Errores de Java como, por ejemplo, una aplicación que se ha compilado con una versión incompatiblede Java o se ha ejecutado con una clase principal que no se encuentra.

• Un problema al acceder a objetos almacenados en Amazon S3.

Esta información está disponible utilizando las operaciones DescribeStep y ListSteps de la API. El campoFailureDetails de StepSummary devuelto por dichas operaciones. Para acceder a la información deFailureDetails, utilice la CLI de AWS, consola o SDK de AWS.

Para ver los detalles del error utilizando la consola de AWS

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.

314

Page 322: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDepuración de pasos mejorada

2. Elija Cluster List (Lista de clústeres) y seleccione un clúster.3. Seleccione el icono de flecha junto a cada paso para ver más detalles.

Si el paso ha devuelto un error y Amazon EMR puede identificar la causa raíz, verá los detalles del error.

Para ver los detalles del error utilizando la CLI de AWS

• Para obtener detalles del error de un paso a través de la CLI de AWS, utilice el comando describe-step.

aws emr describe-step –cluster-id j-1K48XXXXXHCB –step-id s-3QM0XXXXXM1W

El resultado tendrá un aspecto similar al siguiente:

{ "Step": { "Status": { "FailureDetails": { "LogFile": "s3://myBucket/logs/j-1K48XXXXXHCB/steps/s-3QM0XXXXXM1W/stderr.gz", "Message": "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory s3://myBucket/logs/beta already exists", "Reason": "Output directory already exists." }, "Timeline": { "EndDateTime": 1469034209.143, "CreationDateTime": 1469033847.105, "StartDateTime": 1469034202.881 }, "State": "FAILED", "StateChangeReason": {} }, "Config": { "Args": [ "wordcount", "s3://myBucket/input/input.txt", "s3://myBucket/logs/beta" ],

315

Page 323: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el historial de aplicaciones

"Jar": "s3://myBucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar", "Properties": {} }, "Id": "s-3QM0XXXXXM1W", "ActionOnFailure": "CONTINUE", "Name": "ExampleJob" }}

Ver el historial de aplicacionesPuede ver los detalles de la aplicación Spark y YARN en la pestaña Application history (Historial deaplicaciones) de la página de detalles de un clúster en la consola. Amazon EMR le permite solucionarproblemas y analizar los trabajos activos y el historial de activos fácilmente.

La pestaña Application history (Historial de aplicaciones) proporciona dos opciones de consulta:

• Acceso de un clic al servidor del historial de Spark persistente – con la versión 5.25.0 o posterior deAmazon EMR, puede elegir el enlace para obtener acceso a la interfaz de usuario del servidor delhistorial de Spark sin configurar un proxy web a través de una conexión SSH. La interfaz de usuariodel servidor del historial de Spark proporciona información detallada sobre las etapas y tareas delprogramador, los tamaños y el uso de memoria de RDD, información del entorno e información sobre losejecutores en ejecución.

• Ver un resumen del historial de aplicaciones – con la versión 5.8.0 o posterior de Amazon EMR, puedever un resumen del historial de aplicaciones en la consola de EMR, incluidas las métricas principalespara las tareas de etapa y los ejecutores. El resumen del historial de aplicaciones está disponible paratodas las aplicaciones YARN. Se proporcionan detalles adicionales para las aplicaciones Spark, peroestos detalles son solo un subconjunto de la información disponible a través de la interfaz de usuario delservidor del historial de Spark.

Temas• Acceso de un clic al servidor del historial de Spark persistente (p. 316)• Ver un resumen del historial de aplicaciones (p. 318)

Acceso de un clic al servidor del historial de Spark persistenteCon las versiones 5.25.0 de Amazon EMR y posteriores, puede conectarse al servidor del historial deSpark persistente desde la página Summary (Resumen) del clúster o desde la pestaña Application history(Historial de aplicaciones) de la consola. El acceso de un clic al servidor del historial de Spark persistenteproporciona los siguientes beneficios:

• Puede analizar y solucionar rápidamente los trabajos de Spark activos y el historial de trabajos sinconfigurar un proxy web a través de una conexión SSH.

• Puede acceder al historial de Spark persistente y a los archivos de registro pertinentes para los clústeresactivos y terminados. Los registros están disponibles durante 30 días desde que finalice la aplicaciónSpark.

Recopilación de registrosPara habilitar el acceso de un clic al servidor del historial de Spark persistente, Amazon EMR recopila dostipos de registros:

• Los registros de eventos de Spark se recopilan en un bucket del sistema EMR. Los registros deeventos se cifran en reposo mediante el cifrado del lado del servidor con claves administradas

316

Page 324: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el historial de aplicaciones

de Amazon S3 (SSE-S3). Si utiliza una subred privada para el clúster, asegúrese de incluir“arn:aws:s3:::prod.MyRegion.appinfo.src/*” en la lista de recursos de la política de AmazonS3 para la subred privada. Para obtener más información, consulte Política de Amazon S3 mínima parasubred privada.

• Los registros de contenedores de YARN se recopilan en un bucket de Amazon S3 propiedad de usted.Debe habilitar el registro para que su clúster acceda a los registros de contenedores de YARN. Paraobtener más información, consulte Configurar el registro de clúster y depuración.

Si necesita deshabilitar esta característica por motivos de privacidad, puede detener el daemon medianteun script de arranque al crear un clúster, como se muestra en el siguiente ejemplo.

aws emr create-cluster --name "Stop SparkUI Support" --release-label emr-5.30.0 --applications Name=Hadoop Name=Spark --ec2-attributes KeyName=keyname --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=TASK,InstanceCount=1,InstanceType=m3.xlarge --use-default-roles --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/run-if,Args=["instance.isMaster=true","echo Stop Spark UI | sudo tee /etc/apppusher/run-apppusher"]

Después de ejecutar este script de arranque, Amazon EMR no recopilará ningún registro de eventos deSpark en el bucket del sistema EMR. No habrá información del historial de aplicaciones disponible enla pestaña Application history (Historial de aplicaciones) y perderá el acceso a la interfaz de usuario delservidor del historial de Spark desde la consola.

Condiciones y limitaciones

El acceso de un clic al servidor del historial de Spark persistente presenta actualmente las siguienteslimitaciones:

• Esta característica solo funciona cuando el directorio de registros de eventos de Spark está en HDFS.De forma predeterminada, Amazon EMR almacena los registros de eventos de Spark en un directorio deHDFS. Si cambia el directorio predeterminado a un sistema de archivos diferente, por ejemplo AmazonS3, esta característica no funcionará.

• Esta función no está disponible actualmente para clústeres de EMR con varios nodos maestros ni paraclústeres de EMR integrados con AWS Lake Formation.

• Para habilitar el acceso de un clic al servidor del historial de Spark persistente, debe tener permiso parala acción DescribeCluster de EMR. Si deniega el permiso de una entidad principal de IAM a estaacción, el cambio de permiso tarda aproximadamente cinco minutos en propagarse.

• Si vuelve a configurar las aplicaciones de Spark en un clúster en ejecución, el historial de aplicacionesno estará disponible a través de la interfaz de usuario del servidor del historial de Spark.

• Para cada cuenta de AWS, el número de interfaces de usuario del servidor del historial de Spark activasno puede ser superior a 50.

• Puede obtener acceso a la interfaz de usuario del servidor del historial de Spark desde las siguientesregiones: EE.UU. Este (Norte de Virginia y Ohio), EE.UU. Oeste (Norte de California y Oregón), Canadá(Central), UE (Fráncfort, Irlanda y Londres) y Asia Pacífico (Mumbai, Seúl, Singapur, Sídney y Tokio).

Obtener acceso al historial de aplicaciones a través de la interfaz de usuario delservidor del historial

En la pestaña Application history (Historial de aplicaciones) o en la página Summary (Resumen) del clústerde la consola de Amazon EMR, elija el enlace Spark history server UI (Interfaz de usuario del servidor delhistorial de Spark).

317

Page 325: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el historial de aplicaciones

La interfaz de usuario del servidor del historial de Spark se abre en una nueva pestaña del navegador. Estainterfaz web muestra la misma información que la interfaz de usuario de Spark HistoryServer de códigoabierto si configura un proxy web a través de una conexión SSH. Para obtener más información, consulteMonitoring and Instrumentation.

Puede ver los registros de contenedor de YARN a través de los enlaces de la interfaz de usuario delservidor del historial de Spark.

Note

Para obtener acceso a los registros de contenedor de YARN desde la interfaz de usuario delservidor del historial de Spark, debe habilitar el registro de Amazon S3 en el clúster. Si el registrono está habilitado, los enlaces a los registros de contenedor de YARN no funcionarán.

Ver un resumen del historial de aplicacionesCon las versiones 5.8.0 y posteriores de Amazon EMR, puede ver un resumen del historial de aplicacionesdesde la pestaña Application history (Historial de aplicaciones) de la consola de Amazon EMR. AmazonEMR conserva el resumen del historial de aplicaciones durante siete días después de que se hayacompletado una solicitud.

La siguiente secuencia muestra cómo desplazarse por los detalles de los trabajos en las aplicaciones deSpark o YARN utilizando la opción Application history (Historial de aplicaciones) en una página de detallesdel clúster. Para ver los detalles del clúster, en la lista Clusters (Clústeres), seleccione el nombre (Name)de un clúster. Para ver información sobre los registros de contenedor de YARN, debe habilitar el registropara el clúster. Para obtener más información, consulte Configurar el registro de clúster y depuración.Para el historial de aplicaciones de Spark, la información proporcionada en la tabla de resumen es soloun subconjunto de la información disponible a través de la interfaz de usuario del servidor del historial deSpark.

En la siguiente pestaña Application history (Historial de aplicaciones) de ejemplo, hay dos filas expandidasque muestran los resúmenes de diagnósticos de dos aplicaciones de Spark diferentes, así como unApplication ID (ID de aplicación) seleccionado para ver detalles adicionales de la aplicación.

En la pestaña Jobs (Trabajos) de los detalles de YARN application (Aplicación de YARN), la descripción deJob 0 (Trabajo 0) está seleccionada para ver los detalles del trabajo 0.

318

Page 326: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer el historial de aplicaciones

En la página de detalles de Job 0 (Trabajo 0), la información sobre las distintas etapas del trabajo estáexpandida y el campo Description (Descripción) de la etapa 1 está seleccionado para mostrar los detallesde la etapa 1.

En la página de detalles de Stage 1 (Etapa 1), se pueden consultar las métricas principales de las tareas ylos ejecutores de la etapa, y se pueden ver los registros de las tareas y los ejecutores mediante enlaces.

319

Page 327: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer archivos de registro

Ver archivos de registroAmazon EMR y Hadoop producen ambos archivos de registro que notifican el estado en el clúster. Deforma predeterminada, están escritos en el nodo principal en el directorio /mnt/var/log/. En función de cómoconfigure el clúster al lanzarlo, estos registros también pueden archivarse en Amazon S3 y pueden servisibles a través de la herramienta de depuración gráfica.

Existen muchos tipos de registros para el nodo principal. Amazon EMR escribe registros de estado deinstancias, pasos y acciones de arranque. Apache Hadoop escribe registros para notificar el procesamientode los trabajos, de las tareas y de los intentos de tareas. Hadoop también guarda registros de susdemonios. Para obtener más información sobre los registros escritos por Hadoop, consulte http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html.

Temas• Ver archivos de registro en el nodo principal (p. 320)• Ver archivos de registro archivados en Amazon S3 (p. 321)• Ver archivos de registro en la herramienta de depuración (p. 323)

Ver archivos de registro en el nodo principalEn la siguiente tabla se enumeran algunos de los archivos de registro que encontrará en el nodo principal.

Ubicación Descripción

/mnt/var/log/bootstrap-actions Los registros escritos durante el procesamiento delas acciones de arranque.

/mnt/var/log/hadoop-state-pusher Los registros escritos por el proceso state pusherde Hadoop.

/mnt/var/log/instance-controller (Amazon EMR4.6.0 y versiones anteriores)

/emr/instance-controller (Amazon EMR 4.7.0 yversiones posteriores)

Registros de controlador de instancia.

/mnt/var/log/instance-state Registros de estado de instancia. Contieneninformación sobre la CPU, el estado de la memoriay los subprocesos del recolector de elementos noutilizados del nodo.

/mnt/var/log/service-nanny (Amazon EMR 4.6.0 yversiones anteriores)

/emr/service-nanny (Amazon EMR 4.7.0 yversiones posteriores)

Los registros escritos por el proceso nanny deservicio.

/mnt/var/log/aplicación Registros específicos de una aplicación como, porejemplo, Hadoop, Spark o Hive.

/mnt/var/log/hadoop/steps/N Registros de paso que contienen información sobreel procesamiento del paso. El valor de N indica elstepId asignado por Amazon EMR. Por ejemplo,un clúster tiene dos pasos: s-1234ABCDEFGHy s-5678IJKLMNOP. El primer paso estáubicado en /mnt/var/log/hadoop/steps/

320

Page 328: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer archivos de registro

Ubicación Descripcións-1234ABCDEFGH/ y el segundo paso en /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/.

Los registros de pasos creados por Amazon EMRson los siguientes.

• controller: información acerca del procesamientodel paso. Si el paso produce un error mientras secarga, puede encontrar la traza de la pila en estelog.

• syslog: describe la ejecución de trabajos deHadoop en este paso.

• stderr: el canal de errores estándar de Hadoopmientras procesa el paso.

• stdout: el canal de salida estándar de Hadoopmientras procesa el paso.

Para ver archivos de registro en el nodo principal

1. Utilice SSH para conectarse al nodo principal como se describe en Conexión al nodo principalutilizando SSH (p. 354).

2. Vaya al directorio que contiene la información del archivo de registro que desea ver. La tabla anteriorofrece una lista de los tipos de archivos de registro que están disponibles y donde los encontrará. Elsiguiente ejemplo muestra el comando para acceder al registro de paso con un ID, s-1234ABCDEFGH.

cd /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/

3. Utilice el visor de archivos que desee para ver el archivo de log. En el siguiente ejemplo se usa elcomando less de Linux para ver el archivo de log controller.

less controller

Ver archivos de registro archivados en Amazon S3De forma predeterminada, los clústeres de Amazon EMR que se lanzan utilizando la consola archivanautomáticamente los archivos de registro en Amazon S3. Puede especificar su propia ruta de registroo bien puede permitir que la consola genere automáticamente una ruta de registro por usted. Para losclústeres que se lanzan con la interfaz de línea de comandos (CLI) o la API, debe configurar el archivadode registros de Amazon S3 manualmente.

Cuando Amazon EMR está configurado para archivar los archivos de registro en Amazon S3, almacena losarchivos en la ubicación de S3 que se haya especificado, en la carpeta /JobFlowId/, donde JobFlowIdes el identificador del clúster.

En la siguiente tabla se enumeran algunos de los archivos de registro que encontrará en Amazon S3.

Ubicación Descripción

/JobFlowId/node/ Los registros de nodo, incluida la acción dearranque, el estado de la instancia y los registrosde aplicación para el nodo. Los registros para cada

321

Page 329: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer archivos de registro

Ubicación Descripciónnodo se almacenan en una carpeta etiquetada conel identificador de la instancia EC2 de ese nodo.

/JobFlowId/node/instanceId/application Los registros creados por cada aplicación odemonio asociado con una aplicación. Por ejemplo,el registro del servidor de Hive se encuentra enJobFlowId/node/instanceId/hive/hive-server.log.

/JobFlowId/steps/N/ Registros de paso que contienen información sobreel procesamiento del paso. El valor de N indica elstepId asignado por Amazon EMR. Por ejemplo,un clúster tiene dos pasos: s-1234ABCDEFGHy s-5678IJKLMNOP. El primer paso estáubicado en /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ y el segundo paso en /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/.

Los registros de pasos creados por Amazon EMRson los siguientes.

• controller: información acerca del procesamientodel paso. Si el paso produce un error mientras secarga, puede encontrar la traza de la pila en estelog.

• syslog: describe la ejecución de trabajos deHadoop en este paso.

• stderr: el canal de errores estándar de Hadoopmientras procesa el paso.

• stdout: el canal de salida estándar de Hadoopmientras procesa el paso.

/JobFlowId/containers Registros de contenedor de aplicaciones. Losregistros para cada aplicación YARN se almacenanen estas ubicaciones.

/JobFlowId/hadoop-mapreduce/ Los registros que contienen información acercade los detalles de configuración y el historial detrabajos de MapReduce.

Para ver los archivos de registro archivados en Amazon S3 mediante la consola

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

2. Abra el bucket de S3 especificado al configurar el clúster para archivar los archivos de registro enAmazon S3.

3. Acceda al archivo de registro que contiene la información que se va a mostrar. La tabla anterior ofreceuna lista de los tipos de archivos de registro que están disponibles y donde los encontrará.

4. Haga doble clic en un archivo de registro para verlo en el navegador.

Si no desea ver los archivos de registro en la consola de Amazon S3, puede descargar los archivos desdeAmazon S3 en el equipo local utilizando una herramienta como el complemento Organizer de Amazon S3para el navegador web Firefox o bien escribir una aplicación para recuperar los objetos desde Amazon S3.

322

Page 330: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer archivos de registro

Para obtener más información, consulte Obtención de objetos en la Guía para desarrolladores de AmazonSimple Storage Service.

Ver archivos de registro en la herramienta de depuraciónAmazon EMR no habilita automáticamente la herramienta de depuración. Debe configurarla al lanzar elclúster.

Para ver los logs de un clúster mediante la consola

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. En la página Cluster List (Lista de clústeres), elija el icono de detalles situado junto al clúster que

desea ver.

Se mostrará la página Cluster Details (Detalles del clúster). En la sección Steps (Pasos), los vínculossituados a la derecha de cada paso muestran los distintos tipos de registros disponibles en el paso.Estos registros los genera Amazon EMR.

3. Para ver una lista de los trabajos de Hadoop asociados a un paso determinado, elija el vínculo ViewJobs (Ver trabajos) situado a la derecha del paso.

4. Para ver una lista de las tareas de Hadoop asociadas a un paso determinado, elija el vínculo ViewTasks (Ver tareas) situado a la derecha del trabajo.

5. Para ver una lista de los intentos que una tarea determinada ha ejecutado al intentar finalizar, elija elvínculo View Attempts (Ver intentos) situado a la derecha de la tarea.

6. Para ver una lista de los registros que se han generado durante un intento de tarea, elija los vínculosstderr, stdout y syslog situados a la derecha del intento de la tarea.

323

Page 331: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer instancias de clúster en Amazon EC2

La herramienta de depuración muestra enlaces a los archivos de registro después de que Amazon EMRcargue los archivos de registro en el bucket de Amazon S3. Dado que los archivos de registro se cargan enAmazon S3 cada cinco minutos, puede tardar algunos minutos en que las cargas de archivo de registro secompleten una vez completo el paso.

Amazon EMR actualiza periódicamente el estado de los trabajos, las tareas y los intentos de tareas deHadoop en la herramienta de depuración. Puede hacer clic en Refresh List (Actualizar lista) en los panelesde depuración para obtener el estado más actualizado de estos elementos.

Ver instancias de clúster en Amazon EC2Para ayudarle a gestionar los recursos, Amazon EC2 le permite asignar metadatos a los recursos en formade etiquetas. Cada etiqueta de Amazon EC2 consta de una clave y un valor. Las etiquetas le permitenclasificar los recursos de Amazon EC2 de diversas maneras: por ejemplo, según su finalidad, propietario oentorno.

Puede buscar y filtrar los recursos en función de las etiquetas. Las etiquetas asignadas a través de sucuenta de AWS solo están disponibles para usted. Otras cuentas que comparte el recurso no pueden versus etiquetas.

Amazon EMR etiqueta automáticamente cada instancia EC2 que lanza con pares clave-valor queidentifican el clúster y el grupo de instancias al que pertenece la instancia. Esto facilita la tarea de filtrarsus instancias EC2 para mostrar, por ejemplo, únicamente aquellas instancias pertenecientes a undeterminado clúster o para mostrar todas las instancias en ejecución actualmente en el grupo de instanciasde tarea. Esto resulta especialmente útil si va a ejecutar varios clústeres simultáneamente o a gestionar ungran número de instancias EC2.

Estos son los pares clave-valor predefinidos que asigna Amazon EMR:

Clave Valor

aws:elasticmapreduce:job-flow-id <identificador-del-flujo-de-trabajo>

aws:elasticmapreduce:instance-group-role <rol-del-grupo>

Los valores se definen adicionalmente de la siguiente manera:

• El <identificador-del-flujo-de-trabajo> es el ID del clúster para el que se aprovisiona la instancia. Apareceen el formato j-XXXXXXXXXXXXX.

• El <rol-del-grupo> es uno de los siguientes valores: master (principal), core (secundario) o task (detareas). Estos valores se corresponden con el grupo de instancias principales, al grupo de instanciassecundarias y al grupo de instancias de tareas.

Puede ver y filtrar por las etiquetas que añade Amazon EMR. Para obtener más información, consulte eltema sobre el uso de etiquetas en la Guía del usuario de Amazon EC2 para instancias de Linux. Dado quelas etiquetas definidas por Amazon EMR son etiquetas del sistema y no se pueden editar o eliminar, lassecciones sobre mostrar y filtrar las etiquetas son las más importantes.

Note

Amazon EMR añade etiquetas a la instancia EC2 cuando su estado se actualiza a ejecución.Si hay un periodo de latencia entre el momento en que la instancia EC2 se aprovisiona y elmomento en que su estado se define en ejecución, las etiquetas establecidas por Amazon EMRno aparecen hasta que se inicia la instancia. Si no ve las etiquetas, espere algunos minutos yactualice la vista.

324

Page 332: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Eventos y métricas de CloudWatchPuede utilizar eventos y métricas para realizar un seguimiento de la actividad y el estado de un clúster deAmazon EMR, visualizar eventos y métricas de un único clúster de forma rápida en la consola de AmazonEMR y visualizar eventos de todos los clústeres de una región. Puede utilizar Eventos de CloudWatch paradefinir la acción que se debe realizar cuando Amazon EMR genera un evento que coincide con un patrónespecificado, así como para monitorizar las métricas mediante CloudWatch.

Los eventos son útiles para monitorizar la incidencia específica dentro de un clúster; por ejemplo, cuandoun clúster cambia de estado desde el inicio a la ejecución. Las métricas son útiles para monitorizar un valorespecífico; por ejemplo, el porcentaje de espacio en disco disponible que utiliza HDFS dentro de un clúster.

Para obtener más información sobre Eventos de CloudWatch, consulte Guía del usuario de AmazonCloudWatch Events. Para obtener más información sobre las métricas de CloudWatch, consulte Uso de lasmétricas de Amazon CloudWatch y Creación de alarmas de Amazon CloudWatch en la Guía del usuario deAmazon CloudWatch.

Temas• Monitorización de eventos de CloudWatch (p. 325)• Monitorización de métricas con CloudWatch (p. 335)

Monitorización de eventos de CloudWatchAmazon EMR realiza un seguimiento de eventos y mantiene información acerca de ellos durante unmáximo de siete días. Los cambios en el estado de clústeres, grupos de instancia, políticas de escaladoautomático y pasos hacen que se registre un evento. Cada evento tiene información como la fecha y lahora en la que se produjo el evento, junto con detalles adicionales sobre el evento como, por ejemplo, elclúster o grupo de instancias afectado.

En la siguiente tabla se muestran eventos de Amazon EMR, junto con el estado o cambio de estadoque indica el evento, la gravedad del evento y los mensajes de eventos. Cada evento se representacomo un objeto JSON que se envía automáticamente a un flujo de eventos. El objeto JSON incluyedetalles adicionales sobre el evento. El objeto JSON es especialmente importante cuando se configuranreglas para el procesamiento de eventos mediante Eventos de CloudWatch porque las reglas buscanasignar patrones en el objeto JSON. Para obtener más información, consulte los temas relacionados conlos Eventos y patrones de eventos y los Eventos de Amazon EMR en la Guía del usuario de AmazonCloudWatch Events.

Eventos en clúster

Estado o cambio de estado Gravedad Mensaje

STARTING INFO Amazon EMR(El clúster de IDdel clúster (nombre declúster) se ha solicitado a lashora y se está creando).

STARTING INFO Note

Sólo se aplicaa clústeres conconfiguración de flotasde instancias y variassubredes seleccionadasdentro de una VPC.

325

Page 333: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensaje(El clúster de Amazon EMR IDdel clúster (nombre declúster) se está creando en lasubred (nombre de subred)en VPC (nombre de VPC) enla zona de disponibilidad (ID dezona de disponibilidad),que se ha elegido a partir de lasopciones de VPC especificadas).

STARTING INFO Note

Sólo se aplicaa clústeres conconfiguración de flotasde instancia y variaszonas de disponibilidadseleccionadas dentro deEC2-Classic.

(El clúster de Amazon EMR IDde clúster (nombre declúster) se está creando enla zona de disponibilidad (ID dezona de disponibilidad),que se ha elegido a partirde las opciones de zona dedisponibilidad especificadas).

RUNNING INFO (El clúster de Amazon EMR IDde clúster (nombre declúster) comenzó a ejecutarpasos a las hora).

WAITING INFO (El clúster de Amazon EMR IDde clúster (nombre declúster) se ha creado a lashora y está listo para utilizarse).

—o bien—

(El clúster de Amazon EMR IDde clúster (nombre declúster) terminó de ejecutartodos los pasos pendientes a lashora).

Note

Un clúster en estadoWAITING podríano obstante estarprocesando trabajos.

326

Page 334: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensaje

TERMINATED La gravedad depende del motivopor el que cambia el estado, tal ycomo se muestra a continuación:

• CRITICAL si el clústerterminó con cualquiera de lossiguientes motivos de cambiode estado: INTERNAL_ERROR,VALIDATION_ERROR,INSTANCE_FAILURE,BOOTSTRAP_FAILURE oSTEP_FAILURE.

• INFO si el clúster terminó concualquiera de los siguientesmotivos de cambio deestado: USER_REQUEST oALL_STEPS_COMPLETED.

(El clúster de Amazon EMRID de clúster (nombrede clúster) ha terminadoa las hora con un motivo demotivo para el cambio deestado:código).

TERMINATED_WITH_ERRORS CRITICAL (El clúster Amazon EMR IDde clúster (nombre declúster) ha terminado conerrores a las hora con un motivode motivo para el cambiode estado:código).

Eventos de flota de instanciasNote

La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 yposteriores de Amazon EMR, excluyendo la 5.0.0 y la 5.0.3.

Estado o cambio de estado Gravedad Mensaje

Desde PROVISIONING hastaWAITING

INFO (El aprovisionamiento para laflota de instancias ID de flotade instancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) estácompleto). (El aprovisionamientose inició a las hora y tardónúmero minutos). (La flotade instancias ahora tiene unacapacidad bajo demanda denúmero y una capacidad de spotde número). (La capacidad bajodemanda de destino era númeroy la capacidad de spot de destinoera número).

Desde WAITING hastaRESIZING

INFO (Un cambio de tamaño para laflota de instancias ID de flotade instancias en el clúster deAmazon EMR ID de clúster

327

Page 335: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensaje(nombre de clúster) seinició a las hora). (La flota deinstancias está cambiando detamaño desde una capacidadbajo demanda de número a undestino de número y desde unacapacidad de spot de número aun destino de número).

Desde RESIZING hastaWAITING

INFO (La operación de cambiode tamaño para la flota deinstancias ID de flota deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) seha completado). (El cambio detamaño se inició a las hora ytardó número minutos). (La flotade instancias ahora tiene unacapacidad bajo demanda denúmero y una capacidad de spotde número). (La capacidad bajodemanda de destino era númeroy la capacidad de spot de destinoera número).

Desde RESIZING hastaWAITING

WARN (La operación de cambiode tamaño para la flota deinstancias ID de flota deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) haalcanzado el tiempo de esperay se ha parado). (El cambio detamaño se inició a las hora y separó tras número minutos). (Laflota de instancias ahora tieneuna capacidad bajo demanda denúmero y una capacidad de spotde número). (La capacidad bajodemanda de destino era númeroy la capacidad de spot de destinoera número).

ARRESTED ERROR (La flota de instancias ID deflota de instancias enel clúster de Amazon EMR IDde clúster (nombre declúster) se arrestó a lashora por el siguiente motivo:descripción del motivo).

328

Page 336: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensaje

RESIZING WARNING (La operación de cambiode tamaño para la flota deinstancias ID de flota deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) estábloqueada por el siguientemotivo: descripción delmotivo).

WAITING o bien RUNNING INFO (Un cambio de tamaño para laflota de instancias ID de flotade instancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) fueiniciado por entidad a lashora).

Eventos de grupo de instancias

Estado o cambio de estado Gravedad Mensaje

Desde RESIZING hastaRUNNING

INFO (La operación de cambiode tamaño para el grupo deinstancias ID de grupo deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) seha completado). (Ahora tieneun recuento de instanciasde número). (El cambio detamaño se inició a las horay tardó número minutos encompletarse).

Desde RUNNING hastaRESIZING

INFO (Un cambio de tamañopara el grupo de instanciasInstanceGroupID en el clústerAmazon EMR ClusterId(nombre de clúster)se inició a las hora). (Estácambiando de tamaño desdeun recuento de instancias denúmero a número).

ARRESTED ERROR (El grupo de instancias ID degrupo de instancias enel clúster de Amazon EMR IDde clúster (nombre declúster) se arrestó a lashora por el siguiente motivo:descripción del motivo).

329

Page 337: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensaje

RESIZING WARNING (La operación de cambiode tamaño para el grupo deinstancias ID de grupo deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) estábloqueada por el siguientemotivo: descripción delmotivo).

Desde RUNNING hastaRESIZING

INFO (Un cambio de tamaño parael grupo de instancias ID degrupo de instancias enel clúster de Amazon EMR IDde clúster (nombre declúster) fue iniciado porentidad a las Time).

Note

Con la versión de Amazon EMR 5.21.0 y posteriores, puede invalidar las configuraciones declúster y especificar clasificaciones de configuración adicionales para cada grupo de instanciasen un clúster en ejecución. Puede hacer esto con la consola de Amazon EMR, la AWS CommandLine Interface (AWS CLI) o el AWS SDK. Para obtener más información, consulte Supplying aConfiguration for an Instance Group in a Running Cluster (Suministro de una configuración paraun grupo de instancias en un clúster en ejecución).

En la siguiente tabla se muestran eventos de Amazon EMR, junto con el estado o cambio de estado queindica el evento, la gravedad del evento y los mensajes de eventos.

Estado o cambio de estado Gravedad Mensaje

RUNNING INFO Una reconfiguración parael grupo de instanciasInstanceGroupID enel Amazon EMR clústerClusterId (ClusterName)fue iniciada por el usuarioa las Time. La versión deconfiguración solicitada es Num.

Desde RECONFIGURING hastaRUNNING

INFO (La operación de cambiode tamaño para el grupo deinstancias ID de grupo deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) se hacompletado). La reconfiguracióncomenzó a las Time y tardóNum minutos en completarse. Laconfiguración actual de la versiónes Num.

Desde RUNNING hastaRECONFIGURING

INFO (Un cambio de tamaño parael grupo de instancias ID de

330

Page 338: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensajegrupo de instancias enel clúster de Amazon EMR IDde clúster (nombre declúster) se inició a las Time).Configura de la versión númeroNum a la versión número Num.

RESIZING INFO Operación de reconfiguraciónhacia la versión de configuraciónNum para el grupo de instanciasInstanceGroupID en elclúster Amazon EMRClusterId(ClusterName) estátemporalmente bloqueadaen Time porque el grupo deinstancias se encuentra enState.

RECONFIGURING INFO Operación de cambio detamaño hacia la cuenta deinstancias Num para el grupo deinstancias InstanceGroupID en el Amazon EMRclústerClusterId (ClusterName)está temporalmente bloqueadaen Time porque el grupo deinstancias se encuentra enState.

RECONFIGURING WARNING La operación de reconfiguraciónpara el grupo de instanciasInstanceGroupID en el clústerAmazon EMR ClusterId(ClusterName) produjo unerror a Time y tardó Num en darerror. La versión de configuraciónde error es Num.

RECONFIGURING INFO Las configuraciones se reviertenal número de versión correctaanterior Numpara el grupo deinstancias InstanceGroupIDen el clúster Amazon EMRClusterId (ClusterName)a las Time. La nueva versión deconfiguración es Num.

331

Page 339: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensaje

Desde RECONFIGURING hastaRUNNING

INFO Las configuraciones se hanrevertido correctamente ala versión anterior realizadacorrectamente Num parael grupo de instanciasInstanceGroupID en el clústerAmazon EMR ClusterId(ClusterName) a las Time. Lanueva versión de configuraciónes Num.

Desde RECONFIGURING hastaARRESTED

CRITICAL No se pudo volver a la versiónanterior realizada correctamenteNum para InstancegroupIDen el clúster Amazon EMRClusterId (ClusterName) alas Time.

Eventos de política de escalado automático

Estado o cambio de estado Gravedad Mensaje

PENDING INFO (Se ha añadido una políticade Auto Scaling al grupo deinstancias ID de grupo deinstancias en el clúster deAmazon EMR ID de clúster(nombre de clúster) a lashora). La política todavía no seha asociado.

—o bien—

(La política de Auto Scaling parael grupo de instancias ID degrupo de instancias enel clúster de Amazon EMR IDde clúster (nombre declúster) se actualizó a lashora). La política todavía no seha asociado.

ATTACHED INFO (La política de Auto Scalingpara el grupo de instancias IDde grupo de instanciasen el clúster de Amazon EMRID de clúster (nombrede clúster) se asoció a lashora).

DETACHED INFO (La política de Auto Scaling parael grupo de instancias ID degrupo de instancias enel clúster de Amazon EMR ID

332

Page 340: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensajede clúster (nombre declúster) se desasoció a lashora).

FAILED ERROR (La política de Auto Scalingpara el grupo de instancias IDde grupo de instanciasen el clúster de Amazon EMRID de clúster (nombrede clúster) no se ha podidoasociar y produjo un error a lashora).

—o bien—

(La política de Auto Scalingpara el grupo de instancias IDde grupo de instanciasen el clúster de Amazon EMRID de clúster (nombrede clúster) no se ha podidodesasociar y produjo un error alas hora).

Eventos de paso

Estado o cambio de estado Gravedad Mensaje

PENDING INFO (El paso ID de paso (nombrede paso) se añadió alclúster de Amazon EMR IDde clúster (nombre declúster) a las hora y estápendiente de ejecución).

CANCEL_PENDING WARN (El paso ID de paso (nombrede paso) en el clúster deAmazon EMR ID de clúster(nombre de clúster) secanceló a las hora y estápendiente de cancelación).

RUNNING INFO (El paso ID de paso (nombrede paso) en el clúster deAmazon EMR ID de clúster(nombre de clúster) seempezó a ejecutar a las hora)

COMPLETED INFO (La ejecución del paso ID depaso (nombre de paso)en el clúster de Amazon EMRID de clúster (nombrede clúster) se completó alas hora). (El paso empezóa ejecutarse a las hora y

333

Page 341: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o cambio de estado Gravedad Mensajetardó número minutos encompletarse).

CANCELLED WARN (La solicitud de cancelaciónse ha realizado correctamentepara el paso de clúster ID depaso (nombre de paso) enel clúster de Amazon EMR IDde clúster (nombre declúster) a las hora y el pasoya está cancelado).

FAILED ERROR (El paso ID de paso (nombrede paso) en el clúster deAmazon EMR ID de clúster(nombre de clúster)produjo un error a las hora).

Visualización de eventos mediante la consola de Amazon EMR

Para cada clúster, puede ver una lista sencilla de eventos en el panel de detalles, que enumera los eventosen orden de aparición descendente. También puede ver todos los eventos de todos los clústeres en unaregión en orden de aparición descendente.

Note

Si no desea que un usuario vea todos los eventos de clústeres de una región,añada una declaración que deniegue permiso ("Effect": "Deny") para la acciónelasticmapreduce:ViewEventsFromAllClustersInConsole a una política asociada alusuario.

Para ver eventos de todos los clústeres de una región

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Events (Eventos).

Para ver eventos para un clúster determinado

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Cluster List (Lista de clústeres), seleccione un clúster y, a continuación, elija View details (Ver

detalles).3. Elija Events (Eventos) en el panel de detalles del clúster.

334

Page 342: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Creación de reglas para los eventos de Amazon EMR mediante CloudWatch

Amazon EMR envía eventos automáticamente a un flujo de eventos de CloudWatch. Puede crear reglasque asignen eventos de acuerdo con un patrón especificado y dirijan los eventos a destinos para tomarmedidas, por ejemplo, enviar una notificación por correo electrónico. Los patrones se asocian al objetoJSON del evento. Para obtener más información sobre los detalles de eventos de Amazon EMR, consulteel tema relacionado con los eventos de Amazon EMR en la Guía del usuario de Amazon CloudWatchEvents.

Para obtener información acerca de la configuración de reglas de eventos de CloudWatch, consulteCreación de una regla de CloudWatch que se activa en función de un evento.

Monitorización de métricas con CloudWatchLas métricas se actualizan cada cinco minutos y se recogen automáticamente y se envían a CloudWatchpor cada clúster de EMR. Este intervalo no se puede configurar. No se aplican cargos por las métricas deAmazon EMR notificadas en CloudWatch. Las métricas se archivan durante dos semanas; tras las cuales,los datos se descartan.

¿Cómo utilizo las métricas de Amazon EMR?

Las métricas mostradas por Amazon EMR proporcionan información que puede analizar de diferentesmaneras. En la siguiente tabla se indican algunos usos frecuentes de las métricas. Se trata de sugerenciasque puede usar como punto de partida y no de una lista completa. Para obtener una lista completade las métricas notificadas por Amazon EMR, consulte Métricas notificadas por Amazon EMR enCloudWatch (p. 339).

¿Cómo? Métricas relevantes

Realizar un seguimiento del progreso de mi clúster Consulte las métricas RunningMapTasks,RemainingMapTasks, RunningReduceTasks yRemainingReduceTasks.

Detectar clústeres que están inactivos La métrica IsIdle realiza un seguimiento de siel clúster está disponible, pero actualmente noestá ejecutando ninguna tarea. Puede configuraruna alarma para que se active cuando el clúster

335

Page 343: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

¿Cómo? Métricas relevanteshaya estado inactivo durante un periodo de tiempodeterminado, como, por ejemplo, treinta minutos.

Detectar si un nodo se queda sin espacio dealmacenamiento

La métrica HDFSUtilization es el porcentajede espacio en disco que se utiliza actualmente. Siesto supera un nivel aceptable para su aplicación,como, por ejemplo, el 80% de la capacidadutilizada, es posible que tenga que cambiarel tamaño de su clúster y añadir más nodossecundarios.

Acceso a las métricas de CloudWatch

Existen muchas formas de obtener acceso a las métricas que Amazon EMR envía a CloudWatch. Puedeverlas a través de la consola de Amazon EMR o de la consola de CloudWatch, y también puede obteneracceso a ellas a través de la CLI de CloudWatch o la API de CloudWatch. Los siguientes procedimientos lemuestran cómo obtener acceso a las métricas a través de estas herramientas.

Para ver métricas en la consola de Amazon EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Para ver las métricas de un clúster, seleccione un clúster para mostrar el panel Summary (Resumen).3. Elija Monitoring (Monitorización) para ver información sobre dicho clúster. Elija cualquiera de las

pestañas denominadas Cluster Status (Estado del clúster), Map/Reduce, Node Status (Estado delnodo), IO (E/S) o HBase para cargar los informes acerca del progreso y el estado del clúster.

4. Después de elegir una métrica que ver, puede seleccionar un tamaño de gráfico. Edite los camposStart (Inicio) y End (Finalización) para filtrar las métricas según un marco temporal específico.

Para ver métricas en la consola de CloudWatch

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, elija EMR.3. Desplácese hacia abajo hasta la métrica que desea representar gráficamente. Puede buscar el

identificador del clúster que desea monitorizar.

336

Page 344: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

4. Abra una métrica para mostrar el gráfico.

337

Page 345: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Para obtener acceso a las métricas desde la CLI de CloudWatch

• Llame a mon-get-stats. Para obtener más información, consulte la Guía del usuario de AmazonCloudWatch.

Para obtener acceso a las métricas desde la API de CloudWatch

• Llame a GetMetricStatistics. Para obtener más información, consulte Amazon CloudWatch APIReference.

Configurar alarmas de métricas

Amazon EMR envía métricas a CloudWatch, lo que significa que puede utilizar CloudWatch paraestablecer alarmas en las métricas de Amazon EMR. Puede, por ejemplo, configurar una alarma enCloudWatch para enviar un correo electrónico siempre que el uso de HDFS supere el 80%.

Los siguientes temas ofrecen información general de alto nivel sobre cómo definir alarmas medianteCloudWatch. Para obtener instrucciones detalladas, consulte el tema relacionado con la creación o ediciónde una alarma de CloudWatch en la Guía del usuario de Amazon CloudWatch.

338

Page 346: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Establecer alarmas utilizando la consola de CloudWatch

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. Elija Create Alarm. Esto lanza el Create Alarm Wizard (Asistente de creación de alarmas).3. Elija EMR Metrics (Métricas de EMR) y desplácese a través de las métricas de Amazon EMR para

localizar la métrica donde desea colocar una alarma. Una forma sencilla de mostrar las métricas deAmazon EMR en este cuadro de diálogo consiste en buscar el identificador de su clúster. Seleccionela métrica para crear una alarma y elija Next (Siguiente).

4. Rellene los valores Name (Nombre), Description (Descripción), Threshold (Umbral) y Time (Hora) de lamétrica.

5. Si desea que CloudWatch le envíe un correo electrónico cuando se alcance el estado de la alarma,en el campo Whenever this alarm (Siempre que esta alarma), elija State is ALARM (El estado esALARM). En Send notification to: (Enviar notificación a), seleccione un tema de SNS existente. Si eligeCreate topic (Crear tema), puede definir el nombre y las direcciones de correo electrónico de una listanueva de suscripción de correo electrónico. Esta lista se guarda y aparece en el campo para futurasalarmas.

Note

Si utiliza Create topic para crear un nuevo tema de Amazon SNS, debe verificar lasdirecciones de correo electrónico para que reciban notificaciones. Los correos electrónicossolo se envían cuando la alarma entra en estado de alarma. Si este cambio en el estado dela alarma se produce antes de que se verifiquen las direcciones de correo electrónico, noreciben una notificación.

6. En este momento, la pantalla Define Alarm (Definir alarma) le ofrece la oportunidad de revisar laalarma que está a punto de crear. Elija Create Alarm.

Note

Para obtener más información sobre cómo definir alarmas con la consola de CloudWatch,consulte el tema relacionado con la creación de alarmas que envían correo electrónico en la Guíadel usuario de Amazon CloudWatch.

Para configurar una alarma mediante la API de CloudWatch

• Llame a mon-put-metric-alarm. Para obtener más información, consulte Guía del usuario deAmazon CloudWatch.

Para configurar una alarma mediante la API de CloudWatch

• Llame a PutMetricAlarm. Para obtener más información, consulte Amazon CloudWatch APIReference.

Métricas notificadas por Amazon EMR en CloudWatch

La siguiente tabla muestra todas las métricas que Amazon EMR notifica en la consola y envía aCloudWatch.

Métricas de Amazon EMR

Amazon EMR envía datos de varias métricas a CloudWatch. Todos los clústeres de Amazon EMR envíanautomáticamente métricas en intervalos de cinco minutos. Las métricas se archivan durante dos semanas;después de ese periodo, los datos se descartan.

El espacio de nombres de AWS/ElasticMapReduce incluye las siguientes métricas.

339

Page 347: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Note

Amazon EMR obtiene las métricas de un clúster. Si un clúster deja de estar disponible, no seregistra ninguna métrica hasta que el clúster vuelve a estar disponible.

Están disponibles las siguientes métricas para los clústeres que ejecutan las versiones 2.x de Hadoop.

Métrica Descripción

Estado del clúster

IsIdle Indica que un clúster ya no está funcionando, pero sigue activo yacumulando cargos. Se establece en 1 si no se ejecuta ningunatarea ni ningún trabajo; en caso contrario, se establece en0. Este valor se comprueba a intervalos de cinco minutos, yun valor de 1 indica que el clúster estaba inactivo cuando secomprobó, no que estuvo inactivo durante los cinco minutos.Para evitar falsos positivos, debe activar una alarma cuandoeste valor sea 1 durante más de una comprobación consecutivade cinco minutos. Por ejemplo, puede activar una alarma cuandoeste valor sea 1 durante treinta minutos o más.

Caso de uso: monitorizar el rendimiento del clúster

Unidades: booleano

ContainerAllocated El número de contenedores de recursos asignados porResourceManager.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ContainerReserved El número de contenedores reservados.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ContainerPending El número de contenedores en la cola que aún no se hanasignado.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ContainerPendingRatio La proporción entre contenedores pendientes y contenedoresasignados (ContainerPendingRatio = ContainerPending /ContainerAllocated). Si ContainerAllocated = 0, entoncesContainerPendingRatio = ContainerPending. El valor deContainerPendingRatio representa un número, no un porcentaje.Este valor es útil para escalar recursos del clúster en función delcomportamiento de asignación de contenedores.

Unidades: recuento

AppsCompleted El número de aplicaciones enviadas a YARN que se hancompletado.

Caso de uso: monitorizar el progreso del clúster

340

Page 348: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica DescripciónUnidades: recuento

AppsFailed El número de aplicaciones enviadas a YARN que no se hanpodido completar.

Caso de uso: monitorizar el progreso del clúster, monitorizar elestado del clúster

Unidades: recuento

AppsKilled El número de aplicaciones enviadas a YARN que se hancancelado.

Caso de uso: monitorizar el progreso del clúster, monitorizar elestado del clúster

Unidades: recuento

AppsPending El número de aplicaciones enviadas a YARN que están enestado pendiente.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

AppsRunning El número de aplicaciones enviadas a YARN que se estánejecutando.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

AppsSubmitted El número de aplicaciones enviadas a YARN.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

Estado del nodo

CoreNodesRunning El número de nodos secundarios en funcionamiento. Los puntosde datos de esta métrica solo se registran cuando existe ungrupo de instancias correspondiente.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

CoreNodesPending El número de nodos secundarios en espera de ser asignados.Puede que no todos los nodos secundarios solicitados esténdisponibles inmediatamente; esta métrica registra las solicitudespendientes. Los puntos de datos de esta métrica solo seregistran cuando existe un grupo de instancias correspondiente.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

341

Page 349: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

LiveDataNodes El porcentaje de nodos de datos que reciben trabajo de Hadoop.

Caso de uso: monitorizar el estado del clúster

Unidades: porcentaje

MRTotalNodes El número de nodos actualmente disponibles paratrabajos de MapReduce. Equivalente a la métrica YARNmapred.resourcemanager.TotalNodes.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MRActiveNodes El número de nodos que se están ejecutando actualmente entareas o trabajos de MapReduce. Equivalente a la métrica YARNmapred.resourcemanager.NoOfActiveNodes.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MRLostNodes El número de nodos asignados a MapReduce que se hanmarcado con el estado LOST. Equivalente a la métrica YARNmapred.resourcemanager.NoOfLostNodes.

Caso de uso: monitorizar el estado del clúster, monitorizar elprogreso del clúster

Unidades: recuento

MRUnhealthyNodes El número de nodos disponibles para trabajos de MapReducemarcados con el estado UNHEALTHY. Equivalente a la métricaYARN mapred.resourcemanager.NoOfUnhealthyNodes.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MRDecommissionedNodes El número de nodos asignados a aplicaciones deMapReduce que se han marcado con el estadoDECOMMISSIONED. Equivalente a la métrica YARNmapred.resourcemanager.NoOfDecommissionedNodes.

Caso de uso: monitorizar el estado del clúster, monitorizar elprogreso del clúster

Unidades: recuento

MRRebootedNodes El número de nodos disponibles parea MapReduceque se han reiniciado y marcado con el estadoREBOOTED. Equivalente a la métrica YARNmapred.resourcemanager.NoOfRebootedNodes.

Caso de uso: monitorizar el estado del clúster, monitorizar elprogreso del clúster

Unidades: recuento

342

Page 350: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

MultiMasterInstanceGroupNodesRunningEl número de nodos principales en ejecución.

Caso de uso: monitorizar errores y sustituciones del nodoprincipal

Unidades: recuento

MultiMasterInstanceGroupNodesRunningPercentageEl porcentaje de nodos principales que se están ejecutando porencima del recuento de instancias del nodo principal solicitadas.

Caso de uso: monitorizar errores y sustituciones del nodoprincipal

Unidades: porcentaje

MultiMasterInstanceGroupNodesRequestedEl número de nodos principales solicitados.

Caso de uso: monitorizar errores y sustituciones del nodoprincipal

Unidades: recuento

E/S

S3BytesWritten El número de bytes escritos en Amazon S3.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

S3BytesRead El número de bytes leídos de Amazon S3.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

HDFSUtilization El porcentaje de almacenamiento HDFS usado actualmente.

Caso de uso: analizar el rendimiento del clúster

Unidades: porcentaje

HDFSBytesRead El número de bytes leídos de HDFS. Esta métrica solo añadetrabajos de MapReduce y no se aplica a otras cargas de trabajode EMR.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

343

Page 351: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

HDFSBytesWritten El número de bytes escritos en HDFS. Esta métrica solo añadetrabajos de MapReduce y no se aplica a otras cargas de trabajode EMR.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

MissingBlocks El número de bloques en los que HDFS no tiene réplicas.Pueden tratarse de bloques dañados.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

CorruptBlocks El número de bloques que HDFS registra como dañados.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

TotalLoad El número total de transferencias de datos simultáneas,

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

MemoryTotalMB La cantidad de memoria total del clúster.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MemoryReservedMB La cantidad de memoria reservada.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MemoryAvailableMB La cantidad de memoria disponible para asignar.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

YARNMemoryAvailablePercentage El porcentaje de memoria restante disponible para YARN(YARNMemoryAvailablePercentage = MemoryAvailableMB /MemoryTotalMB). Este valor es útil para escalar recursos delclúster en función del uso de memoria de YARN.

Unidades: porcentaje

MemoryAllocatedMB La cantidad de memoria asignada al clúster.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

344

Page 352: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

PendingDeletionBlocks El número de bloques marcados para eliminación.

Caso de uso: monitorizar el progreso del clúster, monitorizar elestado del clúster

Unidades: recuento

UnderReplicatedBlocks El número de bloques que necesitan replicarse una o variasveces.

Caso de uso: monitorizar el progreso del clúster, monitorizar elestado del clúster

Unidades: recuento

DfsPendingReplicationBlocks El estado de replicación del bloque: bloques que se estánreplicando, antigüedad de las solicitudes de replicación ysolicitudes replicadas correctamente.

Caso de uso: monitorizar el progreso del clúster, monitorizar elestado del clúster

Unidades: recuento

CapacityRemainingGB La cantidad de capacidad de disco HDFS restante.

Caso de uso: monitorizar el progreso del clúster, monitorizar elestado del clúster

Unidades: recuento

HBase

HbaseBackupFailed Si la última copia de seguridad produjo un error. Estáestablecido en 0 de forma predeterminada y se actualiza a 1 siel intento de copia de seguridad anterior produjo un error. Estamétrica solo se registra para los clústers HBase.

Caso de uso: Monitorizar copias de seguridad de HBase

Unidades: recuento

MostRecentBackupDuration La cantidad de tiempo que tarda en completarse lacopia de seguridad anterior. Esta métrica se estableceindependientemente de si la última copia de seguridad se realizócorrectamente o produjo un error. Mientras la copia de seguridadestá en curso, esta métrica devuelve el número de minutos trasel inicio de la copia de seguridad. Esta métrica solo se registrapara los clústers HBase.

Caso de uso: Monitorizar copias de seguridad de HBase

Unidades: minutos

345

Page 353: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

TimeSinceLastSuccessfulBackup El número de minutos que han transcurrido desde que la últimacopia de seguridad de HBase correcta se inició en el clúster.Esta métrica solo se registra para los clústers HBase.

Caso de uso: Monitorizar copias de seguridad de HBase

Unidades: minutos

A continuación se indican las métricas de Hadoop 1:

Métrica Descripción

Estado del clúster

IsIdle Indica que un clúster ya no está funcionando, pero sigue activo yacumulando cargos. Se establece en 1 si no se ejecuta ningunatarea ni ningún trabajo; en caso contrario, se establece en0. Este valor se comprueba a intervalos de cinco minutos, yun valor de 1 indica que el clúster estaba inactivo cuando secomprobó, no que estuvo inactivo durante los cinco minutos.Para evitar falsos positivos, debe activar una alarma cuandoeste valor sea 1 durante más de una comprobación consecutivade cinco minutos. Por ejemplo, puede activar una alarma cuandoeste valor sea 1 durante treinta minutos o más.

Caso de uso: monitorizar el rendimiento del clúster

Unidades: booleano

JobsRunning El número de trabajos del clúster que se encuentranactualmente en ejecución.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

JobsFailed El número de trabajos del clúster que han producido un error.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

Map/Reduce

MapTasksRunning Número de tareas de asignación en ejecución de cada trabajo.Si tiene un programador instalado y varios trabajos en ejecución,se generan varios gráficos.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MapTasksRemaining Número de tareas de asignación pendientes de cada trabajo. Sitiene un programador instalado y varios trabajos en ejecución,se generan varios gráficos. Una tarea de asignación pendiente

346

Page 354: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripciónes aquella que no tiene ninguno de los siguientes estados:Running, Killed o Completed.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MapSlotsOpen La capacidad de la tarea de asignación no utilizada. Se calculacomo el número máximo de tareas de asignación de un clústerdeterminado menos el número total de tareas de asignación quese están ejecutando actualmente en el clúster.

Caso de uso: analizar el rendimiento del clúster

Unidades: recuento

RemainingMapTasksPerSlot La proporción entre el total de tareas de asignación pendientes yel total de slots de asignación disponibles en el clúster.

Caso de uso: analizar el rendimiento del clúster

Unidades: proporción

ReduceTasksRunning Número de tareas de reducción en ejecución de cada trabajo. Sitiene un programador instalado y varios trabajos en ejecución,se generan varios gráficos.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ReduceTasksRemaining Número de tareas de reducción pendientes de cada trabajo. Sitiene un programador instalado y varios trabajos en ejecución,se generan varios gráficos.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ReduceSlotsOpen La capacidad de la tarea de reducción no utilizada. Se calculacomo la capacidad máxima de la tarea de reducción de unclúster determinado menos el número de tareas de reducciónque se están ejecutando actualmente en el clúster.

Caso de uso: analizar el rendimiento del clúster

Unidades: recuento

Estado del nodo

CoreNodesRunning El número de nodos secundarios en funcionamiento. Los puntosde datos de esta métrica solo se registran cuando existe ungrupo de instancias correspondiente.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

347

Page 355: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

CoreNodesPending El número de nodos secundarios en espera de ser asignados.Puede que no todos los nodos secundarios solicitados esténdisponibles inmediatamente; esta métrica registra las solicitudespendientes. Los puntos de datos de esta métrica solo seregistran cuando existe un grupo de instancias correspondiente.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

LiveDataNodes El porcentaje de nodos de datos que reciben trabajo de Hadoop.

Caso de uso: monitorizar el estado del clúster

Unidades: porcentaje

TaskNodesRunning El número de nodos de tareas en funcionamiento. Los puntos dedatos de esta métrica solo se registran cuando existe un grupode instancias correspondiente.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

TaskNodesPending El número de nodos de tareas en espera de ser asignados.Puede que no todos los nodos de tareas solicitados esténdisponibles inmediatamente; esta métrica registra las solicitudespendientes. Los puntos de datos de esta métrica solo seregistran cuando existe un grupo de instancias correspondiente.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

LiveTaskTrackers El porcentaje de rastreadores de tareas que están operativos.

Caso de uso: monitorizar el estado del clúster

Unidades: porcentaje

E/S

S3BytesWritten El número de bytes escritos en Amazon S3. Esta métrica soloañade trabajos de MapReduce y no se aplica a otras cargas detrabajo de EMR.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

348

Page 356: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

S3BytesRead El número de bytes leídos de Amazon S3. Esta métrica soloañade trabajos de MapReduce y no se aplica a otras cargas detrabajo de EMR.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

HDFSUtilization El porcentaje de almacenamiento HDFS usado actualmente.

Caso de uso: analizar el rendimiento del clúster

Unidades: porcentaje

HDFSBytesRead El número de bytes leídos de HDFS.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

HDFSBytesWritten El número de bytes escritos en HDFS.

Caso de uso: analizar el rendimiento del clúster, monitorizar elprogreso del clúster

Unidades: recuento

MissingBlocks El número de bloques en los que HDFS no tiene réplicas.Pueden tratarse de bloques dañados.

Caso de uso: monitorizar el estado del clúster

Unidades: recuento

TotalLoad Número total actual de lectores y escritores registrados portodos los DataNodes de un clúster.

Caso de uso: Diagnosticar en qué medida un nivel elevado deE/S podría estar contribuyendo a reducir el rendimiento en laejecución de trabajos. Los nodos de procesos de trabajo queejecutan el demonio DataNode también deben llevar a cabotareas de mapeo y reducción. Valores sistemáticamente altosde TotalLoad durante un tiempo prolongado pueden indicarque un nivel elevado de E/S podría ser uno de los factores queestá empeorando el rendimiento. Los picos ocasionales en estevalor son normales y no necesariamente son indicativos de unproblema.

Unidades: recuento

HBase

349

Page 357: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

BackupFailed Si la última copia de seguridad produjo un error. Estáestablecido en 0 de forma predeterminada y se actualiza a 1 siel intento de copia de seguridad anterior produjo un error. Estamétrica solo se registra para los clústers HBase.

Caso de uso: Monitorizar copias de seguridad de HBase

Unidades: recuento

MostRecentBackupDuration La cantidad de tiempo que tarda en completarse lacopia de seguridad anterior. Esta métrica se estableceindependientemente de si la última copia de seguridad se realizócorrectamente o produjo un error. Mientras la copia de seguridadestá en curso, esta métrica devuelve el número de minutos trasel inicio de la copia de seguridad. Esta métrica solo se registrapara los clústers HBase.

Caso de uso: Monitorizar copias de seguridad de HBase

Unidades: minutos

TimeSinceLastSuccessfulBackup El número de minutos que han transcurrido desde que la últimacopia de seguridad de HBase correcta se inició en el clúster.Esta métrica solo se registra para los clústers HBase.

Caso de uso: Monitorizar copias de seguridad de HBase

Unidades: minutos

Métricas de capacidad del clúster

Las siguientes métricas indican la capacidad actual o prevista de un clúster. Estas métricas solo estándisponibles cuando el escalado administrado está habilitado. Para los clústeres compuestos por flotas deinstancias, las métricas de capacidad del clúster se miden en Units. Para los clústeres compuestos porgrupos de instancias, las métricas de capacidad del clúster se miden en Nodes o VCPU en función del tipode unidad utilizado en la política de escalado administrado. Para obtener más información, consulte Usodel escalado administrado por EMR en Amazon EMR en la Guía de administración de Amazon EMR.

Métrica Descripción

• TotalUnitsRequested

• TotalNodesRequested

• TotalVCPURequested

El número total previsto de unidades, nodos o vCPU en unclúster según lo determine el escalado administrado.

Unidades: recuento

• TotalUnitsRunning

• TotalNodesRunning

• TotalVCPURunning

El número total actual de unidades, nodos o vCPU disponiblesen un clúster en ejecución. Cuando se solicita un cambio detamaño del clúster, esta métrica se actualizará después deagregar o quitar las nuevas instancias del clúster.

Unidades: recuento

• CoreUnitsRequested

• CoreNodesRequested

• CoreVCPURequested

El número previsto de unidades, nodos o vCPU CORE en unclúster según lo determine el escalado administrado.

Unidades: recuento

350

Page 358: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer métricas de aplicaciones de clúster con Ganglia

Métrica Descripción

• CoreUnitsRunning

• CoreNodesRunning

• CoreVCPURunning

El número actual de unidades, nodos o vCPU CORE que seejecutan en un clúster.

Unidades: recuento

• TaskUnitsRequested

• TaskNodesRequested

• TaskVCPURequested

El número previsto de unidades, nodos o vCPU TASK en unclúster según lo determine el escalado administrado.

Unidades: recuento

• TaskUnitsRunning

• TaskNodesRunning

• TaskVCPURunning

El número actual de unidades, nodos o vCPU TASK que seejecutan en un clúster.

Unidades: recuento

Dimensiones de métricas de Amazon EMR

Los datos de Amazon EMR se pueden filtrar mediante alguna de las dimensiones de la tabla siguiente.

Dimensión Descripción

JobFlowId El mismo que el ID del clúster, que es un identificador únicode un clúster con el formato j-XXXXXXXXXXXXX. Puedeencontrar este valor haciendo clic en el clúster en la consolade Amazon EMR.

JobId El identificador de un trabajo de un clúster. Puede utilizarlopara filtrar las métricas devueltas desde un clúster hasta lasque se aplican a un solo trabajo dentro del clúster. JobIdtiene el formato job_XXXXXXXXXXXX_XXXX.

Ver métricas de aplicaciones de clúster con GangliaGanglia está disponible con Amazon EMR versión 4.2 y superiores. Ganglia es un proyecto de códigoque es un sistema distribuido y escalable diseñado para monitorizar clústeres y redes al mismo tiempoque minimiza el impacto en su rendimiento. Al habilitar Ganglia en su clúster, puede generar informes yver el rendimiento del clúster en su conjunto, además de inspeccionar el rendimiento de cada una de lasinstancias de nodo individuales. Ganglia también está configurado para adquirir y visualizar las métricasde Hadoop y Spark. Para obtener más información, consulte Ganglia en la Guía de publicación de AmazonEMR.

Registro de llamadas a la API de Amazon EMR enAWS CloudTrailAmazon EMR está integrado con AWS CloudTrail, un servicio que proporciona un registro de las accionesrealizadas por un usuario, un rol o un servicio de AWS en Amazon EMR. CloudTrail captura todas lasllamadas a la API de Amazon EMR como eventos. Las llamadas capturadas incluyen las llamadasrealizadas desde la consola de Amazon EMR y las llamadas de código a las operaciones de la API deAmazon EMR. Si crea un registro de seguimiento, puede habilitar la entrega continua de eventos deCloudTrail a un bucket de Amazon S3, incluidos los eventos de Amazon EMR. Si no configura un registrode seguimiento, puede ver los eventos más recientes en la consola de CloudTrail en el Event history(Historial de eventos). Mediante la información que recopila CloudTrail, se puede determinar la solicitud

351

Page 359: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónRegistro de llamadas a la API de

Amazon EMR en AWS CloudTrail

que se envió a Amazon EMR, la dirección IP desde la que se realizó la solicitud, quién la realizó, cuándo larealizó y los detalles adicionales.

Para obtener más información sobre CloudTrail, consulte la AWS CloudTrail User Guide.

Información de Amazon EMR en CloudTrailCloudTrail se habilita en una cuenta de AWS al crearla. Cuando se produce una actividad en AmazonEMR, dicha actividad se registra en un evento de CloudTrail junto con los eventos de los demás serviciosde AWS en el Event history (Historial de eventos). Puede ver, buscar y descargar los últimos eventos dela cuenta de AWS. Para obtener más información, consulte Visualización de eventos con el historial deeventos de CloudTrail.

Para mantener un registro continuo de los eventos de la cuenta de AWS, incluidos los eventos de AmazonEMR, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviar archivos deregistro a un bucket de Amazon S3. De forma predeterminada, cuando se crea un registro de seguimientoen la consola, este se aplica a todas las regiones de AWS. El registro de seguimiento registra los eventosde todas las regiones de la partición de AWS y envía los archivos de registro al bucket de Amazon S3especificado. También puede configurar otros servicios de AWS para analizar y actuar en función de losdatos de eventos recopilados en los registros de CloudTrail. Para obtener más información, consulte lossiguientes temas:

• Introducción a la creación de registros de seguimiento• Servicios e integraciones compatibles con CloudTrail• Configuración de notificaciones de Amazon SNS para CloudTrail• Recibir archivos de registro de CloudTrail de varias regiones y Recepción de archivos de registro de

CloudTrail de varias cuentas

Todas las acciones de Amazon EMR las registra CloudTrail y están documentadas en la Amazon EMR APIReference. Por ejemplo, las llamadas a las acciones RunJobFlow, ListCluster y DescribeClustergeneran entradas en los archivos de registro de CloudTrail.

Cada entrada de registro o evento contiene información acerca de quién generó la solicitud. La informaciónde identidad del usuario le ayuda a determinar lo siguiente:

• Si la solicitud se realizó con credenciales de usuario raíz o de AWS Identity and Access Management(IAM).

• Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.• Si la solicitud la realizó otro servicio de AWS.

Para obtener más información, consulte el elemento userIdentity de CloudTrail.

Ejemplo: Entradas de archivos de log de Amazon EMRUn registro de seguimiento es una configuración que permite la entrega de eventos como archivos deregistro al bucket de Amazon S3 que se especifique. Los archivos de registro de CloudTrail contienenuna o varias entradas de registro. Un evento representa una única solicitud de cualquier origen e incluyeinformación sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud,etcétera. Los archivos de registro de CloudTrail no están un rastro de la pila ordenada de las llamadas a laAPI públicas, por lo que no aparecen en ningún orden específico.

En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail que ilustra la acciónRunJobFlow.

{

352

Page 360: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConectar al clúster

"Records": [ { "eventVersion":"1.01", "userIdentity":{ "type":"IAMUser", "principalId":"EX_PRINCIPAL_ID", "arn":"arn:aws:iam::123456789012:user/temporary-user-xx-7M", "accountId":"123456789012", "userName":"temporary-user-xx-7M" }, "eventTime":"2018-03-31T17:59:21Z", "eventSource":"elasticmapreduce.amazonaws.com", "eventName":"RunJobFlow", "awsRegion":"us-west-2", "sourceIPAddress":"192.0.2.1", "userAgent":"aws-sdk-java/unknown-version Linux/xx Java_HotSpot(TM)_64-Bit_Server_VM/xx", "requestParameters":{ "tags":[ { "value":"prod", "key":"domain" }, { "value":"us-west-2", "key":"realm" }, { "value":"VERIFICATION", "key":"executionType" } ], "instances":{ "slaveInstanceType":"m5.xlarge", "ec2KeyName":"emr-integtest", "instanceCount":1, "masterInstanceType":"m5.xlarge", "keepJobFlowAliveWhenNoSteps":true, "terminationProtected":false }, "visibleToAllUsers":false, "name":"MyCluster", "ReleaseLabel":"emr-5.16.0" }, "responseElements":{ "jobFlowId":"j-2WDJCGEG4E6AJ" }, "requestID":"2f482daf-b8fe-11e3-89e7-75a3d0e071c5", "eventID":"b348a38d-f744-4097-8b2a-e68c9b424698" }, ...additional entries ]}

Conectar al clústerCuando ejecute un clúster de Amazon EMR, a menudo lo único que tendrá que hacer es ejecutar unaaplicación para analizar los datos y, a continuación, recopilar la salida desde un bucket de Amazon S3.En otras ocasiones, es posible que desee interactuar con el nodo principal mientras que el clúster se estáejecutando. Por ejemplo, es posible que desee conectar con el nodo principal para ejecutar consultasinteractivas, comprobar archivos de registro, depurar un problema con el clúster, monitorizar el rendimiento

353

Page 361: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión al nodo principal utilizando SSH

mediante una aplicación como Ganglia que se ejecuta en el nodo principal, etc. Las secciones siguientesdescriben técnicas que puede utilizar para conectarse al nodo principal.

En un clúster de EMR, el nodo principal es una instancia Amazon EC2 que coordina las instancias EC2que se ejecutan como nodos secundarios y de tareas. El nodo principal expone un nombre de DNS públicaque puede utilizar para conectarse al mismo. De forma predeterminada, Amazon EMR crea reglas degrupo de seguridad para el nodo principal, los nodos secundarios y los nodos de tareas que determinancómo se obtiene acceso a los nodos.

Note

Puede conectarse al nodo principal solo mientras se está ejecutando el clúster. Cuando setermina el clúster, la instancia EC2 que actúa como nodo principal se termina y ya no estádisponible. Para conectar con el nodo principal, también debe autenticarse en el clúster. Puedeutilizar Kerberos para la autenticación o especificar una clave privada del par de claves deAmazon EC2 al lanzar el clúster. Para obtener más información sobre la configuración deKerberos y, a continuación, conectar, consulte Uso de la autenticación Kerberos (p. 244). Cuandose lanza un clúster desde la consola, la clave privada del par de claves de Amazon EC2 seespecifica en la sección Security and Access (Seguridad y acceso) de la página Create Cluster(Crear clúster).

De forma predeterminada, el grupo de seguridad ElasticMapReduce-master no permite el acceso de SSHentrante. Es posible que tenga que añadir una regla entrante que permita el acceso de SSH (TCP puerto22) desde los orígenes a los que desea tener acceso. Para obtener más información sobre la modificaciónde reglas de grupo de seguridad, consulte Agregar reglas a un grupo de seguridad en la Guía del usuariode Amazon EC2 para instancias de Linux.

Important

No modifique las reglas restantes en el grupo de seguridad ElasticMapReduce-master. Lamodificación de estas reglas podría interferir con la operación del clúster.

Temas• Conexión al nodo principal utilizando SSH (p. 354)• Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 359)

Conexión al nodo principal utilizando SSHSecure Shell (SSH) es un protocolo de red que puede utilizar para crear una conexión segura a un equiporemoto. Después de realizar una conexión, el terminal en su equipo local se comporta como si se estuvieraejecutando en el equipo remoto. Los comandos que emita a nivel local se ejecutan en el equipo remoto y lasalida de comandos desde el equipo remoto aparece en la ventana del terminal.

Al utilizar SSH con AWS, puede conectarse a una instancia EC2, que es un servidor virtual que se ejecutaen la nube. Al trabajar con Amazon EMR, el uso más común de SSH consiste en conectar a la instanciaEC2 que actúa como nodo principal del clúster.

El uso de SSH para conectarse al nodo principal le ofrece la posibilidad de monitorizar e interactuar conel clúster. Puede emitir comandos de Linux en el nodo principal, ejecutar aplicaciones como, por ejemplo,Hive y Pig de forma interactiva, examinar directorios, leer archivos de registro, etc. También puede crearun túnel en la conexión SSH para ver las interfaces web alojadas en el nodo principal. Para obtener másinformación, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 359).

Para conectar con el nodo principal mediante SSH, necesita el nombre de DNS público del nodo principal.Además, el grupo de seguridad asociado al nodo principal debe tener una regla de entrada que permita eltráfico SSH (puerto TCP 22) desde un origen que incluya el cliente donde se origina la conexión SSH. Esposible que tenga que añadir una regla para permitir una conexión SSH de su cliente. Para obtener másinformación sobre la modificación de reglas de grupo de seguridad, consulte Control del tráfico de red con

354

Page 362: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión al nodo principal utilizando SSH

grupos de seguridad (p. 291) y Agregar reglas a un grupo de seguridad en la Guía del usuario de AmazonEC2 para instancias de Linux.

Recuperar el nombre de DNS pública del nodo principalPuede recuperar el nombre de DNS público principal utilizando la consola de Amazon EMR y la AWS CLI.

Para recuperar el nombre de DNS pública del nodo principal utilizando la consola de AmazonEMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. En la página Cluster List (Lista de clústeres), seleccione el enlace para el clúster.3. Tenga en cuenta el valor de Master public DNS (DNS público principal) que aparece en la parte

superior de la página Cluster Details (Detalles del clúster).

Note

También puede elegir el enlace SSH junto al nombre de DNS público principal para obtenerinstrucciones sobre cómo crear una conexión SSH con el nodo principal.

Para recuperar el nombre de DNS pública del nodo principal utilizando la AWS CLI

1. Para recuperar el identificador del clúster, escriba el siguiente comando.

aws emr list-clusters

La salida enumera los clústeres, incluidos los ID de los clústeres. Tenga en cuenta el ID del clúster alque se está conectando.

"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213

355

Page 363: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión al nodo principal utilizando SSH

}, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" }},"NormalizedInstanceHours": 4,"Id": "j-2AL4XXXXXX5T9","Name": "My cluster"

2. Para obtener una lista de las instancias de clúster incluido el nombre de DNS público principal para elclúster, escriba uno de los siguientes comandos. Sustituya j-2AL4XXXXXX5T9 por el ID del clústerdevuelto por el comando anterior.

aws emr list-instances --cluster-id j-2AL4XXXXXX5T9

O bien:

aws emr describe-cluster --cluster-id j-2AL4XXXXXX5T9

La salida enumera las instancias de clúster, incluidos nombres de DNS y las direcciones IP. Anote elvalor para PublicDnsName.

"Status": { "Timeline": { "ReadyDateTime": 1408040779.263, "CreationDateTime": 1408040515.535 }, "State": "RUNNING", "StateChangeReason": {}},"Ec2InstanceId": "i-e89b45e7","PublicDnsName": "ec2-###-##-##-###.us-west-2.compute.amazonaws.com"

"PrivateDnsName": "ip-###-##-##-###.us-west-2.compute.internal","PublicIpAddress": "##.###.###.##","Id": "ci-12XXXXXXXXFMH","PrivateIpAddress": "###.##.#.###"

Para obtener más información, consulte los comandos de Amazon EMR en la AWS CLI.

Conexión al nodo principal utilizando SSH y una clave privada deAmazon EC2 en Linux, Unix y Mac OS XPara crear una conexión SSH autenticada con un archivo de clave privada, tendrá que especificar laclave privada del par de claves de Amazon EC2 al lanzar un clúster. Si lanza un clúster desde la consola,la clave privada del par de claves de Amazon EC2 se especifica en la sección Security and Access(Seguridad y acceso) de la página Create Cluster (Crear clúster). Para obtener más información sobrecómo obtener acceso al par de claves, consulte Pares de claves de Amazon EC2 en la Guía del usuario deAmazon EC2 para instancias de Linux.

Su equipo Linux muy probablemente incluye un cliente SSH de forma predeterminada. Por ejemplo,OpenSSH está instalado en la mayoría de los sistemas operativos Linux, Unix y macOS. Puede comprobarsi tiene un cliente SSH escribiendo ssh en la línea de comandos. Si su equipo no reconoce el comando,instale un cliente SSH para conectarse al nodo principal. El proyecto OpenSSH ofrece una implementacióngratuita de toda la suite de herramientas de SSH. Para obtener más información, consulte el sitio webOpenSSH.

356

Page 364: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión al nodo principal utilizando SSH

Las siguientes instrucciones muestran la apertura de una conexión SSH al nodo principal de Amazon EMRen Linux, Unix y Mac OS X.

Para configurar los permisos de archivo de clave privada del par de claves

Antes de poder utilizar la clave privada del par de claves de Amazon EC2 para crear una conexión SSH,debe establecer permisos en el archivo .pem de modo que solo el propietario de la clave tenga permisopara acceder a él. Esto es necesario para crear una conexión SSH utilizando el terminal o la AWS CLI.

1. Localice su archivo .pem. Estas instrucciones suponen que el archivo se denomina mykeypair.pemy que se almacena en el directorio de inicio del usuario actual.

2. Escriba el comando siguiente para definir los permisos. Sustituya ~/mykeypair.pem por la ubicacióny el nombre del archivo de clave privada del par de claves.

chmod 400 ~/mykeypair.pem

Si no establece permisos en el archivo .pem, recibirá un error indicando que el archivo de clave noestá protegido y la clave se rechazará. Para conectarse, solo tiene que establecer permisos en elarchivo de clave privada del par de claves la primera vez que lo use.

Para conectarse al nodo principal utilizando el terminal

1. Abra una ventana de terminal. En Mac OS X, elija Aplicaciones > Utilidades > Terminal. En otrasdistribuciones de Linux, el terminal normalmente se encuentra en Aplicaciones > Accesorios >Terminal.

2. Para establecer una conexión al nodo principal, escriba el siguiente comando. Sustituya ec2-###-##-##-###.compute-1.amazonaws.com por el nombre de DNS público principal del clúster ysustituya ~/mykeypair.pem por la ubicación y el nombre del archivo .pem.

ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem

Important

Debe utilizar el nombre de inicio de sesión hadoop cuando se conecte al nodo principal deAmazon EMR; de lo contrario, es posible que aparezca un error similar a Server refusedour key.

3. Una advertencia indica que la autenticidad del host al que se está conectando no se puede verificar.Escriba yes para continuar.

4. Cuando haya terminado de trabajar en el nodo principal, escriba el siguiente comando para cerrar laconexión SSH.

exit

Conexión al nodo principal utilizando la AWS CLIPuede crear una conexión SSH con el nodo principal utilizando la AWS CLI en Windows y en Linux, Unixy Mac OS X. Independientemente de la plataforma, necesita el nombre de DNS público del nodo principaly la clave privada del par de claves de Amazon EC2. Si utiliza la AWS CLI en Linux, Unix o Mac OS X,también debe establecer permisos en el archivo de clave privada (.pem o .ppk), tal como se muestra enPara configurar los permisos de archivo de clave privada del par de claves (p. 357).

Para conectar al nodo principal utilizando la AWS CLI

1. Para recuperar el identificador del clúster, escriba:

357

Page 365: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConexión al nodo principal utilizando SSH

aws emr list-clusters

La salida enumera los clústeres, incluidos los ID de los clústeres. Tenga en cuenta el ID del clúster alque se está conectando.

"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" }},"NormalizedInstanceHours": 4,"Id": "j-2AL4XXXXXX5T9","Name": "AWS CLI cluster"

2. Escriba el comando siguiente para abrir una conexión SSH al nodo principal. En el ejemplo siguiente,sustituya j-2AL4XXXXXX5T9 por el ID del clúster y sustituya ~/mykeypair.key por la ubicación y elnombre de archivo del archivo .pem (para Linux, Unix y Mac OS X) o .ppk (para Windows).

aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key

3. Cuando haya terminado de trabajar en el nodo principal, cierre la ventana de AWS CLI.

Para obtener más información, consulte los comandos de Amazon EMR en la AWS CLI.

Conexión al nodo principal utilizando SSH en WindowsLos usuarios de Windows pueden utilizar un cliente SSH como PuTTY para conectarse al nodo principal.Antes de conectar al nodo principal de Amazon EMR, debe descargar e instalar PuTTY y PuTTYgen.Puede descargar estas herramientas desde la página de descarga de PuTTY.

PuTTY no admite de forma nativa el formato de archivo de clave privada del par de claves (.pem)generado por Amazon EC2. Utilice PuTTYgen para convertir el archivo de clave al formato PuTTY (.ppk).Debe convertir la clave a este formato (.ppk) antes de intentar conectarse al nodo principal mediantePuTTY.

Para obtener más información sobre la conversión de la clave, consulte Conversión de la clave privadamediante PuTTYgen en la Guía del usuario de Amazon EC2 para instancias de Linux.

Para conectar al nodo principal utilizando PuTTY

1. Abrir putty.exe. También puede lanzar PuTTY desde la lista de programas de Windows.2. Si es necesario, en la lista Category (Categoría), elija Session (Sesión).3. En Host Name (or IP address) (Nombre de host (o dirección IP)), escriba

hadoop@MasterPublicDNS. Por ejemplo: hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

4. En la lista Category (Categoría), elija Connection > SSH (Conexión > SSH), Auth (Autenticación).5. En Private key file for authentication (Archivo de clave privada para la autenticación), elija Browse

(Examinar) y seleccione el archivo .ppk que ha generado.6. Elija Open (Abrir) y Yes (Sí) para descartar la alerta de seguridad de PuTTY.

358

Page 366: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Important

Al iniciar sesión en el nodo principal, escriba hadoop si se le solicita un nombre de usuario.7. Cuando haya terminado de trabajar en el nodo principal, puede cerrar la conexión SSH cerrando

PuTTY.Note

Para evitar que se supere el tiempo de espera de la conexión SSH, puede elegir Connection(Conexión) en la lista Category (Categoría) y seleccionar la opción Enable TCP_keepalives(Habilitar conexiones keepalives de TCP). Si dispone de una sesión de SSH activa enPuTTY, puede cambiar la configuración abriendo el menú contextual (botón derecho) en labarra del título de PuTTY y eligiendo Change Settings (Cambiar la configuración).

Ver las interfaces web alojadas en clústeres deAmazon EMRHadoop y otras aplicaciones que instale en el clúster de Amazon EMR, publican interfaces de usuariocomo sitios web alojados en el nodo principal. Por motivos de seguridad, cuando se utilizan grupos deseguridad administrados por EMR, estos sitios web solo están disponibles en el servidor web local delnodo principal, por lo que debe conectarse al nodo principal para verlos. Para obtener más información,consulte Conexión al nodo principal utilizando SSH (p. 354). Hadoop también publica las interfacesde usuario como sitios web alojados en los nodos secundarios y de tareas. Estos sitios web también seencuentran disponibles solo en servidores web locales en los nodos.

Warning

Es posible configurar un grupo de seguridad personalizado para permitir el acceso entrante aestas interfaces web. Tenga en cuenta que cualquier puerto en el que permita el tráfico entranterepresenta una posible vulnerabilidad de seguridad. Revise con atención los grupos de seguridadpersonalizados para asegurarse de minimizar las vulnerabilidades. Para obtener más información,consulte Control del tráfico de red con grupos de seguridad (p. 291).

En la tabla siguiente, se muestran las interfaces web que puede ver en las instancias de clúster. Estasinterfaces de Hadoop están disponibles en todos los clústeres. En las interfaces de la instancia principal,sustituya master-public-dns-name por el Master public DNS (DNS público principal) que apareceen la pestaña Summary (Resumen) del clúster de la consola de EMR. En las interfaces de las instanciassecundarias y de tareas, sustituya coretask-public-dns-name por el Public DNS name (Nombre DNSpúblico) que aparece para la instancia. Para buscar el Public DNS name (Nombre DNS público) de unainstancia, vaya a la consola de EMR, elija el clúster en la lista, elija la pestaña Hardware, elija el ID delgrupo de instancias que contiene la instancia a la que desea conectarse y, a continuación, anote el PublicDNS name (Nombre DNS público) que aparece para la instancia.

Important

Para obtener acceso a las interfaces web, debe editar los grupos de seguridad asociados a lasinstancias principales y secundarias, de forma que tengan una regla de entrada que permita eltráfico SSH (puerto 22) desde los clientes de confianza, como la dirección IP de su equipo. Paraobtener más información sobre la modificación de reglas de grupo de seguridad, consulte Agregarreglas a un grupo de seguridad en la Guía del usuario de Amazon EC2 para instancias de Linux.

Nombre de interfaz URI

Ganglia http://master-public-dns-name/ganglia/

Hadoop HDFS NameNode https://master-public-dns-name:50070/

359

Page 367: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Nombre de interfaz URI

Hadoop HDFS DataNode https://coretask-public-dns-name:50075/

HBase http://master-public-dns-name:16010/

Hue http://master-public-dns-name:8888/

JupyterHub https://master-public-dns-name:9443/

Livy http://master-public-dns-name:8998/

Spark HistoryServer http://master-public-dns-name:18080/

Tez http://master-public-dns-name:8080/tez-ui

YARN NodeManager http://coretask-public-dns-name:8042/

YARN ResourceManager http://master-public-dns-name:8088/

Zeppelin http://master-public-dns-name:8890/

Dado que hay varias interfaces específicas de aplicación disponibles en el nodo principal que no estándisponibles en los nodos secundarios y de tareas, las instrucciones en este documento son específicasdel nodo principal de Amazon EMR. El acceso a las interfaces web en los nodos secundarios y de tareaspuede realizarse de la misma manera en que se accedería a las interfaces web en el nodo principal.

Existen varias formas en las que puede acceder a las interfaces web en el nodo principal. El método másrápido y más sencillo consiste en utilizar SSH para conectarse al nodo principal y utilizar el navegadorbasado en texto, Lynx, para ver los sitios web en su cliente SSH. Sin embargo, Lynx es un navegadorbasado en texto con una interfaz de usuario limitada que no puede mostrar gráficos. El siguiente ejemplomuestra cómo abrir la interfaz de Hadoop ResourceManager utilizando Lynx (las URL de Lynx también sefacilitan al iniciar sesión en el nodo principal mediante SSH).

lynx http://ip-###-##-##-###.us-west-2.compute.internal:8088/

Existen dos opciones restantes para acceder a las interfaces web en el nodo principal que proporcionanuna funcionalidad del navegador completa. Elija una de las siguientes opciones:

• Opción 1 (recomendada para usuarios más técnicos): utilice un cliente SSH para conectarse al nodoprincipal, configure el túnel SSH con enrutamiento de puertos local y utilice un navegador de Internetpara abrir interfaces web alojadas en el nodo principal. Este método le permite configurar el acceso a lainterfaz web sin usar un proxy SOCKS.

• Opción 2 (recomendada para nuevos usuarios): utilice un cliente SSH para conectarse al nodo principal,configure el túnel SSH con enrutamiento de puertos local y configure su navegador de Internet parautilizar un complemento como FoxyProxy o SwitchySharp para administrar su configuración de proxySOCKS. Este método le permite filtrar automáticamente las URL en función de los patrones de texto ylimitar la configuración del proxy a dominios que coinciden con la forma del nombre de DNS del nodoprincipal. El complemento del navegador gestiona automáticamente la activación y desactivación delproxy al cambiar entre la visualización de sitios web alojados en el nodo principal y en Internet. Paraobtener más información acerca de cómo configurar FoxyProxy para Firefox y Google Chrome, consulteOpción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en el nodo principal (p. 365).

Con Amazon EMR versión 5.25.0 o posterior, puede acceder a la interfaz de usuario del servidor delhistorial de Spark desde la consola sin configurar un proxy web a través de una conexión SSH. Paraobtener más información, consulte Acceso de un clic al servidor del historial de Spark persistente.

360

Page 368: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Temas• Opción 1: configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertos

local (p. 361)• Opción 2, parte 1: configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertos

dinámico (p. 362)• Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en el nodo

principal (p. 365)• Acceder a las interfaces web en el nodo principal utilizando la consola (p. 366)

Opción 1: configurar un túnel SSH al nodo principal utilizando elenrutamiento de puertos localPara conectarse al servidor web local en el nodo principal, debe crear un túnel SSH entre su equipo yel nodo principal. Esto se conoce como enrutamiento de puertos. Si no desea utilizar un proxy SOCKS,puede configurar un túnel SSH al nodo principal a través del enrutamiento de puertos local. Con elenrutamiento de puertos local, especifique los puertos locales no utilizados que se utilizan para reenviar eltráfico a puertos remotos específicos en el servidor web local del nodo principal.

La configuración de un túnel SSH utilizando el enrutamiento de puerto local requiere el nombre de DNSpública del nodo principal y el archivo de clave privado de par de claves. Para obtener información sobrecómo localizar el nombre de DNS público principal, consulte Para recuperar el nombre de DNS públicadel nodo principal utilizando la consola de Amazon EMR (p. 355). Para obtener más información sobrecómo obtener acceso al par de claves, consulte Pares de claves de Amazon EC2 en la Guía del usuario deAmazon EC2 para instancias de Linux. Para obtener más información sobre los sitios que podría desearver en el nodo principal, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 359).

Configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertoslocal en Linux, Unix y Mac OS X

Para configurar un túnel SSH utilizando el enrutamiento de puertos local en terminal

1. Abra una ventana de terminal. En Mac OS X, elija Aplicaciones > Utilidades > Terminal. En otrasdistribuciones de Linux, el terminal normalmente se encuentra en Aplicaciones > Accesorios >Terminal.

2. Escriba el siguiente comando para abrir un túnel SSH en su máquina local. Este comando accede a lainterfaz web ResourceManager reenviando el tráfico en el puerto local 8157 (un puerto local sin utilizarelegido de forma aleatoria) al puerto 8088 en el servidor web local del nodo principal. En el comando,sustituya ~/mykeypair.pem por la ubicación y el nombre del archivo .pem y sustituya ec2-###-##-##-###.compute-1.amazonaws.com por el nombre de DNS público principal del clúster.

ssh -i ~/mykeypair.pem -N -L 8157:ec2-###-##-##-###.compute-1.amazonaws.com:8088 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

Después de emitir este comando, el terminal permanece abierto y no devuelve una respuesta.Note

-L hace referencia al uso de enrutamiento de puertos local que le permite especificar unpuerto local utilizado para reenviar datos al puerto remoto identificado en el servidor web localdel nodo principal.

3. Para abrir la interfaz web de ResourceManager en su navegador, escriba: http://localhost:8157/ en la barra de direcciones.

4. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre las ventanas dela terminal.

361

Page 369: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Opción 2, parte 1: configurar un túnel SSH al nodo principalutilizando el enrutamiento de puertos dinámicoPara conectarse al servidor web local en el nodo principal, debe crear un túnel SSH entre su equipo y elnodo principal. Esto se conoce como enrutamiento de puertos. Si crea el túnel SSH con enrutamiento depuertos dinámico, todo el tráfico dirigido a un puerto local especificado sin utilizar se enruta al servidor weblocal en el nodo principal. Esto crea un proxy SOCKS. A continuación, puede configurar su navegador deInternet para utilizar un complemento como FoxyProxy o SwitchySharp para administrar los ajustes delproxy SOCKS. El uso de un complemento de administración de proxy le permite filtrar automáticamentelas URL en función de los patrones de texto y limitar la configuración del proxy a dominios que coincidencon la forma del nombre de DNS pública del nodo principal. El complemento del navegador gestionaautomáticamente la activación y desactivación del proxy al cambiar entre la visualización de sitios webalojados en el nodo principal y en Internet.

Antes de comenzar, necesita el nombre de DNS pública del nodo principal y el archivo de clave privadadel par de claves. Para obtener información sobre cómo localizar el nombre de DNS público principal,consulte Para recuperar el nombre de DNS pública del nodo principal utilizando la consola de AmazonEMR (p. 355). Para obtener más información sobre cómo obtener acceso al par de claves, consultePares de claves de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux. Paraobtener más información sobre los sitios que podría desear ver en el nodo principal, consulte Ver lasinterfaces web alojadas en clústeres de Amazon EMR (p. 359).

Configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertosdinámico en Linux, Unix y Mac OS X

Para configurar un túnel de SSH que utiliza el enrutamiento de puertos dinámico en Linux, Unix yMac OS X

1. Abra una ventana de terminal. En Mac OS X, elija Aplicaciones > Utilidades > Terminal. En otrasdistribuciones de Linux, el terminal normalmente se encuentra en Aplicaciones > Accesorios >Terminal.

2. Escriba el siguiente comando para abrir un túnel SSH en su máquina local. Sustituya ~/mykeypair.pem por la ubicación y el nombre del archivo .pem, sustituya 8157 por un número depuerto local sin utilizar y, por último, sustituya c2-###-##-##-###.compute-1.amazonaws.compor el nombre de DNS público principal del clúster.

ssh -i ~/mykeypair.pem -N -D 8157 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

Después de emitir este comando, el terminal permanece abierto y no devuelve una respuesta.

Note

-D hace referencia al uso de enrutamiento de puertos dinámico que le permite especificar unpuerto local utilizado para reenviar datos a todos los puertos remotos en el servidor web localdel nodo principal. El enrutamiento de puertos dinámicos crea una escucha de proxy SOCKSlocal en el puerto especificado en el comando.

3. Una vez que el túnel está activo, configure un proxy SOCKS para su navegador. Para obtener másinformación, consulte Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en elnodo principal (p. 365).

4. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre la ventana de laterminal.

362

Page 370: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Configurar un túnel SSH con el enrutamiento de puertos dinámico con la AWS CLI

Puede crear una conexión SSH con el nodo principal utilizando la AWS CLI en Windows y Linux, Unix yMac OS X. Si está utilizando la AWS CLI en Linux, Unix o Mac OS X, deberá establecer permisos en elarchivo .pem, tal y como se muestra en Para configurar los permisos de archivo de clave privada del parde claves (p. 357). Si utiliza la AWS CLI en Windows, PuTTY debe aparecer en la variable de entorno dela ruta o podría recibir un error como, por ejemplo, OpenSSH or PuTTY not available.

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico con la AWS CLI

1. Crear una conexión SSH con el nodo principal, tal y como se muestra en Conexión al nodo principalutilizando la AWS CLI (p. 357).

2. Para recuperar el identificador del clúster, escriba:

aws emr list-clusters

La salida enumera los clústeres, incluidos los ID de los clústeres. Tenga en cuenta el ID del clúster alque se está conectando.

"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" }},"NormalizedInstanceHours": 4,"Id": "j-2AL4XXXXXX5T9","Name": "AWS CLI cluster"

3. Escriba el siguiente comando para abrir un túnel SSH en el nodo principal mediante el enrutamientode puertos dinámico. En el ejemplo siguiente, sustituya j-2AL4XXXXXX5T9 por el ID del clúster ysustituya ~/mykeypair.key por la ubicación y el nombre de archivo del archivo .pem (para Linux,Unix y Mac OS X) o .ppk (para Windows).

aws emr socks --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key

Note

El comando de socks configura automáticamente el enrutamiento de puertos dinámico en elpuerto local 8157. Actualmente este ajuste no se puede modificar.

4. Una vez que el túnel está activo, configure un proxy SOCKS para su navegador. Para obtener másinformación, consulte Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en elnodo principal (p. 365).

5. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre las ventana deAWS CLI.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

363

Page 371: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertosdinámico en Windows

Los usuarios de Windows pueden utilizar un cliente SSH como PuTTY para crear un túnel SSH al nodoprincipal. Antes de conectar al nodo principal de Amazon EMR, debe descargar e instalar PuTTY yPuTTYgen. Puede descargar estas herramientas desde la página de descarga de PuTTY.

PuTTY no admite de forma nativa el formato de archivo de clave privada del par de claves (.pem)generado por Amazon EC2. Utilice PuTTYgen para convertir el archivo de clave al formato PuTTY (.ppk).Debe convertir la clave a este formato (.ppk) antes de intentar conectarse al nodo principal mediantePuTTY.

Para obtener más información sobre la conversión de la clave, consulte Conversión de la clave privadamediante PuTTYgen en la Guía del usuario de Amazon EC2 para instancias de Linux.

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico en Windows

1. Haga doble clic en putty.exe para iniciar PuTTY. También puede lanzar PuTTY desde la lista deprogramas de Windows.

Note

Si ya tiene una sesión de SSH activa con el nodo principal, puede añadir un túnel haciendoclic con el botón derecho del ratón en la barra del título de PuTTY y eligiendo ChangeSettings (Cambiar la configuración).

2. Si es necesario, en la lista Category (Categoría), elija Session (Sesión).3. En el campo Host Name (Nombre de host), escriba hadoop@MasterPublicDNS. Por ejemplo:

hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.4. En la lista Category (Categoría), expanda Connection > SSH (Conexión > SSH) y, a continuación, elija

Auth (Autenticación).5. En Private key file for authentication (Archivo de clave privada para la autenticación), elija Browse

(Examinar) y seleccione el archivo .ppk que ha generado.

Note

PuTTY no admite de forma nativa el formato de archivo de clave privada del par de claves(.pem) generado por Amazon EC2. Utilice PuTTYgen para convertir el archivo de claveal formato PuTTY (.ppk). Debe convertir la clave a este formato (.ppk) antes de intentarconectarse al nodo principal mediante PuTTY.

6. En la lista Category (Categoría), expanda Connection > SSH (Conexión > SSH) y, a continuación, elijaTunnels (Túneles).

7. En el campo Source port (Puerto de origen), escriba 8157 (un puerto local no utilizado).8. Deje el campo Destination (Destino) en blanco.9. Seleccione las opciones Dynamic (Dinámico) y Auto.10. Elija Add (Añadir) y Open (Abrir).11. Elija Yes (Sí) para descartar la alerta de seguridad de PuTTY.

Important

Al iniciar sesión en el nodo principal, escriba hadoop si se le solicita para un nombre deusuario.

12. Una vez que el túnel está activo, configure un proxy SOCKS para su navegador. Para obtener másinformación, consulte Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en elnodo principal (p. 365).

13. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre las ventana dePuTTY.

364

Page 372: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Opción 2, parte 2: configurar ajustes de proxy para ver sitios webalojados en el nodo principalSi utiliza un túnel de SSH con enrutamiento de puertos dinámico, debe utilizar un complemento deadministración de proxy de SOCKS para controlar los ajustes del proxy en el navegador. El uso de unaherramienta de administración de proxy de SOCKS le permite filtrar automáticamente las URL en funciónde los patrones de texto y limitar la configuración del proxy a dominios que coinciden con la forma delnombre de DNS pública del nodo principal. El complemento del navegador gestiona automáticamente laactivación y desactivación del proxy al cambiar entre la visualización de sitios web alojados en el nodoprincipal y en Internet. Para administrar sus ajustes de proxy, configure el navegador para utilizar uncomplemento como FoxyProxy o SwitchySharp.

Para obtener más información acerca de la creación de un túnel de SSH, consulte Opción 2, parte 1:configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertos dinámico (p. 362). Paraobtener más información acerca de las interfaces web disponibles, consulte Ver las interfaces web alojadasen clústeres de Amazon EMR (p. 359).

El siguiente ejemplo muestra una configuración FoxyProxy utilizando Google Chrome. Los ajustespertinentes que se cargan desde el archivo de configuración en el ejemplo son los siguientes:

• Host or IP Address (Host o dirección IP) se establece en localhost con el puerto definido en 8157 enel ejemplo. Debe definir este puerto en el número de puerto local que utilizó para establecer el túnelde SSH con el nodo principal en Opción 2, parte 1: configurar un túnel SSH al nodo principal utilizandoel enrutamiento de puertos dinámico (p. 362). Este puerto también debe coincidir con el número depuerto que utiliza en PuTTY u en otro emulador de terminal que utilice para conectarse.

• Se especifica la configuración de SOCKS v5.• Las credenciales de inicio de sesión no se especifican.• URL Patterns (Patrones de URL)

Los siguientes patrones de URL se habilitan y se especifican con un tipo de patrón comodín:• Los patrones *ec2*.amazonaws.com* y *10*.amazonaws.com* coinciden con el nombre de DNS

público de los clústeres de las regiones de EE. UU.• Los patrones *ec2*.compute* y *10*.compute* coinciden con el nombre de DNS público de los

clústeres de todas las demás regiones.• El patrón 10.* proporciona acceso a los archivos de registro de JobTracker en Hadoop. Modifique este

filtro si entra en conflicto con su plan de acceso de red.

Configurar FoxyProxy para Google Chrome

Puede configurar FoxyProxy para Google Chrome, Mozilla Firefox y Microsoft Internet Explorer. FoxyProxyproporciona un conjunto de herramientas de administración de proxy que le permiten utilizar un servidorproxy para las URL que coincidan con los patrones correspondientes a los dominios que utilizan lasinstancias Amazon EC2 en el clúster de Amazon EMR.

Para instalar y configurar FoxyProxy utilizando Google Chrome

1. Consulte https://chrome.google.com/webstore/search/foxy%20proxy y siga los enlaces e instruccionespara añadir FoxyProxy a Chrome.

2. Mediante un editor de texto, cree un archivo denominado foxyproxy-settings.xml con elsiguiente contenido:

<?xml version="1.0" encoding="UTF-8"?><foxyproxy> <proxies>

365

Page 373: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

<proxy name="emr-socks-proxy" id="2322596116" notes="" fromSubscription="false" enabled="true" mode="manual" selectedTabIndex="2" lastresort="false" animatedIcons="true" includeInCycle="true" color="#0055E5" proxyDNS="true" noInternalIPs="false" autoconfMode="pac" clearCacheBeforeUse="false" disableCache="false" clearCookiesBeforeUse="false" rejectCookies="false"> <matches> <match enabled="true" name="*ec2*.amazonaws.com*" pattern="*ec2*.amazonaws.com*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*ec2*.compute*" pattern="*ec2*.compute*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="10.*" pattern="http://10.*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*10*.amazonaws.com*" pattern="*10*.amazonaws.com*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*10*.compute*" pattern="*10*.compute*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*.compute.internal*" pattern="*.compute.internal*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false"/> <match enabled="true" name="*.ec2.internal* " pattern="*.ec2.internal*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false"/> </matches> <manualconf host="localhost" port="8157" socksversion="5" isSocks="true" username="" password="" domain="" /> </proxy> </proxies></foxyproxy>

3. Administre las extensiones en Chrome (vaya a chrome://extensions).4. Elija Options (Opciones) para FoxyProxy Standard.5. En la página FoxyProxy, elija Import/Export (Importar/exportar).6. En la página Import/Export (Importar/exportar), elija Choose File (Seleccionar archivo), desplácese

hasta la ubicación del archivo foxyproxy-settings.xml que ha creado, seleccione el archivo yelija Open (Abrir).

7. Elija Replace (Reemplazar) cuando se le pida que sobrescriba la configuración existente.8. En Proxy mode (Modo proxy), elija Use proxies based on their predefined patterns and priorities (Usar

proxies basados en los patrones y prioridades predefinidos).9. Para abrir las interfaces web en la barra de direcciones del navegador, escriba master-public-dns

seguido del número de puerto o URL.

Para ver una lista completa de interfaces web en el nodo principal, consulte Ver las interfaces webalojadas en clústeres de Amazon EMR (p. 359).

Acceder a las interfaces web en el nodo principal utilizando laconsolaSi ya tiene un túnel SSH configurado con el nodo principal de Amazon EMR utilizando el enrutamiento depuertos dinámico, puede abrir las interfaces web utilizando la consola.

Para abrir las interfaces web utilizando la consola

1. Compruebe que ha establecido un túnel SSH en el nodo principal y que tiene un complemento deadministración del proxy configurado para su navegador.

366

Page 374: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

2. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.3. En la página Cluster List (Lista de clústeres), elija el enlace para el clúster.4. En los detalles del clúster, en Connections (Conexiones), elija el enlace para la interfaz web que desea

abrir en el navegador.

5. Como opción, elija el enlace View All (Ver todo) para mostrar los enlaces a todas las interfacesweb disponibles en el nodo principal del clúster. Al elegir los enlaces se abren las interfaces en sunavegador.

Si no dispone de un túnel SSH abierto con el nodo principal, elija Enable Web Connection (Habilitarconexión web) para obtener instrucciones sobre cómo crear un túnel.

367

Page 375: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTerminar un clúster

Note

Si tiene un túnel SSH configurado mediante enrutamiento de puertos local, la consola deAmazon EMR no detecta la conexión.

Terminar un clústerEn esta sección se describen los métodos de terminación de un clúster. Para obtener información sobrecómo habilitar la protección de terminación y la terminación automática de clústeres, consulte Control dela terminación de los clústeres (p. 101). Puede terminar clústeres en los estados STARTING, RUNNINGoWAITING. Un clúster en el estado WAITING se debe terminar o se ejecuta de forma indefinida, generandocargos en su cuenta. Puede terminar un clúster que no sea capaz de salir del estado STARTING o nopueda completar un paso.

Si está terminando un clúster que tiene definida la protección de terminación, primero debe deshabilitar laprotección de terminación antes de poder terminar el clúster. Los clústeres se pueden terminar mediante laconsola, la AWS CLI o mediante programación utilizando la API TerminateJobFlows.

En función de la configuración del clúster, el clúster puede tardar hasta 5-20 minutos en terminar porcompleto y liberar los recursos asignados, tales como instancias EC2.

Terminar un clúster utilizando la consolaPuede terminar uno o varios clústeres mediante la consola de Amazon EMR. Los pasos para terminar unclúster en la consola varían en función de si la protección de terminación está activada o desactivada. Paraterminar un clúster protegido, primero debe deshabilitar la protección de terminación.

Para terminar un clúster con protección de terminación desactivada

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.

2. Seleccione el clúster que va a terminar. Puede seleccionar varios clústeres y terminarlos al mismotiempo.

3. Elija Terminate.4. Cuando se le pregunte, elija Terminate (Finalizar).

Amazon EMR termina las instancias del clúster y deja de guardar los datos de registro.

Para terminar un clúster con protección de terminación activada

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.

2. En la página Cluster List (Lista de clústeres), seleccione el clúster que desea terminar. Puedeseleccionar varios clústeres y terminarlos al mismo tiempo.

3. Elija Terminate.4. Cuando se le solicite, elija Change (Cambiar) para desactivar la protección de terminación. Si ha

seleccionado varios clústeres, elija Turn off all (Desactivar todo) para deshabilitar la protección determinación de todos los clústeres a la vez.

5. En el cuadro de diálogo Terminate clusters (Terminar clústeres), para Termination Protection(Protección de terminación), elija Off (Desactivada) y, a continuación, haga clic en la marca deverificación para confirmar.

6. Haga clic en Terminate (Terminar).

368

Page 376: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTerminar un clúster utilizando la AWS CLI

Amazon EMR termina las instancias del clúster y deja de guardar los datos de registro.

Terminar un clúster utilizando la AWS CLIPara terminar un clúster sin protección utilizando la AWS CLI

Para terminar un clúster sin protección utilizando la AWS CLI, utilice el subcomando terminate-clusters con el parámetro --cluster-ids.

• Escriba el comando siguiente para terminar un único clúster y sustituya j-3KVXXXXXXX7UG por el IDdel clúster.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG

Para terminar varios clústeres, escriba el comando siguiente y sustituya j-3KVXXXXXXX7UG y j-WJ2XXXXXX8EU por los ID de los clústeres.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG j-WJ2XXXXXX8EU

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Para terminar un clúster con protección utilizando la AWS CLI

Para terminar un clúster protegido utilizando la AWS CLI, en primer lugar deshabilite la protecciónde terminación utilizando el subcomando modify-cluster-attributes con el parámetro --no-termination-protected. A continuación, utilice el subcomando terminate-clusters con elparámetro --cluster-ids para terminarlo.

1. Escriba el comando siguiente para deshabilitar la protección de terminación y sustituyaj-3KVTXXXXXX7UG por el ID del clúster.

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected

2. Para terminar el clúster, escriba el comando siguiente y sustituya j-3KVXXXXXXX7UG por el ID delclúster.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG

Para terminar varios clústeres, escriba el comando siguiente y sustituya j-3KVXXXXXXX7UG y j-WJ2XXXXXX8EU por los ID de los clústeres.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG j-WJ2XXXXXX8EU

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

369

Page 377: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTerminar un clúster utilizando la API

Terminar un clúster utilizando la APILa operación TerminateJobFlows finaliza el procesamiento de pasos, carga los datos de registrodesde Amazon EC2 en Amazon S3 (si está configurado) y termina el clúster de Hadoop. Un clústertambién termina automáticamente si establece KeepJobAliveWhenNoSteps en False en una solicitudRunJobFlows.

Puede utilizar esta acción para terminar un único clúster o una lista de clústeres por sus ID de clúster.

Para obtener más información sobre los parámetros de entrada únicos para TerminateJobFlows,consulte TerminateJobFlows. Para obtener más información acerca de los parámetros genéricos en lasolicitud, consulte Parámetros de solicitud comunes.

Escalado de recursos de clústerPuede ajustar el número de instancias Amazon EC2 disponibles para un clúster de Amazon EMRautomáticamente o manualmente en respuesta a cargas de trabajo con diferentes demandas. Para utilizarel escalado automático, tiene dos opciones. Puede habilitar el escalado administrado por EMR o crear unapolítica de escalado automático personalizada. En la siguiente tabla se describen las diferencias entre lasdos opciones.

  Escalado administrado por EMR Escalado automáticopersonalizado

Políticas y reglas de escalado No se requiere ninguna política.EMR administra la actividad deescalado automático evaluandocontinuamente las métricas delclúster y tomando decisiones deescalado optimizadas.

Debe definir y administrarlas políticas y reglas deescalado automático, comolas condiciones específicasque desencadenan actividadesde escalado, periodos deevaluación, períodos derecuperación, etc.

Versiones EMR compatibles Amazon EMR versión 5.30.0 yposterior (excepto Amazon EMRversión 6.0.0)

Amazon EMR versión 4.0.0 yposteriores.

Composición del clúster admitida Grupos de instancias o flotas deinstancias

Solo grupos de instancias

Configuración de límites deescalado

Los límites de escalado seconfiguran para todo el clúster.

Los límites de escalado solo sepueden configurar para cadagrupo de instancias.

Frecuencia de evaluación de lasmétricas

Cada 5-10 segundos

Una evaluación más frecuentede las métricas permite a EMRtomar decisiones de escaladomás precisas.

Puede definir los periodos deevaluación solo en incrementosde cinco minutos.

Aplicaciones compatibles Solo se admiten aplicacionesYARN, como Spark, Hadoop,Hive y Flink.

Puede elegir qué aplicaciones seadmiten cuando defina las reglasde escalado automático.

370

Page 378: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

  Escalado administrado por EMR Escalado automáticopersonalizado

Otras aplicaciones, como Presto,no son compatibles actualmente.

Consideraciones

• Un clúster de Amazon EMR siempre consta de uno o tres nodos maestros. No puede escalar elnúmero de nodos maestros después de configurar inicialmente el clúster. Solo puede escalar los nodosprincipales y de tareas de un clúster.

• No se puede volver a configurar y cambiar el tamaño de un grupo de instancias al mismo tiempo. Sise inicia una nueva configuración mientras se está cambiando el tamaño de un grupo de instancias, lanueva configuración no puede comenzar hasta que se haya completado el cambio de tamaño del grupode instancias, y viceversa.

Temas• Uso del escalado administrado por EMR en Amazon EMR (p. 371)• Uso del escalado automático con una política personalizada para grupos de instancias (p. 382)• Cambiar manualmente el tamaño de un clúster en ejecución (p. 391)• Reducción de escala del clúster (p. 396)

Uso del escalado administrado por EMR en AmazonEMRCon Amazon EMR versión 5.30.0 y posterior, puede habilitar el escalado administrado por EMR paraaumentar o disminuir automáticamente el número de instancias o unidades del clúster en función de lacarga de trabajo. EMR evalúa continuamente las métricas del clúster para tomar decisiones de escaladoque optimicen los clústeres en cuanto al costo y la velocidad. Esta característica está disponible paraclústeres compuestos por grupos de instancias o flotas de instancias.

Debe configurar los siguientes parámetros para el escalado administrado. El límite solo se aplica a losnodos principales y de tareas. El nodo maestro no se puede escalar después de la configuración inicial.

• Mínimo: límite inferior del número permitido de instancias, núcleos de unidad central de procesamientovirtual (vCPU) o unidades de flota de instancias.

• Máximo: límite superior del número permitido de instancias, núcleos de unidad central de procesamientovirtual (vCPU) o unidades de flota de instancias.

• Límite bajo demanda (opcional): límite superior de las unidades bajo demanda a las que puede escalarel clúster.

Para clústeres compuestos por grupos de instancias, las unidades se miden en función de las instanciaso núcleos de unidad central de procesamiento virtual (vCPU). Para los clústeres compuestos por flotasde instancias, la unidad se mide en función de las unidades de flota de instancias. Para obtener másinformación acerca de las unidades de flota de instancias, consulte Opciones de flota de instancias eInstanceFleetConfig.

Condiciones y limitaciones

• El escalado administrado solo funciona con aplicaciones YARN, como Spark, Hadoop, Hive y Flink.Actualmente no es compatible con aplicaciones que no estén basadas en YARN, como Presto.

371

Page 379: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

Temas• Descripción de las métricas de escalado administrado (p. 372)• Uso de la Consola de administración de AWS para configurar el escalado administrado (p. 375)• Opciones de la consola actualizadas para el escalado del clúster (p. 377)• Uso de la AWS CLI para configurar el escalado administrado (p. 378)• Uso de AWS SDK for Java para configurar el escalado administrado (p. 380)

Descripción de las métricas de escalado administradoAmazon EMR publica métricas de alta resolución con datos en una granularidad de un minuto cuandose habilita el escalado administrado para un clúster. Puede ver los eventos de cada inicio y finalizaciónde cambio de tamaño controlado por el escalado administrado mediante la consola de Amazon EMR o laconsola de Amazon CloudWatch. Para obtener más información, consulte Monitorización de eventos deCloudWatch en la Guía de administración de Amazon EMR.

Las siguientes métricas indican la capacidad actual o prevista de un clúster. Estas métricas solo estándisponibles cuando el escalado administrado está habilitado. Para los clústeres compuestos por flotas deinstancias, las métricas de capacidad del clúster se miden en Units. Para los clústeres compuestos porgrupos de instancias, las métricas de capacidad del clúster se miden en Nodes o en vCPU en función deltipo de unidad utilizado en la política de escalado administrado.

Métrica Descripción

• TotalUnitsRequested

• TotalNodesRequested

• TotalVCPURequested

El número total previsto de unidades, nodos o vCPU en unclúster según lo determine el escalado administrado.

Unidades: recuento

• TotalUnitsRunning

• TotalNodesRunning

• TotalVCPURunning

El número total actual de unidades, nodos o vCPU disponiblesen un clúster en ejecución. Cuando se solicita un cambio detamaño del clúster, esta métrica se actualizará después deagregar o quitar las nuevas instancias del clúster.

Unidades: recuento

• CoreUnitsRequested

• CoreNodesRequested

• CoreVCPURequested

El número previsto de unidades, nodos o vCPU CORE en unclúster según lo determine el escalado administrado.

Unidades: recuento

• CoreUnitsRunning

• CoreNodesRunning

• CoreVCPURunning

El número actual de unidades, nodos o vCPU CORE que seejecutan en un clúster.

Unidades: recuento

• TaskUnitsRequested

• TaskNodesRequested

• TaskVCPURequested

El número previsto de unidades, nodos o vCPU TASK en unclúster según lo determine el escalado administrado.

Unidades: recuento

• TaskUnitsRunning

• TaskNodesRunning

• TaskVCPURunning

El número actual de unidades, nodos o vCPU TASK que seejecutan en un clúster.

Unidades: recuento

372

Page 380: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

Las siguientes métricas indican el estado de uso del clúster y las aplicaciones. Estas métricas estándisponibles para todas las características de Amazon EMR, pero se publican con una resolución más altacon datos y una granularidad de un minuto cuando se habilita el escalado administrado para un clúster.Puede comparar las siguientes métricas con las métricas de capacidad del clúster de la tabla anterior paraconocer las decisiones de escalado administrado.

Métrica Descripción

AppsCompleted El número de aplicaciones enviadas a YARN que se hancompletado.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

AppsPending El número de aplicaciones enviadas a YARN que están enestado pendiente.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

AppsRunning El número de aplicaciones enviadas a YARN que se estánejecutando.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ContainerAllocated El número de contenedores de recursos asignados porResourceManager.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ContainerPending El número de contenedores en la cola que aún no se hanasignado.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

ContainerPendingRatio La proporción entre contenedores pendientes y contenedoresasignados (ContainerPendingRatio = ContainerPending /ContainerAllocated). Si ContainerAllocated = 0, entoncesContainerPendingRatio = ContainerPending. El valor deContainerPendingRatio representa un número, no un porcentaje.Este valor es útil para escalar recursos del clúster en función delcomportamiento de asignación de contenedores.

Unidades: recuento

HDFSUtilizatioin El porcentaje de almacenamiento HDFS usado actualmente.

Caso de uso: analizar el rendimiento del clúster

Unidades: porcentaje

373

Page 381: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

Métrica Descripción

IsIdle Indica que un clúster ya no está funcionando, pero sigue activo yacumulando cargos. Se establece en 1 si no se ejecuta ningunatarea ni ningún trabajo; en caso contrario, se establece en0. Este valor se comprueba a intervalos de cinco minutos, yun valor de 1 indica que el clúster estaba inactivo cuando secomprobó, no que estuvo inactivo durante los cinco minutos.Para evitar falsos positivos, debe activar una alarma cuandoeste valor sea 1 durante más de una comprobación consecutivade cinco minutos. Por ejemplo, puede activar una alarma cuandoeste valor sea 1 durante treinta minutos o más.

Caso de uso: monitorizar el rendimiento del clúster

Unidades: booleano

MemoryAvailableMB La cantidad de memoria disponible para asignar.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

MRActiveNodes El número de nodos que se están ejecutando actualmente entareas o trabajos de MapReduce. Equivalente a la métrica YARNmapred.resourcemanager.NoOfActiveNodes.

Caso de uso: monitorizar el progreso del clúster

Unidades: recuento

YARNMemoryAvailablePercentage El porcentaje de memoria restante disponible para YARN(YARNMemoryAvailablePercentage = MemoryAvailableMB /MemoryTotalMB). Este valor es útil para escalar recursos delclúster en función del uso de memoria de YARN.

Unidades: porcentaje

Diagramación de métricas de escalado administradoPuede diagramar las métricas para ver los patrones de carga de trabajo del clúster y las decisiones deescalado correspondientes tomadas por el escalado administrado por EMR, como se muestra en los pasossiguientes.

Para diagramar métricas de escalado administrado en la consola de CloudWatch

1. Abra la consola de CloudWatch.2. En el panel de navegación, elija Amazon EMR. Puede buscar el identificador del clúster que desea

monitorizar.3. Desplácese hacia abajo hasta la métrica que desea representar gráficamente. Abra una métrica para

mostrar el gráfico.4. Para representar gráficamente una o varias métricas, seleccione la casilla de verificación junto a cada

métrica.

El siguiente ejemplo ilustra la actividad de escalado administrado por EMR de un clúster. El gráficomuestra tres periodos de reducción de capacidad automática, que ahorran costos cuando hay una cargade trabajo menos activa.

374

Page 382: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

Todas las métricas de capacidad y uso del clúster se publican a intervalos de un minuto. La informaciónestadística adicional también se asocia a cada dato de un minuto, lo que le permite diagramar variasfunciones como Percentiles, Min, Max, Sum, Average, SampleCount.

Por ejemplo, el siguiente gráfico muestra la misma métrica YARNMemoryAvailablePercentage enpercentiles diferentes, P10, P50, P90, P99, junto con Sum, Average, Min, SampleCount.

Uso de la Consola de administración de AWS para configurar elescalado administradoAl crear un clúster, puede configurar el escalado administrado mediante la opción rápida o las opcionesavanzadas de configuración del clúster. También puede crear o modificar una política de escaladoadministrado para un clúster en ejecución modificando la configuración de Escalado administrado en lapágina Resumen o Hardware .

Para utilizar la opción rápida para configurar el escalado administrado al crear un clúster

1. Abra la consola de Amazon EMR, elija Crear clúster y abra Crear clúster: Opciones rápidas.

375

Page 383: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

2. En la sección Configuración de hardware, en el campo Escalado del clúster, seleccione Usar escaladoadministrado por EMR.

3. Especifique el valor Mínimo y Máximo para las instancias principales y de tareas.

Para utilizar la opción avanzada para configurar el escalado administrado al crear un clúster

1. En la consola de Amazon EMR, seleccione Crear clúster, seleccione Ir a las opciones avanzadas, elijaopciones para Paso 1: Software y pasos y después vaya a Paso 2: Configuración de hardware.

2. En la sección Composición del clúster seleccione Flotas de instancias o Grupos de instanciasuniformes.

3. En la sección Escalado del clúster seleccione Habilitar escalado del clúster. A continuación, seleccioneUsar escalado administrado por EMR. A continuación, especifique un valor en Mínimo y Máximo paralas instancias o unidades de flota de instancias y en Límite bajo demanda.

Para los clústeres compuestos por grupos de instancias, también puede elegir Crear una política deescalado automático personalizada si desea definir políticas de escalado automática personalizadaspara cada grupo de instancias. Para obtener más información, consulte Uso del escalado automáticocon una política personalizada para grupos de instancias (p. 382).

Para modificar un clúster existente

1. Abra la consola de Amazon EMR, seleccione el clúster de la lista de clústeres y, a continuación,expanda la sección Hardware .

2. En la sección Escalado del clúster, seleccione Editar para el escalado administrado por EMR.

376

Page 384: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

3. En la sección Escalado del clúster especifique nuevos valores para Mínimo y Máximo para lasinstancias y Límite bajo demanda.

Opciones de la consola actualizadas para el escalado del clústerLas opciones de escalado del clúster en la consola han cambiado. Las opciones se consolidan en unasola sección Escalado del clúster en la página Configuración de hardware en Crear clúster: Opcionesavanzadas. Las opciones de escalado del clúster también se pueden editar en la pestaña Hardware de unclúster en ejecución.

Puede seleccionar Usar escalado administrado por EMR o Crear una política de escalado automáticopersonalizada cuando habilite el escalado del clúster. Usar escalado administrado por EMR solo estádisponible con Amazon EMR versión 5.30.0 y posterior. Para obtener más información, consulte Escaladode recursos de clúster (p. 370).

Las siguientes capturas de pantalla muestran las diferencias entre el escalado automático anterior y lasopciones de escalado del clúster actuales de la consola.

Cambios en la página Configuración de hardware

Cuando se utiliza la opción avanzada para crear un clúster, las opciones de escalado automático semueven de la tabla de grupos de instancias a la sección Escalado del clúster de la página Configuraciónde hardware.

377

Page 385: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

Cambios en la pestaña Hardware

En la pestaña Hardware de un clúster en ejecución, las opciones de escalado automático se mueven a latabla Escalado del clúster en la misma página.

Uso de la AWS CLI para configurar el escalado administradoPuede utilizar comandos de la AWS CLI para que Amazon EMR configure el escalado administrado alcrear un clúster. Puede utilizar una sintaxis abreviada, especificando la configuración JSON insertadadentro de los comandos pertinentes o puede hacer referencia a un archivo que contenga la configuraciónJSON. También puede aplicar una política de escalado administrado a un clúster existente y eliminar una

378

Page 386: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

política de escalado administrado que se haya aplicado anteriormente. Además, puede recuperar detallesde una configuración de política de escalado desde un clúster en ejecución.

Habilitar el escalado administrado durante el lanzamiento del clúster

Puede habilitar el escalado administrado durante el lanzamiento del clúster, como se muestra en elsiguiente ejemplo.

aws emr create-cluster \ --service-role EMR_DefaultRole \ --release-label emr-5.30.0 \ --name EMR_Managed_Scaling_Enabled_Cluster \ --applications Name=Spark Name=Hbase \ --ec2-attributes KeyName=keyName,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceType=m4.xlarge,InstanceGroupType=MASTER,InstanceCount=1 InstanceType=m4.xlarge,InstanceGroupType=CORE,InstanceCount=2 \ --region us-east-1 \ --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'

También puede especificar una configuración de política administrada mediante la opción --managed-scaling-policy cuando utilice create-cluster.

Aplicación de una política de escalado administrado a un clúster existente

Puede aplicar una política de escalado administrado a un clúster existente, como se muestra en elsiguiente ejemplo.

aws emr put-managed-scaling-policy --cluster-id j-123456 --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=1,MaximumCapacityUnits=10, MaximumOnDemandCapacityUnits=10, UnitType=Instances}'

También puede aplicar una política de escalado administrado a un clúster existente mediante el comandoaws emr put-managed-scaling-policy. En el siguiente ejemplo se utiliza una referencia a unarchivo JSON, managedscaleconfig.json, que especifica la configuración de política de escaladoadministrado.

aws emr put-managed-scaling-policy --cluster-id j-123456 --managed-scaling-policy file://./managedscaleconfig.json

En el ejemplo siguiente se muestra el contenido del archivo managedscaleconfig.json, que define lapolítica de escalado administrado.

{ "ComputeLimits": { "UnitType": "Instances", "MinimumCapacityUnits": 1, "MaximumCapacityUnits": 10, "MaximumOnDemandCapacityUnits": 10 }}

Recuperación de una configuración de política de escalado administrado

El comando GetManagedScalingPolicy recupera la configuración de la política. Por ejemplo, elcomando siguiente recupera la configuración para el clúster con un ID de clúster de j-123456.

aws emr get-managed-scaling-policy --cluster-id j-123456

379

Page 387: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

El comando produce el siguiente resultado de ejemplo.

{ "ManagedScalingPolicy": { "ComputeLimits": { "MinimumCapacityUnits": 1, "MaximumOnDemandCapacityUnits": 10, "MaximumCapacityUnits": 10, "UnitType": "Instances" } }}

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Eliminación de una política de escalado administrado

El comando RemoveManagedScalingPolicy elimina la configuración de política. Por ejemplo, elcomando siguiente recupera la configuración del clúster con un ID de clúster de j-123456.

aws emr remove-managed-scaling-policy --cluster-id j-123456

Uso de AWS SDK for Java para configurar el escaladoadministradoEn el siguiente fragmento de programa se muestra cómo configurar el escalado administrado medianteAWS SDK for Java:

package com.amazonaws.emr.sample;

import java.util.ArrayList;import java.util.List;

import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.regions.Regions;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;import com.amazonaws.services.elasticmapreduce.model.Application;import com.amazonaws.services.elasticmapreduce.model.ComputeLimits;import com.amazonaws.services.elasticmapreduce.model.ComputeLimitsUnitType;import com.amazonaws.services.elasticmapreduce.model.InstanceGroupConfig;import com.amazonaws.services.elasticmapreduce.model.JobFlowInstancesConfig;import com.amazonaws.services.elasticmapreduce.model.ManagedScalingPolicy;import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;

public class CreateClusterWithManagedScalingWithIG {

public static void main(String[] args) { AWSCredentials credentialsFromProfile = getCreadentials("AWS-Profile-Name-Here"); /** * Create an EMR client using the credentials and region specified in order to create the cluster */

380

Page 388: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado administrado por EMR en Amazon EMR

AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentialsFromProfile)) .withRegion(Regions.US_EAST_1) .build(); /** * Create Instance Groups - Master, Core, Task */ InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig() .withInstanceCount(1) .withInstanceRole("MASTER") .withInstanceType("m4.large") .withMarket("ON_DEMAND"); InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig() .withInstanceCount(4) .withInstanceRole("CORE") .withInstanceType("m4.large") .withMarket("ON_DEMAND"); InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig() .withInstanceCount(5) .withInstanceRole("TASK") .withInstanceType("m4.large") .withMarket("ON_DEMAND");

List<InstanceGroupConfig> igConfigs = new ArrayList<>(); igConfigs.add(instanceGroupConfigMaster); igConfigs.add(instanceGroupConfigCore); igConfigs.add(instanceGroupConfigTask); /** * specify applications to be installed and configured when EMR creates the cluster */ Application hive = new Application().withName("Hive"); Application spark = new Application().withName("Spark"); Application ganglia = new Application().withName("Ganglia"); Application zeppelin = new Application().withName("Zeppelin"); /** * Managed Scaling Configuration - * Using UnitType=Instances for clusters composed of instance groups * * Other options are: * UnitType = VCPU ( for clusters composed of instance groups) * UnitType = InstanceFleetUnits ( for clusters composed of instance fleets) **/ ComputeLimits computeLimits = new ComputeLimits() .withMinimumCapacityUnits(1) .withMaximumCapacityUnits(20) .withUnitType(ComputeLimitsUnitType.Instances); ManagedScalingPolicy managedScalingPolicy = new ManagedScalingPolicy(); managedScalingPolicy.setComputeLimits(computeLimits); // create the cluster with a managed scaling policy RunJobFlowRequest request = new RunJobFlowRequest() .withName("EMR_Managed_Scaling_TestCluster") .withReleaseLabel("emr-5.30.0") // Specifies the EMR release version label, we recommend the latest release .withApplications(hive,spark,ganglia,zeppelin) .withLogUri("s3://path/to/my/emr/logs") // A URI in S3 for log files is required when debugging is enabled. .withServiceRole("EMR_DefaultRole") // If you use a custom IAM service role, replace the default role with the custom role.

381

Page 389: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

.withJobFlowRole("EMR_EC2_DefaultRole") // If you use a custom EMR role for EC2 instance profile, replace the default role with the custom EMR role. .withInstances(new JobFlowInstancesConfig().withInstanceGroups(igConfigs) .withEc2SubnetId("subnet-123456789012345") .withEc2KeyName("my-ec2-key-name") .withKeepJobFlowAliveWhenNoSteps(true)) .withManagedScalingPolicy(managedScalingPolicy); RunJobFlowResult result = emr.runJobFlow(request); System.out.println("The cluster ID is " + result.toString()); } public static AWSCredentials getCreadentials(String profileName) { // specifies any named profile in .aws/credentials as the credentials provider try { return new ProfileCredentialsProvider("AWS-Profile-Name-Here") .getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and that the profile name is defined within it.", e); } } public CreateClusterWithManagedScalingWithIG() { }}

Uso del escalado automático con una políticapersonalizada para grupos de instanciasEl escalado automático con una política personalizada en las versiones 4.0 y posteriores de Amazon EMRle permite ampliar o reducir la capacidad mediante programación en los nodos principales y en los nodosde tareas en función de una métrica de CloudWatch y otros parámetros especificados en una política deescalado. El escalado automático con una política personalizada está disponible con la configuración degrupos de instancias, pero no con las flotas de instancias. Para obtener más información sobre los gruposde instancias y las flotas de instancias, consulte Creación de un clúster con flotas de instancias o gruposde instancias uniformes (p. 140).

Note

Para utilizar la característica de escalado automático con una política personalizada en AmazonEMR, debe establecer en true el parámetro VisibleToAllUsers al crear un clúster. Paraobtener más información, consulte SetVisibleToAllUsers.

La política de escalado forma parte de la configuración de un grupo de instancias. Puede especificar unapolítica durante la configuración de un grupo de instancias o modificando un grupo de instancias en unclúster existente, incluso cuando dicho grupo de instancias está activo. Cada grupo de instancia de unclúster, excepto el grupo de instancias principales, puede tener su propia política de escalado, que secompone de reglas de escalado ascendente y escalado descendente. Las reglas de escalado ascendentey descendente se pueden configurar de manera independiente, con distintos parámetros para cada regla.

Puede configurar las políticas de escalado utilizando la Consola de administración de AWS, la AWS CLIo la API de Amazon EMR. Al utilizar la AWS CLI o la API de Amazon EMR, debe especificar la políticade escalado en formato JSON. Además, cuando se utiliza la AWS CLI o la API de Amazon EMR, sepueden especificar métricas de CloudWatch personalizadas. Las métricas personalizadas no se puedenseleccionar utilizando la Consola de administración de AWS. Al crear inicialmente una política de escaladomediante la consola, se preconfigura una política predeterminada adecuada para muchas aplicacionespara ayudarle a comenzar. Puede eliminar o modificar las reglas predeterminadas.

382

Page 390: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

Aunque el escalado automático le permite ajustar la capacidad del clúster de EMR sobre la marcha, debetener en cuenta los requisitos de carga de trabajo de referencia y planificar las configuraciones del nodoy de los grupos de instancias. Para obtener más información, consulte Directrices de configuración delclúster.

Note

Para la mayoría de las cargas de trabajo, es deseable la configuración de las reglas de escaladoascendente y descendente para optimizar el uso de los recursos. Definir una regla sin la otrasignifica que tendrá que cambiar manualmente el tamaño del recuento de instancias después deuna actividad de escalado. En otras palabras, esto configura una política de escalado ascendenteo descendente automática "unidireccional" con un restablecimiento manual.

Creación del rol de IAM para escalado automáticoEl escalado automático en Amazon EMR requiere un rol de IAM con permisos para añadir y terminarinstancias cuando se activan las actividades de escalado. Para este fin se dispone de un rolpredeterminado, EMR_AutoScaling_DefaultRole, configurado con la política de confianza y la políticade roles adecuadas. Al crear un clúster con una política de escalado por primera vez utilizando la Consolade administración de AWS, Amazon EMR crea el rol predeterminado y asocia la política administradapredeterminada para los permisos, AmazonElasticMapReduceforAutoScalingRole.

Al crear un clúster con un política de escalado automático utilizando la AWS CLI, primero debe asegurarsede que existe el rol de IAM predeterminado o de que dispone de un rol de IAM personalizado con unapolítica asociada que proporciona los permisos necesarios. Para crear el rol predeterminado, puedeejecutar el comando create-default-roles antes de crear un clúster. A continuación, puedeespecificar la opción --auto-scaling-role EMR_AutoScaling_DefaultRole al crear el clúster.También puede crear un rol de escalado automático personalizado y luego especificarlo al crear un clúster,por ejemplo, --auto-scaling-role MyEMRAutoScalingRole. Si crea un rol de escalado automáticopersonalizado para Amazon EMR, le recomendamos que base las políticas de permisos de dicho rol en lapolítica administrada. Para obtener más información, consulte Configurar roles de servicio deIAM para lospermisos de Amazon EMR para los servicios y recursos de AWS (p. 205).

Descripción de las reglas de escalado automáticoCuando una regla de escalado ascendente activa una actividad de escalado para un grupo de instancias,las instancias Amazon EC2 se añaden al grupo de instancias de acuerdo con sus reglas. Aplicacionescomo Apache Spark y Apache Hive pueden utilizar los nodos nuevos en cuanto la instancia Amazon EC2entre en el estado InService. También puede configurar una regla de escalado descendente que terminainstancias y elimina nodos. Para obtener más información sobre el ciclo de vida de las instancias AmazonEC2 que se escalan automáticamente, consulte Ciclo de vida de Auto Scaling en la Guía del usuario deAmazon EC2 Auto Scaling.

Puede configurar cómo termina un clúster las instancias Amazon EC2. Puede optar por terminar en ellímite por instancia y hora de Amazon EC2 para la facturación o una vez completadas las tareas. Estaconfiguración se aplica tanto al escalado automático como a las operaciones manuales de cambio detamaño. Para obtener más información acerca de esta configuración, consulte Reducción de escala delclúster (p. 396).

Los siguientes parámetros para cada regla de una política determinan el comportamiento de escaladoautomático.

Note

Los parámetros que se enumeran aquí se basan en la Consola de administración de AWS paraAmazon EMR. Al utilizar la AWS CLI o la API de Amazon EMR, están disponibles las opciones deconfiguración avanzada adicionales. Para obtener más información sobre opciones avanzadas,consulte SimpleScalingPolicyConfiguration en la Amazon EMR API Reference.

383

Page 391: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

• Número máximo de instancias y número mínimo de instancias. La limitación Maximum instances(Número máximo de instancias) especifica el número máximo de instancias Amazon EC2 que puedehaber en el grupo de instancias y se aplica a todas las reglas de escalado ascendente. Del mismomodo, la limitación Minimum instances (Número mínimo de instancias) especifica el número mínimo deinstancias Amazon EC2 y se aplica a todas las reglas de escalado descendente.

• El Rule name (Nombre de la regla), que debe ser único en la política.• El ajuste de escalado, que determina el número de instancias EC2 que desea añadir (para las reglas

de escalado ascendente) o terminar (para las reglas de escalado descendente) durante la actividad deescalado activada por la regla.

• La CloudWatch metric (Métrica de CloudWatch), que se vigila para detectar condiciones de alarma.• Un operador de comparaciones, que se utiliza para comparar la métrica de CloudWatch con el valor de

Threshold (Umbral) y determinar una condición de disparador.• Un periodo de evaluación, en incrementos de cinco minutos, durante el cual la métrica de CloudWatch

debe estar en condición de disparador antes de activar la actividad de escalado.• Un Cooldown period (período de recuperación) en segundos, que determina la cantidad de tiempo

que debe transcurrir entre una actividad de escalado iniciada por una regla y el inicio de la próximaactividad de escalado, con independencia de la regla que la activa. Cuando un grupo de instanciasha finalizado una actividad de escalado y alcanza su estado posterior al escalado, el periodo derecuperación ofrece una oportunidad para las métricas de CloudWatch que podrían disparar actividadesde escalado siguientes para estabilizar. Para obtener más información, consulte el tema relacionado conlas recuperaciones de escalado de Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.

Uso de la Consola de administración de AWS para configurar elescalado automáticoAl crear un clúster, se configura una política de escalado para grupos de instancias utilizando las opcionesavanzadas de configuración de clúster. También puede crear o modificar una política de escalado para ungrupo de instancias en servicio modificando los grupos de instancias en la configuración de Hardware deun clúster existente.

1. Si está creando un clúster, en la consola de Amazon EMR, seleccione Create Cluster (Crear clúster),seleccione Go to advanced options (Ir a las opciones avanzadas), elija opciones para Step 1: Softwareand Steps (Paso 1: Software y pasos) y, a continuación, vaya a Step 2: Hardware Configuration (Paso2: Configuración de hardware).

—o bien—

Si está modificando un grupo de instancias en un clúster en ejecución, seleccione el clúster en la listade clústeres y, a continuación, expanda la sección Hardware.

384

Page 392: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

2. En la sección Escalado del clúster seleccione Habilitar optimización del clúster. A continuación,seleccione Crear una política de escalado automático personalizada.

En la tabla Políticas de escalado automático personalizadas, haga clic en el icono de lápiz queaparece en la fila del grupo de instancias que desea configurar. Se abre la pantalla de reglas AutoScaling.

3. Escriba el valor de Maximum instances (Número máximo de instancias) que desea que contengael grupo de instancias después del escalado ascendente y el valor de Minimum instances (Númeromínimo de instancias) que desea que contenga el grupo de instancias después del escaladodescendente.

4. Haga clic en el icono de lápiz para editar los parámetros de regla, haga clic en la X para eliminaruna regla de la política y, a continuación, haga clic en Add rule (Añadir regla) para añadir reglasadicionales.

5. Elija los parámetros de la configuración, tal como se describió anteriormente en este tema. Paraobtener descripciones de las métricas de CloudWatch disponibles para Amazon EMR, consulte eltema relacionado con las métricas y dimensiones de Amazon EMR en la Guía del usuario de AmazonCloudWatch.

Uso de la AWS CLI para configurar el escalado automáticoPuede utilizar comandos de la AWS CLI para Amazon EMR si desea configurar el escalado automático alcrear un clúster y al crear un grupo de instancias. Puede utilizar una sintaxis abreviada, especificando laconfiguración JSON insertada dentro de los comandos pertinentes o puede hacer referencia a un archivoque contenga la configuración JSON. También puede aplicar una política de escalado automático a ungrupo de instancias existente y eliminar la política de escalado automático que se aplicó anteriormente.Además, puede recuperar detalles de una configuración de política de escalado desde un clúster enejecución.

Important

Al crear un clúster con una política de escalado automático, es necesario utilizar el comando --auto-scaling-role MyAutoScalingRole para especificar el rol de IAM para el escaladoautomático. El rol predeterminado es EMR_AutoScaling_DefaultRole y se puede crearmediante el comando create-default-roles. El rol solo se puede añadir cuando se crea elclúster y no se puede añadir a un clúster existente.

Para obtener una descripción detallada de los parámetros disponibles a la hora de configurar una políticade escalado automático, consulte PutAutoScalingPolicy en la Amazon EMR API Reference.

Creación de un clúster con una política de escalado automático aplicada a ungrupo de instancias

Puede especificar una configuración de escalado automático dentro de la opción --instance-groups del comando aws emr create-cluster. El siguiente ejemplo ilustra un comando create-cluster donde se proporciona una política insertada de escalado automático para el grupo de instanciassecundarias. El comando crea una configuración de escalado equivalente a la política predeterminadade escalado ascendente que aparece al crear una política de escalado automático mediante la Consolade administración de AWS para Amazon EMR. Por razones de brevedad, no se muestra una política deescalado descendente. No recomendamos la creación de una regla de escalado ascendente sin una reglade escalado descendente.

aws emr create-cluster --release-label emr-5.2.0 --service-role EMR_DefaultRole --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole --auto-scaling-role EMR_AutoScaling_DefaultRole --instance-groups

385

Page 393: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

Name=MyMasterIG,InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1 'Name=MyCoreIG,InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=2,MaxCapacity=10},Rules=[{Name=Default-scale-out,Description=Replicates the default scale-out rule in the console.,Action={SimpleScalingPolicyConfiguration={AdjustmentType=CHANGE_IN_CAPACITY,ScalingAdjustment=1,CoolDown=300}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=LESS_THAN,EvaluationPeriods=1,MetricName=YARNMemoryAvailablePercentage,Namespace=AWS/ElasticMapReduce,Period=300,Statistic=AVERAGE,Threshold=15,Unit=PERCENT,Dimensions=[{Key=JobFlowId,Value="${emr.clusterId}"}]}}}]}'

El siguiente comando ilustra el uso de la línea de comandos para proporcionar la definición de políticade escalado automático como parte de un archivo de configuración de grupo de instancias denominadoinstancegroupconfig.json.

aws emr create-cluster --release-label emr-5.2.0 --service-role EMR_DefaultRole --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole --instance-groups file://your/path/to/instancegroupconfig.json --auto-scaling-role EMR_AutoScaling_DefaultRole

Con el contenido del archivo de configuración siguiente:

[{ "InstanceCount": 1, "Name": "MyMasterIG", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge"},{ "InstanceCount": 2, "Name": "MyCoreIG", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "AutoScalingPolicy": { "Constraints": { "MinCapacity": 2, "MaxCapacity": 10 }, "Rules": [ { "Name": "Default-scale-out", "Description": "Replicates the default scale-out rule in the console for YARN memory.", "Action":{ "SimpleScalingPolicyConfiguration":{ "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1, "CoolDown": 300 } }, "Trigger":{ "CloudWatchAlarmDefinition":{ "ComparisonOperator": "LESS_THAN", "EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Threshold": 15, "Statistic": "AVERAGE", "Unit": "PERCENT", "Dimensions":[

386

Page 394: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

{ "Key" : "JobFlowId", "Value" : "${emr.clusterId}" } ] } } } ] }}]

Añadir un grupo de instancias con una política de escalado automático a unclúster

Puede especificar una configuración de política de escalado utilizando la opción --instance-groupscon el comando add-instance-groups de la misma forma que puede al utilizar create-cluster. Enel siguiente ejemplo se utiliza una referencia a un archivo JSON, instancegroupconfig.json, con laconfiguración de grupo de instancias.

aws emr add-instance-groups --cluster-id j-1EKZ3TYEVF1S2 --instance-groups file://your/path/to/instancegroupconfig.json

Aplicar una política de escalado automático a un grupo de instancias existente omodificar una política aplicada

Utilice el comando aws emr put-auto-scaling-policy para aplicar una política de escaladoautomático a un grupo de instancias existente. El grupo de instancias debe formar parte de un clúster queutiliza el rol de IAM de escalado automático. En el siguiente ejemplo se utiliza una referencia a un archivoJSON, autoscaleconfig.json, que especifica la configuración de política de escalado.

aws emr put-auto-scaling-policy --cluster-id j-1EKZ3TYEVF1S2 --instance-group-id ig-3PLUZBA6WLS07 --auto-scaling-policy file://your/path/to/autoscaleconfig.json

El contenido del archivo autoscaleconfig.json, que define la misma regla de escalado ascendente, taly como se muestra en el ejemplo anterior, se muestra a continuación.

{ "Constraints": { "MinCapacity": 2, "MaxCapacity": 10 }, "Rules": [{ "Name": "Default-scale-out", "Description": "Replicates the default scale-out rule in the console for YARN memory.", "Action": { "SimpleScalingPolicyConfiguration": { "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1, "CoolDown": 300 } }, "Trigger": { "CloudWatchAlarmDefinition": { "ComparisonOperator": "LESS_THAN",

387

Page 395: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

"EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Threshold": 15, "Statistic": "AVERAGE", "Unit": "PERCENT", "Dimensions": [{ "Key": "JobFlowId", "Value": "${emr.clusterId}" }] } } }] }}]

Eliminación de una política de escalado automático desde un grupo de instancias

aws emr remove-auto-scaling-policy --cluster-id j-1EKZ3TYEVF1S2 --instance-group-id ig-3PLUZBA6WLS07

Recuperación de una configuración de política de escalado automático

El comando describe-cluster recupera la configuración de la política en el bloque InstanceGroup.Por ejemplo, el comando siguiente recupera la configuración para el clúster con un ID de clúster dej-1CWOHP4PI30VJ.

aws emr describe-cluster –-cluster-id j-1CWOHP4PI30VJ

El comando produce el siguiente resultado de ejemplo.

{ "Cluster": { "Configurations": [], "Id": "j-1CWOHP4PI30VJ", "NormalizedInstanceHours": 48, "Name": "Auto Scaling Cluster", "ReleaseLabel": "emr-5.2.0", "ServiceRole": "EMR_DefaultRole", "AutoTerminate": false, "TerminationProtected": true, "MasterPublicDnsName": "ec2-54-167-31-38.compute-1.amazonaws.com", "LogUri": "s3n://aws-logs-232939870606-us-east-1/elasticmapreduce/", "Ec2InstanceAttributes": { "Ec2KeyName": "performance", "AdditionalMasterSecurityGroups": [], "AdditionalSlaveSecurityGroups": [], "EmrManagedSlaveSecurityGroup": "sg-09fc9362", "Ec2AvailabilityZone": "us-east-1d", "EmrManagedMasterSecurityGroup": "sg-0bfc9360", "IamInstanceProfile": "EMR_EC2_DefaultRole" }, "Applications": [ { "Name": "Hadoop", "Version": "2.7.3"

388

Page 396: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

} ], "InstanceGroups": [ { "AutoScalingPolicy": { "Status": { "State": "ATTACHED", "StateChangeReason": { "Message": "" } }, "Constraints": { "MaxCapacity": 10, "MinCapacity": 2 }, "Rules": [ { "Name": "Default-scale-out", "Trigger": { "CloudWatchAlarmDefinition": { "MetricName": "YARNMemoryAvailablePercentage", "Unit": "PERCENT", "Namespace": "AWS/ElasticMapReduce", "Threshold": 15, "Dimensions": [ { "Key": "JobFlowId", "Value": "j-1CWOHP4PI30VJ" } ], "EvaluationPeriods": 1, "Period": 300, "ComparisonOperator": "LESS_THAN", "Statistic": "AVERAGE" } }, "Description": "", "Action": { "SimpleScalingPolicyConfiguration": { "CoolDown": 300, "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1 } } }, { "Name": "Default-scale-in", "Trigger": { "CloudWatchAlarmDefinition": { "MetricName": "YARNMemoryAvailablePercentage", "Unit": "PERCENT", "Namespace": "AWS/ElasticMapReduce", "Threshold": 75, "Dimensions": [ { "Key": "JobFlowId", "Value": "j-1CWOHP4PI30VJ" } ], "EvaluationPeriods": 1, "Period": 300, "ComparisonOperator": "GREATER_THAN", "Statistic": "AVERAGE" } }, "Description": "",

389

Page 397: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

"Action": { "SimpleScalingPolicyConfiguration": { "CoolDown": 300, "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": -1 } } } ] }, "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "Name": "Core - 2", "ShrinkPolicy": {}, "Status": { "Timeline": { "CreationDateTime": 1479413437.342, "ReadyDateTime": 1479413864.615 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "RunningInstanceCount": 2, "Id": "ig-3M16XBE8C3PH1", "InstanceGroupType": "CORE", "RequestedInstanceCount": 2, "EbsBlockDevices": [] }, { "Configurations": [], "Id": "ig-OP62I28NSE8M", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "Name": "Master - 1", "ShrinkPolicy": {}, "EbsBlockDevices": [], "RequestedInstanceCount": 1, "Status": { "Timeline": { "CreationDateTime": 1479413437.342, "ReadyDateTime": 1479413752.088 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "RunningInstanceCount": 1 } ], "AutoScalingRole": "EMR_AutoScaling_DefaultRole", "Tags": [], "BootstrapActions": [], "Status": { "Timeline": { "CreationDateTime": 1479413437.339, "ReadyDateTime": 1479413863.666 }, "State": "WAITING", "StateChangeReason": { "Message": "Cluster ready after last step completed." }

390

Page 398: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCambiar manualmente el tamaño de un clúster en ejecución

} }}

Cambiar manualmente el tamaño de un clúster enejecuciónPuede añadir y eliminar instancias en los grupos de instancias secundarias y de tareas, así como enlas flotas de instancias, de un clúster en ejecución mediante la Consola de administración de AWS, laAWS CLI o la API de Amazon EMR. Si un clúster utiliza grupos de instancias, es necesario cambiarde forma explícita el recuento de instancias. Si el clúster utiliza flotas de instancias, puede cambiar lasunidades de destino en las instancias bajo demanda y las instancias de spot. A continuación, la flota deinstancias añadirá y eliminará instancias para satisfacer los requisitos del nuevo destino. Para obtenermás información, consulte Opciones de flota de instancias (p. 142). Las aplicaciones pueden utilizar lasinstancias Amazon EC2 recién aprovisionadas para alojar nodos tan pronto como las instancias esténdisponibles. Cuando se eliminan instancias, Amazon EMR termina las tareas de forma que no interrumpelos trabajos y protege frente a la pérdida de datos. Para obtener más información, consulte Terminar alcompletar la tarea (p. 396).

Cambiar el tamaño de un clúster utilizando la consolaPuede utilizar la consola de Amazon EMR para cambiar el tamaño de un clúster en ejecución.

Para cambiar el recuento de instancias de un clúster en ejecución existente mediante la consola

1. En la página Cluster List (Lista de clústeres), elija un clúster para cambiarlo de tamaño.2. En la página Cluster Details (Detalles del clúster), elija Hardware.3. Si el clúster utiliza grupos de instancias, elija Resize (Cambiar tamaño) en la columna Instance count

(Recuento de instancias) para el grupo de instancias cuyo tamaño desea cambiar, escriba un nuevorecuento de instancias y, a continuación, seleccione la marca de verificación verde.

–O–

Si el clúster utiliza flotas de instancias, elija Resize (Cambiar tamaño) en la columna Provisionedcapacity (Capacidad aprovisionada), escriba valores nuevos para On-demand units (Unidades bajodemanda) y Spot units (Unidades de spot) y, a continuación, elija Resize (Cambiar tamaño).

391

Page 399: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCambiar manualmente el tamaño de un clúster en ejecución

Cuando se realiza un cambio en el número de nodos, se actualiza el Status (Estado) de las actualizacionesdel grupo de instancias. Cuando finaliza el cambio solicitado, el Status (Estado) es Running (En ejecución).

Cambiar el tamaño de un clúster utilizando la AWS CLIPuede utilizar la AWS CLI para cambiar el tamaño de un clúster en ejecución. Puede aumentar o reducir elnúmero de nodos de tareas y puede aumentar el número de nodos secundarios en un clúster en ejecución.También es posible terminar una instancia en el grupo de instancias secundarias utilizando la AWS CLIo la API. Esto debe hacerse con precaución. La terminación de una instancia en el grupo de instanciassecundarias conlleva un riesgo de pérdida de datos y la instancia no se sustituye automáticamente.

Además de cambiar el tamaño de los grupos se instancias secundarias y de tareas, también puede añadiruno o varios grupos de instancias de tareas a un clúster en ejecución utilizando la AWS CLI.

Para cambiar el tamaño de un clúster cambiando el recuento de instancias mediante la AWS CLI

Puede añadir instancias al grupo secundario o al grupo de tareas, así como eliminar instancias delgrupo de tareas, utilizando el subcomando modify-instance-groups de la AWS CLI con elparámetro InstanceCount. Para añadir instancias a los grupos de instancias secundarias o de tareas,aumente el InstanceCount. Para reducir el número de instancias en el grupo de tareas, reduzca elInstanceCount. Al cambiar el recuento de instancias del grupo de tareas a 0 se eliminan todas lasinstancias, pero no el grupo de instancias.

• Para aumentar el número de instancias del grupo de instancias de tareas de 3 a 4, escriba el siguientecomando y sustituya ig-31JXXXXXXBTO por el ID del grupo de instancias.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-31JXXXXXXBTO,InstanceCount=4

Para recuperar el InstanceGroupId, utilice el subcomando describe-cluster. La salida es unobjeto JSON denominado Cluster que contiene el ID de cada grupo de instancias. Para utilizar este

392

Page 400: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCambiar manualmente el tamaño de un clúster en ejecución

comando, necesita el ID del clúster (que puede recuperar utilizando el comando aws emr list-clusters o la consola). Para recuperar el ID del grupo de instancias, escriba el siguiente comando ysustituya j-2AXXXXXXGAPLF por el ID del clúster.

aws emr describe-cluster --cluster-id j-2AXXXXXXGAPLF

Utilizando la AWS CLI, también es posible terminar una instancia en el grupo de instanciassecundarias con el subcomando --modify-instance-groups.

Warning

Debe prestarse especial atención cuando se especifique EC2InstanceIdsToTerminate.Las instancias se terminan de forma inmediata, independientemente del estadode las aplicaciones que se ejecutan en ellas y de que la instancia no se sustituyaautomáticamente. Esto ocurre independientemente de la configuración de Scale downbehavior (Comportamiento de escalado descendente) del clúster. Terminar una instanciade esta forma conlleva el riesgo de pérdida de datos y de un comportamiento del clústerimprevisible.

Para terminar una instancia específica, necesita el ID del grupo de instancias (devuelto por elsubcomando aws emr describe-cluster --cluster-id) y el ID de la instancia (devuelto por elsubcomando aws emr list-instances --cluster-id); una vez que consiga dichos ID, escribael comando siguiente, sustituya ig-6RXXXXXX07SA por el ID del grupo de instancias y sustituya i-f9XXXXf2 por el ID de la instancia.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-6RXXXXXX07SA,EC2InstanceIdsToTerminate=i-f9XXXXf2

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Para cambiar el tamaño de un clúster añadiendo grupos de instancias de tareas mediante la AWSCLI

La AWS CLI le permite añadir entre 1 –y 48 grupos de instancias de tareas a un clúster con el subcomando--add-instance-groups. Los grupos de instancias de tareas solo se pueden añadir a un clúster quecontenga un grupo de instancias principales y un grupo de instancias secundarias. Con la AWS CLI, puedeañadir hasta cinco grupos de instancias de tareas cada vez que utilice el subcomando --add-instance-groups.

1. Para añadir un único grupo de instancias de tareas a un clúster, escriba el siguiente comando ysustituya j-JXBXXXXXX37R por el ID del clúster.

aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge

2. Para añadir varios grupos de instancias de tareas a un clúster, escriba el siguiente comando ysustituya j-JXBXXXXXX37R por el ID del clúster. Puede añadir hasta cinco grupos de instancias detareas en un solo comando.

aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge InstanceCount=10,InstanceGroupType=task,InstanceType=m5.xlarge

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI,consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

393

Page 401: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCambiar manualmente el tamaño de un clúster en ejecución

Interrupción de un cambio de tamañoSi utiliza la versión 4.1.0 o posterior de Amazon EMR, puede realizar un cambio de tamaño en medio deuna operación de cambio de tamaño existente. Además, puede parar una solicitud de cambio de tamañoenviada previamente o enviar una nueva solicitud para anular una solicitud anterior sin necesidad deesperar a que finalice. También puede detener un cambio de tamaño existente desde la consola o a travésde la llamada al API ModifyInstanceGroups con el recuento actual como el recuento de destino delclúster.

La siguiente captura de pantalla muestra un grupo de instancias de tareas que se está cambiando detamaño, pero que puede interrumpirse eligiendo Stop (Detener).

Para interrumpir un cambio de tamaño mediante la AWS CLI

Puede utilizar la AWS CLI para detener un cambio de tamaño utilizando el subcomando modify-instance-groups. Supongamos que tiene seis instancias en un grupo de instancias y que deseaaumentarlo a 10. Más tarde decide que desea cancelar esta solicitud:

• La solicitud inicial:

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=10

La segunda solicitud para detener la primera solicitud:

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=6

Note

Dado que este proceso es asíncrono, es posible que vea que los recuentos de instancias cambiancon respecto las solicitudes de la API previas antes de que se realicen las solicitudes siguientes.En el caso de disminución, es posible que si tiene el trabajo en ejecución en los nodos, el grupode instancias podría no reducirse hasta que los nodos hayan completado su trabajo.

Estado arrestadoUn grupo de instancias pasa al estado arrestado si encuentra demasiados errores al intentar iniciar nodosdel clúster nuevos. Por ejemplo, si los nodos nuevos devuelven error repetidamente al llevar a caboacciones de arranque, el grupo de instancias pasa al estado ARRESTED, en lugar de aprovisionar deforma continua nuevos nodos. Después de haber resuelto el error subyacente, restablezca el númerodeseado de nodos en el grupo de instancias del clúster y, a continuación, el grupo de instancias reanudala asignación de nodos. La modificación de una instancia grupo da instrucciones a Amazon EMR paraintentar volver a aprovisionar los nodos. Ningún nodo en ejecución se reinicia ni se termina.

En la AWS CLI, el subcomando list-instances devuelve todas las instancias y sus estados comohace el subcomando describe-cluster. Si Amazon EMR detecta un error con un grupo de instancias,cambia el estado del grupo a ARRESTED.

Para restablecer un clúster en un estado ARRESTED mediante la AWS CLI

Escriba el subcomando describe-cluster con el parámetro --cluster-id para ver el estado de lasinstancias en el clúster.

• Para ver información sobre todas las instancias y los grupos de instancias de un clúster, escriba elsiguiente comando y sustituya j-3KVXXXXXXY7UG por el ID del clúster.

394

Page 402: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónCambiar manualmente el tamaño de un clúster en ejecución

aws emr describe-cluster --cluster-id j-3KVXXXXXXY7UG

La salida muestra información sobre los grupos de la instancia y el estado de las instancias:

{ "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1413187781.245, "CreationDateTime": 1413187405.356 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "Ec2InstanceAttributes": { "Ec2AvailabilityZone": "us-west-2b" }, "Name": "Development Cluster", "Tags": [], "TerminationProtected": false, "RunningAmiVersion": "3.2.1", "NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187775.749, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Id": "ig-3ETXXXXXXFYV8", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187781.301, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "Id": "ig-3SUXXXXXXQ9ZM", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }

395

Page 403: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónReducción de escala del clúster

...}

Para ver información sobre un grupo de instancias determinado, escriba el subcomando list-instances con los parámetros --cluster-id e --instance-group-types. Puede consultarinformación para los grupos MASTER, CORE o TASK.

aws emr list-instances --cluster-id j-3KVXXXXXXY7UG --instance-group-types "CORE"

Utilice el subcomando modify-instance-groups con el parámetro --instance-groups pararestablecer un clúster en el estado ARRESTED. El subcomando describe-cluster devuelve el iddel grupo de instancias.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-3SUXXXXXXQ9ZM,InstanceCount=3

Reducción de escala del clústerCon la versión 5.1.0 o posterior de Amazon EMR, existen dos opciones para el comportamiento dereducción de escala: terminar en el límite por instancia y hora para la facturación de Amazon EC2 oterminar al completar la tarea. A partir de la versión 5.10.0 de Amazon EMR, la configuración para laterminación en el límite por instancia y hora ha quedado obsoleta debido a la introducción de la facturaciónpor segundo de Amazon EC2. No recomendamos especificar la terminación en el límite por instancia yhora en las versiones en las que la opción está disponible.

Warning

Si utiliza la AWS CLI para emitir un comando modify-instance-groups conEC2InstanceIdsToTerminate, estas instancias se terminan de forma inmediata, sin teneren cuenta estos ajustes e independientemente del estado de las aplicaciones que se ejecutanen ellas. Terminar una instancia de esta forma conlleva el riesgo de pérdida de datos y de uncomportamiento del clúster imprevisible.

Cuando se especifica terminar al completar la tarea, Amazon EMR envía a la lista negra y vacía las tareasde los nodos antes de terminar las instancias Amazon EC2. Sea cual sea el comportamiento especificado,Amazon EMR no termina las instancias Amazon EC2 de los grupos de instancias secundarias si ello puededar lugar a que se dañen los datos de HDFS.

Terminar al completar la tareaAmazon EMR le permite reducir la escala del clúster sin que ello afecte a la carga de trabajo. AmazonEMR retira apropiadamente YARN, HDFS y otros demonios de los nodos secundarios y de tareas duranteuna operación de reducción de tamaño sin perder datos ni interrumpir trabajos. Amazon EMR solo reducelos grupos de instancias si el trabajo asignado a los grupos se ha completado y están inactivos. Para laretirada de NodeManager de YARN, puede ajustar manualmente el tiempo que un nodo espera para laretirada.

Este tiempo se establece mediante una propiedad de la clasificación de configuraciónyarn-site. Si utiliza la versión 5.12.0 o posterior de Amazon EMR, especifique lapropiedad yarn.resourcemanager.nodemanager-graceful-decommission-timeout-secs. Si utiliza versiones anteriores de Amazon EMR, especifique la propiedadyarn.resourcemanager.decommissioning.timeout.

Si sigue habiendo contenedores en ejecución en aplicaciones YARN cuando transcurre el tiempo deespera de retirada, se obliga la retirada del nodo y las reprogramaciones de YARN afectan a contenedores

396

Page 404: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónReducción de escala del clúster

de otros nodos. El valor predeterminado es de 3 600 segundos (una hora). Puede definir este tiempode espera con un valor arbitrariamente alto para obligar a que la reducción apropiada espere más. Paraobtener más información, consulte Graceful Decommission of YARN Nodes en la documentación deApache Hadoop.

Grupos de nodos de tareas

Amazon EMR selecciona de manera inteligente las instancias que no están ejecutando tareas relacionadascon ningún paso ni ninguna aplicación y las elimina de un clúster en primer lugar. Si se están utilizandotodas las instancias del clúster, Amazon EMR espera a que las tareas se completen en una instancia dadaantes de eliminarlas del clúster. El tiempo de espera predeterminado es de una hora y este valor se puedemodificar definiendo yarn.resourcemanager.decommissioning.timeout. Amazon EMR utilizade forma dinámica la configuración nueva. Puede definirlo en un número arbitrariamente grande paragarantizar que las tareas no se cancelen al reducir el clúster.

Grupos de nodos secundarios

En los nodos secundarios, tanto los demonios NodeManager de YARN y DataNode de HDFS se debenretirar para que el grupo de instancias se reduzca. Para YARN, la reducción apropiada garantiza que unnodo marcado para retirada solo pase al estado DECOMMISSIONED si no hay contenedores o aplicacionespendientes o incompletos. La retirada finaliza de inmediato si no hay contenedores en ejecución en el nodoal principio de la retirada.

Para HDFS, la reducción apropiada garantiza que la capacidad de destino de HDFS sea lo suficientementegrande como para adaptarse a todos los bloques existentes. Si la capacidad de destino no es losuficientemente grande, solo una cantidad parcial de las instancias secundarios se retiran de forma que losnodos restantes pueden gestionar los datos actuales residentes en HDFS. Debe garantizar una capacidadde HDFS adicional para permitir una retirada adicional. También debe intentar minimizar la E/S de escrituraantes de intentar reducir los grupos de instancias, dado que podría retrasar la finalización de la operaciónde cambio de tamaño.

Otro límite es el factor de replicación predeterminado, dfs.replication dentro de /etc/hadoop/conf/hdfs-site. Amazon EMR configura el valor en función del número de instancias del clúster: 1para 1-3 instancias, 2 para 4-9 instancias y 3 para 10 o más instancias. La reducción apropiada no permitereducir nodos secundarios por debajo del factor de replicación de HDFS; esto tiene como objetivo evitarque HDFS sea incapaz de cerrar archivos debido a réplicas insuficientes. Para evitar este límite, debereducir el factor de replicación y reiniciar el demonio NameNode.

Configuración del comportamiento de reducción de escala deAmazon EMR

Note

Esta característica de configuración solo está disponible para Amazon EMR versiones 5.1.0 oposteriores.

Puede utilizar la Consola de administración de AWS, la AWS CLI o la API de Amazon EMR para configurarel comportamiento de reducción de escala al crear un clúster. La configuración de reducción de escalamediante la Consola de administración de AWS se realiza en la pantalla Step 3: General Cluster Settings(Paso 3: Configuración general del clúster) al crear un clúster utilizando las Advanced options (Opcionesavanzadas).

397

Page 405: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónClonación de un clúster utilizando la consola

Al crear un clúster con la AWS CLI, utilice la opción --ScaleDownBehavior para especificarTERMINATE_AT_INSTANCE_HOUR o bien TERMINATE_AT_TASK_COMPLETION.

Clonación de un clúster utilizando la consolaPuede utilizar la consola de Amazon EMR para clonar un clúster, lo que realiza una copia de laconfiguración del clúster original para utilizarla como base de un nuevo clúster.

Para clonar un clúster utilizando la consola

1. En la página Cluster List (Lista de clústeres), haga clic en el clúster que desea clonar.2. En la parte superior de la página Cluster Details (Detalles del clúster), haga clic en Clone (Clonar).

En el cuadro de diálogo, elija Yes (Sí) para incluir los pasos del clúster original en el clúster declonado. Elija No para clonar la configuración del clúster original sin incluir ninguno de los pasos.

Note

Para clústeres creados utilizando AMI 3.1.1 y versiones posteriores (Hadoop 2.x) o AMI 2.4.8y versiones posteriores (Hadoop 1.x), si clona un clúster e incluye pasos, todos los pasosdel sistema (como la configuración de Hive) se clonan con pasos enviados por el usuario,hasta 1 000 en total. Los pasos más antiguos que ya no aparezcan en el historial de pasosde la consola no se pueden clonar. Para AMI anteriores, solo se pueden clonar 256 pasos(incluidos los pasos del sistema). Para obtener más información, consulte Enviar trabajo a unclúster (p. 398).

3. La página Create Cluster (Crear clúster) aparece con una copia de la configuración del clúster original.Revise la configuración, realice todos los cambios necesarios y, a continuación, haga clic en CreateCluster (Crear clúster).

Enviar trabajo a un clústerEn esta sección se describen los métodos para enviar trabajo a un clúster de Amazon EMR. Puede enviartrabajo a un clúster añadiendo pasos o de forma interactiva enviando trabajos de Hadoop al nodo principal.El número máximo de pasos PENDING y ACTIVE permitidos en un clúster es 256. Puede enviar trabajosde forma interactiva al nodo principal incluso si tiene 256 pasos activos en ejecución en el clúster. Puedeenviar un número ilimitado de pasos a lo largo de la vida útil de un clúster en ejecución prolongada, perosolo puede haber 256 pasos ACTIVE o PENDING en un momento dado.

Temas• Trabajo con pasos utilizando la AWS CLI y la consola (p. 399)

398

Page 406: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTrabajo con pasos utilizando la AWS CLI y la consola

• Enviar trabajos de Hadoop interactivamente (p. 403)• Añadir más de 256 pasos a un clúster (p. 405)

Trabajo con pasos utilizando la AWS CLI y la consolaPuede añadir pasos a un clúster utilizando la Consola de administración de AWS, la AWS CLI o la APIde Amazon EMR. El número máximo de pasos PENDING y ACTIVE permitidos en un clúster es 256,que incluye pasos del sistema como instalar Apache Pig, instalar Hive, instalar HBase y configurar ladepuración. Puede enviar un número ilimitado de pasos a lo largo de la vida útil de un clúster en ejecuciónprolongada, pero solo puede haber 256 pasos ACTIVE o PENDING en un momento dado.

Con las versiones 4.8.0 y posteriores de Amazon EMR, excepto la versión 5.0.0, puede cancelar los pasospendientes mediante la Consola de administración de AWS, la AWS CLI o la API de Amazon EMR.

Con las versiones 5.28.0 y posteriores de Amazon EMR, puede cancelar los pasos pendientes y enejecución. También puede optar por ejecutar varios pasos en paralelo para mejorar la utilización del clústery ahorrar costos.

Temas• Adición de pasos a un clúster mediante la consola (p. 399)• Adición de pasos a un clúster mediante la AWS CLI (p. 400)• Consideraciones para ejecutar varios pasos en paralelo (p. 402)• Visualización de pasos (p. 402)• Cancelación de pasos (p. 403)

Adición de pasos a un clúster mediante la consolaPuede añadir pasos a un clúster utilizando la AWS CLI, el SDK de Amazon EMR o la Consola deadministración de AWS.

Para añadir pasos durante la creación del clúster

Con la Consola de administración de AWS, puede añadir pasos a un clúster al crear el clúster.

1. En la consola de Amazon EMR, elija Create Cluster - Advanced Options (Crear clúster - Opcionesavanzadas).

2. En la página Step 1: Software and Steps (Paso 1: Software y pasos), en Steps (optional) (Pasos(opcional)), seleccione Run multiple steps in parallel to improve cluster utilization and save cost(Ejecutar varios pasos en paralelo para mejorar la utilización del clúster y ahorrar costos). El valorpredeterminado para el nivel de simultaneidad es 10. Puede elegir entre 2 y 256 pasos que se puedenejecutar en paralelo.

Note

Ejecutar varios pasos en paralelo solo es compatible con las versiones 5.28.0 y posterioresde Amazon EMR.

3. En After last step completes (Después de completar el último paso), elija Cluster enters waiting state(El cluster entra en estado de espera) o Auto-terminate the cluster (Terminar automáticamente elclúster).

4. Elija Step type (Tipo de paso) y, a continuación, Add step (Añadir paso).5. Escriba los valores adecuados en los campos del cuadro de diálogo Add Step (Añadir paso). Las

opciones varían según el tipo de paso. Si ha habilitado Run multiple steps in parallel to improve cluster

399

Page 407: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTrabajo con pasos utilizando la AWS CLI y la consola

utilization and save cost (Ejecutar varios pasos en paralelo para mejorar la utilización del clúster yahorrar costos), la única opción disponible para Action on failure (Acción en caso de error) es Continue(Continuar). A continuación, elija Add (Añadir).

Para añadir pasos a un clúster en ejecución

Mediante la Consola de administración de AWS, puede añadir pasos a un clúster en ejecución prolongada;es decir, un clúster con la opción de terminación automática deshabilitada.

1. En la consola de Amazon EMR, en la página Cluster List (Lista de clústeres), seleccione el enlace delclúster.

2. En la página Cluster Details (Detalles del clúster), seleccione la pestaña Steps (Pasos).3. En la pestaña Steps (Pasos) elija Add step (Añadir paso).4. Escriba los valores adecuados en los campos del cuadro de diálogo Add Step (Añadir paso) y, a

continuación, elija Add (Añadir). Las opciones varían según el tipo de paso.

Para modificar el nivel de simultaneidad de pasos en un clúster en ejecución

Con la Consola de administración de AWS, puede modificar el nivel de simultaneidad de pasos en unclúster en ejecución.

Note

Ejecutar varios pasos en paralelo solo es compatible con las versiones 5.28.0 y posteriores deAmazon EMR.

1. En la consola de Amazon EMR, en la página Cluster List (Lista de clústeres), seleccione el enlace delclúster.

2. En la página Cluster Details (Detalles del clúster), seleccione la pestaña Steps (Pasos).3. En Concurrency (Simultaneidad), elija Change (Cambiar). Seleccione un nuevo valor para el nivel de

simultaneidad de pasos y, a continuación, guarde el cambio.

Adición de pasos a un clúster mediante la AWS CLILos siguientes procedimientos muestran cómo añadir pasos a un clúster recién creado y a un clúster enejecución utilizando la AWS CLI. En ambos ejemplos, el subcomando --steps se utiliza para añadirpasos al clúster.

Para añadir pasos durante la creación del clúster

• Escriba el siguiente comando para crear un clúster y añadir un paso de Apache Pig. Sustituya myKeypor el nombre del par de claves de Amazon EC2 y sustituya mybucket por el nombre del bucket deAmazon S3.

• Linux, UNIX y macOS

aws emr create-cluster --name "Test cluster" --ami-version 2.4 --applications Name=Hive Name=Pig \--use-default-roles --ec2-attributes KeyName=myKey \--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m5.xlarge \--steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]

400

Page 408: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTrabajo con pasos utilizando la AWS CLI y la consola

• Windows

aws emr create-cluster --name "Test cluster" --ami-version 2.4 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m5.xlarge --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]

Note

La lista de argumentos cambia en función del tipo de paso.

De forma predeterminada, el nivel de simultaneidad de pasos es 1. Puede establecer el nivel desimultaneidad de pasos mediante el parámetro StepConcurrencyLevel al crear un clúster.

La salida de un identificador de clúster es similar a la siguiente.

{ "ClusterId": "j-2AXXXXXXGAPLF"}

Para añadir un paso a un clúster en ejecución

• Escriba el siguiente comando para añadir un paso a un clúster en ejecución. Sustituyaj-2AXXXXXXGAPLF por el ID del clúster y mybucket por el nombre del bucket de Amazon S3.

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=PIG,Name="Pig Program",Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]

La salida es un identificador de paso similar al siguiente.

{ "StepIds": [ "s-Y9XXXXXXAPMD" ]}

Para modificar StepConcurrencyLevel en un clúster en ejecución

1. En un clúster en ejecución, puede modificar StepConcurrencyLevel mediante la API ModifyCluster.Por ejemplo, escriba el siguiente comando para aumentar StepConcurrenyLevel a 10. Sustituyaj-2AXXXXXXGAPLF por el ID de su clúster.

aws emr modify-cluster --cluster-id j-2AXXXXXXGAPLF --step-concurrency-level 10

2. El resultado es similar al siguiente.

{"StepConcurrencyLevel": 10}

401

Page 409: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónTrabajo con pasos utilizando la AWS CLI y la consola

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Consideraciones para ejecutar varios pasos en paralelo• Al seleccionar un nivel de simultaneidad de pasos para el clúster, debe considerar si el tipo de instancia

del nodo maestro cumple o no los requisitos de memoria de las cargas de trabajo de usuario. El procesode ejecución del paso principal se ejecuta en el nodo maestro para cada paso. Para ejecutar variospasos en paralelo, se requiere más memoria y utilización de CPU en el nodo maestro que si los pasos seejecutan de uno en uno.

• Para gestionar los recursos y realizar las programaciones complejas de los pasos simultáneos, puedeutilizar las funciones de programación de YARN como FairScheduler o CapacityScheduler. Porejemplo, puede utilizar FairScheduler con un conjunto queueMaxAppsDefault para evitar que seejecuten más de un determinado número de trabajos a la vez.

• El nivel de simultaneidad de pasos está sujeto a las configuraciones de los administradores de recursos.Por ejemplo, si YARN está configurado con un paralelismo de solo 5, entonces únicamente podrátener cinco aplicaciones YARN ejecutándose en paralelo, aunque StepConcurrencyLevel se hayaestablecido en 10. Para obtener más información acerca de la configuración de administradores derecursos, consulte Configuración de aplicaciones en la Guía de publicación de Amazon EMR.

• Puede usar el escalado automático de EMR para escalar en sentido ascendente o descendente enfunción de los recursos de YARN y así evitar la contención de recursos. Para obtener más información,consulte Uso del escalado automático en Amazon EMR en la Guía de administración de Amazon EMR.

• Cuando se disminuye el nivel de simultaneidad de pasos, EMR permite que se completen todos lospasos en ejecución antes de reducir el número de pasos. Si los recursos se agotan porque el clústerestá ejecutando demasiados pasos simultáneos, recomendamos cancelar manualmente los pasos enejecución para liberar recursos.

Visualización de pasosEl número total de registros de pasos que puede ver (independientemente de su estado) es de 1 000. Estetotal incluye tanto los pasos del sistema como los pasos enviados por el usuario. Cuando el estado de lospasos enviados por el usuario cambia a COMPLETO o ERROR, los pasos adicionales enviados por elusuario se pueden agregar al clúster hasta que se alcance el límite de 1 000 pasos. Después de que los1 000 pasos se hayan añadido a un clúster, el envío de pasos adicionales provoca la eliminación de losregistros de pasos más antiguos enviados por el usuario. Estos registros no se eliminan de los archivos deregistro. Se eliminan en la pantalla de la consola y no aparecen cuando se utiliza la AWS CLI o la API pararecuperar la información del clúster. Los registros de paso del sistema no se eliminan nunca.

La información de paso que puede ver depende del mecanismo utilizado para recuperar la información delclúster. La tabla siguiente indica la información de paso devuelta por cada una de las opciones disponibles.

Opción DescribeJobFlow o --describe --jobflow

ListSteps o list-steps

SDK 256 pasos 1 000 pasos

CLI de AmazonEMR

256 pasos N/D

AWS CLI N/D 1000 pasos

API 256 pasos 1000 pasos

402

Page 410: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEnviar trabajos de Hadoop interactivamente

Cancelación de pasosPuede cancelar los pasos pendientes y en ejecución mediante la Consola de administración de AWS, laAWS CLI o la API DE Amazon EMR.

Para cancelar pasos utilizando la Consola de administración de AWS

1. En la consola de Amazon EMR, en la página Cluster List (Lista de clústeres), seleccione el enlace delclúster.

2. En la página Cluster Details (Detalles del clúster), expanda la sección Steps (Pasos).3. Para cada paso que desee cancelar, seleccione selecciónelo en la lista Steps (Pasos). A continuación,

seleccione Cancel step (Cancelar paso).4. En el cuadro de diálogo Cancel step (Cancelar paso) deje la opción predeterminada Cancel the

step and wait for it to exit (Cancelar el paso y esperar a que salga). Si desea finalizar el pasoinmediatamente sin esperar a que se complete ningún proceso, elija Cancel the step and force it to exit(Cancelar el paso y forzarlo a salir).

5. Seleccione Cancel step (Cancelar paso).

Para cancelar pasos utilizando la AWS CLI

• Utilice el comando aws emr cancel-steps, especificando el clúster y los pasos que deseacancelar. El siguiente ejemplo muestra un comando de AWS CLI para cancelar dos pasos.

aws emr cancel-steps --cluster-id j-2QUAJ7T3OTEI8 --step-ids s-3M8DKCZYYN1QE,s-3M8DKCZYYN1QE

Con Amazon EMR versión 5.28.0, puede elegir una de las dos siguientes opciones de cancelación para elparámetro StepCancellationOption al cancelar pasos.

• SEND_INTERRUPT_SIGNAL – Esta es la opción predeterminada. Cuando se recibe una solicitud decancelación de pasos, EMR envía una señal SIGTERM al proceso secundario del paso, hasta quefinaliza.

• TERMINATE_PROCESS – Cuando se selecciona esta opción, EMR envía una señal SIGKILL al procesosecundario del paso.

Enviar trabajos de Hadoop interactivamenteAdemás de añadir pasos a un clúster, puede conectarse al nodo principal utilizando un cliente SSH ola AWS CLI y enviar trabajos de Hadoop de forma interactiva. Por ejemplo, puede utilizar PuTTY paraestablecer una conexión SSH con el nodo maestro y enviar consultas interactivas de Hive. Las consultasse compilan en uno o más trabajos de Hadoop.

Puede enviar trabajos de Hadoop de forma interactiva estableciendo una conexión SSH al nodomaestro. Establezca la conexión SSH mediante un cliente SSH, como PuTTY u OpenSSH, o mediante elsubcomando SSH en el AWS CLI. Puede enviar trabajos de forma interactiva al nodo principal incluso sitiene 256 pasos activos en ejecución en el clúster. Tenga en cuenta que los registros asociados con lostrabajos enviados de forma interactiva se incluyen la sección de step created jobs (trabajos creados porpaso) del registro del controlador del paso en ejecución actualmente. Para obtener más información acercade los registros de pasos, consulte Ver archivos de registro (p. 320).

Los siguientes ejemplos muestran de forma interactiva el envío de trabajos de Hadoop y trabajos de Hiveal nodo principal. El proceso para enviar trabajos a otros marcos de programación, como Pig, es similar aestos ejemplos.

403

Page 411: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEnviar trabajos de Hadoop interactivamente

Para enviar trabajos de Hadoop de forma interactiva utilizando la AWS CLI

• Puede enviar trabajos de Hadoop de forma interactiva mediante la AWS CLI estableciendo unaconexión SSH en el comando de la AWS CLI mediante el subcomando ssh. Para copiar un archivoJAR desde su equipo de Windows local en el sistema de archivos del nodo principal, escriba elsiguiente comando. Sustituya j-2A6HXXXXXXL7J ID por el ID del clúster, sustituya mykey.ppk porel nombre del archivo de par de claves y sustituya myjar.jar por el nombre del archivo JAR.

aws emr put --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --src "C:\Users\username\myjar.jar"

Para crear una conexión SSH y enviar el trabajo de Hadoop myjar.jar, escriba el siguientecomando.

aws emr ssh --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --command "hadoop jar myjar.jar"

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Para enviar trabajos de Hive de forma interactiva utilizando la AWS CLI

Además de enviar trabajos al nodo principal a través de archivos JAR, puede enviar trabajos interactuandocon uno de los marcos de programación de Hadoop que se ejecutan en el nodo principal. Por ejemplo,puede enviar consultas de Hive o transformaciones de Pig de forma interactiva en la línea de comandoo puede enviar scripts al clúster para su procesamiento. Los comandos o scripts se compilaránseguidamente en uno o varios trabajos de Hadoop.

El siguiente procedimiento muestra la ejecución de un script de Hive utilizando la AWS CLI.

1. Si Hive no está instalado en el clúster, escriba el siguiente comando para instalarlo. Sustituyaj-2A6HXXXXXXL7J por el ID del clúster.

aws emr install-applications --cluster-id j-2A6HXXXXXXL7J --apps Name=Hive

2. Cree un script de Hive que contenga las consultas o los comandos que ejecutar. El siguiente scriptde ejemplo llamado my-hive.q crea dos tablas, aTable y anotherTable, y copia el contenido deaTable en anotherTable, sustituyendo todos los datos.

---- sample Hive script file: my-hive.q ----create table aTable (aColumn string) ;create table anotherTable like aTable;insert overwrite table anotherTable select * from aTable

3. Escriba los siguientes comandos para ejecutar el script desde la línea de comando utilizando elsubcomando ssh.

Para copiar my-hive.q desde un equipo de Windows a su clúster, escriba el siguiente comando.Sustituya j-2A6HXXXXXXL7J por el ID del clúster y sustituya mykey.ppk por el nombre del archivode par de claves.

aws emr put --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --src "C:\Users\username\my-hive.q"

Para crear una conexión SSH y enviar el script de Hive my-hive.q, escriba el siguiente comando.

404

Page 412: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAñadir más de 256 pasos a un clúster

aws emr ssh --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --command "hive -f my-hive.q"

Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Añadir más de 256 pasos a un clústerCon AMI 3.1.1 (Hadoop 2.x) o posterior y AMI 2.4.8 (Hadoop 1.x) o posterior, puede enviar un númeroilimitado de pasos durante la vida útil de un clúster de ejecución prolongada. Sin embargo, solo puedehaber 256 pasos PENDING (pendientes) o ACTIVE (activos) en un momento dado. Para versionesanteriores de la AMI, el número total de pasos que puede procesar un clúster se limita a 256, incluidos lospasos del sistema como, por ejemplo, instalar Hive e instalar Pig. Para obtener más información, consulteEnviar trabajo a un clúster (p. 398).

Existen varios métodos que puede utilizar para superar este límite de 256 pasos en las versiones de AMIanteriores a 3.1.1 y 2.4.8:

1. Haga que cada paso envíe varios trabajos a Hadoop. Esto no permite pasos ilimitados en versionesde AMI anteriores a 3.1.1 y a 2.4.8, pero es la solución más fácil si necesita un número fijo de pasossuperior a 256.

2. Escriba un programa de flujo de trabajo que se ejecute en un paso en un clúster en ejecuciónprolongada y envía los trabajos a Hadoop. El programa de flujo de trabajo puede realizar una de lassiguientes acciones:• Escuche una cola de Amazon SQS para recibir información sobre nuevos pasos que ejecutar.• Compruebe un bucket de Amazon S3 de manera periódica para archivos que contengan información

acerca de los nuevos pasos que ejecutar.3. Escriba un programa de flujo de trabajo que se ejecute en una instancia Amazon EC2 fuera de Amazon

EMR y envíe trabajos a sus clústeres de ejecución prolongada mediante SSH.4. Conéctese a su clúster de ejecución prolongada a través de SSH y envíe trabajos de Hadoop utilizando

la API de Hadoop. Para obtener más información, consulte http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/JobClient.html.

5. Conéctese al nodo maestro y envíe trabajos al clúster. Puede conectarse mediante un cliente SSH,como PuTTY u OpenSSH, y enviar trabajos manualmente al clúster, o bien utilizar el subcomandossh en la AWS CLI tanto para conectarse como para enviar trabajos. Para obtener más informaciónacerca de cómo establecer una conexión SSH con el nodo principal, consulte Conexión al nodo principalutilizando SSH (p. 354). Para obtener más información acerca del envío interactivo de trabajos deHadoop, consulte Enviar trabajos de Hadoop interactivamente (p. 403).

Automatización de clústeres periódicos con AWSData Pipeline

AWS Data Pipeline es un servicio que automatiza el movimiento y la transformación de datos. Puedeutilizarlo para programar la transferencia de datos de entrada en Amazon S3 y para programar ellanzamiento de clústeres para procesar dichos datos. Por ejemplo, considere el caso en que tiene unservidor web que graba registros de tráfico. Si desea ejecutar un clúster semanal para analizar los datosde tráfico, puede utilizar AWS Data Pipeline para programar dichos clústeres. AWS Data Pipeline es unflujo de trabajo basado en datos, de modo que una tarea (lanzamiento del clúster) puede depender de otratarea (trasladar los datos de entrada a Amazon S3). También tiene la funcionalidad de reintento eficaz.

405

Page 413: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónAutomatización de clústeres

periódicos con AWS Data Pipeline

Para obtener más información sobre AWS Data Pipeline, consulte la Guía para desarrolladores de AWSData Pipeline, especialmente los tutoriales referentes a Amazon EMR:

• Tutorial: lanzamiento de un flujo de trabajo de Amazon EMR• Introducción: procesar registros web con AWS Data Pipeline, Amazon EMR y Hive• Tutorial: importación y exportación de Amazon DynamoDB utilizando AWS Data Pipeline

406

Page 414: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración¿Qué herramientas hay disponibles

para resolución de problemas?

Solucionar problemas de un clústerUn clúster alojado por Amazon EMR se ejecuta en un ecosistema complejo compuesto de varios tipos desoftware de código abierto, código de aplicación personalizado y Amazon Web Services. Un problema encualquiera de estas partes puede provocar que el clúster falle o tarde en completarse más de lo previsto.Los siguientes temas le ayudarán a averiguar qué ha fallado en su clúster y le proporcionarán sugerenciassobre cómo solucionarlo.

Temas• ¿Qué herramientas hay disponibles para resolución de problemas? (p. 407)• Describe cómo visualizar y reiniciar Amazon EMR y los procesos de las aplicaciones

(demonios) (p. 409)• Solucionar problemas de clúster con errores (p. 410)• Solucionar problemas de un clúster lento (p. 414)• Errores comunes en Amazon EMR (p. 420)• Solucionar problemas de un clúster de Lake Formation (Beta) (p. 437)

Cuando desarrolle una nueva aplicación Hadoop, le recomendamos que habilite la depuración y proceseun subconjunto pequeño pero representativo de los datos para probar la aplicación. Tal vez puede serconveniente también ejecutar la aplicación paso a paso para probar cada paso por separado. Para obtenermás información, consulte Configurar el registro de clúster y depuración (p. 157) y Paso 5: compruebe elclúster paso a paso (p. 413).

¿Qué herramientas hay disponibles para resoluciónde problemas?

Existen varias herramientas que puede utilizar para recopilar información sobre el clúster a fin de contribuira determinar qué ha fallado. Algunas requieren inicializarlas al lanzar el clúster, mientras que otras estándisponibles para cada clúster.

Temas• Herramientas para mostrar detalles de clúster (p. 407)• Herramientas para ver archivos de registro (p. 408)• Herramientas para monitorizar el rendimiento del clúster (p. 408)

Herramientas para mostrar detalles de clústerPuede utilizar la Consola de administración de AWS, la AWS CLI o la API de EMR para recuperarinformación detallada sobre un clúster de EMR y sobre la ejecución de trabajos. Para obtener másinformación sobre cómo usar la Consola de administración de AWS y la AWS CLI, consulte Ver el estado ylos detalles del clúster (p. 309).

Panel de detalles de consola de Amazon EMREn la lista Clusters (Clústeres) de la consola de Amazon EMR puede ver información general sobre elestado de cada clúster de su cuenta y su región. La lista muestra todos los clústeres que se han lanzadoen los dos últimos meses, independientemente de si están activos o han terminado. En la lista Clusters

407

Page 415: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónHerramientas para ver archivos de registro

(Clústeres), puede seleccionar el Name (Nombre) de un clúster para ver los detalles del clúster. Estainformación está organizada en distintas categorías para poder consultarla más fácilmente.

El Application history (Historial de aplicaciones) disponible en la página de detalles del clúster puedeser especialmente útil para la solución de problemas. Proporciona el estado de las aplicacionesYARN y, en algunos casos, como en las aplicaciones Spark, puede explorar las diferentes métricas yfacetas, como trabajos, etapas y ejecutores. Para obtener más información, consulte Ver el historial deaplicaciones (p. 316). Esta característica solo está disponible en la versión 5.8.0 o posterior de AmazonEMR.

Interfaz de línea de comandos de Amazon EMRPuede encontrar detalles sobre un clúster desde la CLI utilizando el argumento --describe.

API de Amazon EMRPuede encontrar detalles sobre un clúster desde la API utilizando la acción DescribeJobFlows.

Herramientas para ver archivos de registroAmazon EMR y Hadoop generan archivos de registro cuando se ejecuta el clúster. Puede accedera estos archivos de registro de diversas herramientas, en función de la configuración que hayaespecificado al lanzar el clúster. Para obtener más información, consulte Configurar el registro de clúster ydepuración (p. 157).

Archivos de registro en el nodo principalCada clúster publica archivos de registro en el directorio /mnt/var/log/ en el nodo principal. Estos archivosde registro solo están disponibles mientras se ejecuta el clúster.

Archivos de registro archivados en Amazon S3Si lanza el clúster y especifica una ruta de registro de Amazon S3, el clúster copia los archivos de registroalmacenados en /mnt/var/log/ en el nodo principal en Amazon S3, en intervalos de 5 minutos. Estogarantiza que tenga acceso a los archivos de registro incluso después de que el clúster se termine. Dadoque los archivos están archivados en intervalos de 5 minutos, los últimos minutos de un clúster terminadode forma repentina podrían no estar disponibles.

Herramientas para monitorizar el rendimiento delclústerAmazon EMR proporciona varias herramientas para monitorizar el rendimiento del clúster.

Interfaces web de HadoopCada clúster publica una serie de interfaces web en el nodo principal que contienen información sobreel clúster. Puede acceder a estas páginas web mediante un túnel SSH para conectarlas en el nodoprincipal. Para obtener más información, consulte Ver las interfaces web alojadas en clústeres de AmazonEMR (p. 359).

Métricas de CloudWatchCada clúster notifica sus métricas a CloudWatch. CloudWatch es un servicio web que realiza unseguimiento de las métricas y que se puede utilizar para definir alarmas para dichas métricas. Para obtenermás información, consulte Monitorización de métricas con CloudWatch (p. 335).

408

Page 416: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónDescribe cómo visualizar y reiniciar Amazon EMR

y los procesos de las aplicaciones (demonios)

Describe cómo visualizar y reiniciar Amazon EMR ylos procesos de las aplicaciones (demonios)

Cuando realice la solución de problemas en un clúster, conviene que cree una lista de los procesos enejecución. También puede que le resulte útil detener o reiniciar procesos en algunas circunstancias, porejemplo, después de cambiar una configuración o detectar un problema con un proceso determinado trasanalizar los archivos de registro y los mensajes de error.

Existen dos tipos de procesos que se ejecutan en un clúster: procesos de Amazon EMR (por ejemplo,instance-controller y Log Pusher) y procesos asociados a las aplicaciones instaladas en el clúster (porejemplo, hadoop-hdfs-namenode y hadoop-yarn-resourcemanager).

Para trabajar con procesos directamente en un clúster, debe conectarse al nodo principal. Para obtenermás información, consulte Conectar al clúster (p. 353).

Visualizar procesos en ejecuciónSi está utilizando la versión 4.x o posterior de Amazon EMR, las versiones de las aplicaciones seempaquetan utilizando un sistema basado en Apache Bigtop, por lo que estos procesos de lasaplicaciones se configuran a través de scripts .conf bajo el sistema init upstart. Por su parte, los procesosde Amazon EMR se configuran utilizando SysV (scripts init.d) que es compatible con upstart.

Para visualizar una lista de los procesos de Amazon EMR en ejecución

• Escriba el siguiente comando (sin el $, que representa el símbolo del sistema de Linux):

$ ls /etc/init.d/

El comando devuelve una lista de los procesos de Amazon EMR en ejecución similar a la del siguienteejemplo:

acpid cloud-init-local instance-controller ntpd

Para visualizar una lista de los procesos asociados a las versiones de las aplicaciones

• Escriba el siguiente comando:

$ ls /etc/init/

El comando devuelve una lista de procesos de aplicación en ejecución similar a la del siguienteejemplo:

control-alt-delete.conf hadoop-yarn-resourcemanager.conf hive-metastore.conf

Reiniciar procesosDespués de determinar qué procesos se están ejecutando, puede detenerlos y, a continuación, reiniciarlossi es necesario. La forma de iniciar y detener un servicio depende de si se trata de un servicio de AmazonEMR o un servicio asociado a una aplicación.

409

Page 417: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónSolucionar problemas de clúster con errores

Para reiniciar un proceso asociado a una versión de la aplicación

1. Escriba el siguiente comando para detener el proceso, reemplazando processname por el nombredel proceso devuelto por el comando ls en el procedimiento anterior:

$ sudo /etc/init.d/processname stop

Por ejemplo: sudo /etc/init.d/hadoop-hdfs-namenode stop2. Escriba el siguiente comando para reiniciar el proceso:

$ sudo /etc/init.d/processname start

Por ejemplo, sudo /etc/init.d/hadoop-hdfs-namenode start.

Para reiniciar un proceso de Amazon EMR

1. Escriba el siguiente comando para detener el proceso, reemplazando processname por el nombredel proceso devuelto por el comando ls en el procedimiento anterior:

$ sudo /sbin/stop processname

Por ejemplo, sudo /sbin/stop instance-controller.2. Escriba el siguiente comando para reiniciar el proceso:

$ sudo sbin/start processname

Por ejemplo, sudo sbin/start instance-controller.

Note

Los comandos sbin/start, stop y restart son symlinks a /sbin/intictl. Paraobtener más información acerca de initctl, consulte la página del manual de initctlescribiendo man initctl en el símbolo del sistema.

Solucionar problemas de clúster con erroresEsta sección le muestra el proceso de resolución de problemas de un clúster que ha generado unerror. Esto significa que el clúster terminó con un código de error. Si el clúster se sigue ejecutando,pero está tardando mucho tiempo en devolver resultados, consulte Solucionar problemas de un clústerlento (p. 414) en su lugar.

Temas• Paso 1: recopilar datos sobre el problema (p. 411)• Paso 2: comprobar el entorno (p. 411)• Paso 3: compruebe el último cambio de estado (p. 412)• Paso 4: examine los archivos de registro (p. 412)• Paso 5: compruebe el clúster paso a paso (p. 413)

410

Page 418: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 1: recopilar datos sobre el problema

Paso 1: recopilar datos sobre el problemaEl primer paso para solucionar un problema en un clúster es reunir información sobre lo que ha ocurrido ysobre el estado y la configuración actuales del clúster. Esta información se usará en los pasos siguientespara confirmar o determinar las causas posibles del problema.

Definir el problemaLo primero que debe tener es una definición clara del problema. Puede plantearse las siguientespreguntas:

• ¿Qué esperaba que ocurriera? ¿Qué es lo que en realidad ocurrió?• ¿Cuándo se produjo este problema por primera vez? ¿Con qué frecuencia se ha producido desde

entonces?• ¿Ha cambiado algo en la forma en que se configura o ejecuta mi clúster?

Detalles de clústerLos siguientes detalles del clúster son útiles para realizar un seguimiento de los problemas. Para obtenermás información acerca de cómo reunir esta información, consulte Ver el estado y los detalles delclúster (p. 309).

• Identificador del clúster. (Denominado también identificador de flujo de trabajo).• Región y zona de disponibilidad en las que se lanzó el clúster.• Estado del clúster, incluidos los detalles del último cambio de estado.• Tipo y número de instancias EC2 especificadas para los nodos principales, básicos y de tareas.

Paso 2: comprobar el entornoAmazon EMR opera como parte de un ecosistema de servicios web y software de código abierto. Lo queafecta a dichas dependencias pueden influir en el desempeño de Amazon EMR.

Temas• Comprobar las interrupciones de servicio (p. 411)• Comprobar los límites de uso (p. 412)• Comprobar la versión (p. 412)• Compruebe la configuración de subredes de Amazon VPC (p. 412)

Comprobar las interrupciones de servicioAmazon EMR usa varios Amazon Web Services internamente. Ejecuta servidores virtuales en AmazonEC2, almacena datos y scripts en Amazon S3, indexa archivos de registro en Amazon SimpleDB y registramétricas en CloudWatch. Los eventos que interrumpen estos servicios rara vez se producen, aunquepueden ocurrir y causar problemas en Amazon EMR.

Antes de continuar, compruebe el Panel de estado del servicio. Compruebe la región en la que ha lazandoel clúster para averiguar si hay eventos de interrupción en alguno de estos servicios.

411

Page 419: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 3: compruebe el último cambio de estado

Comprobar los límites de usoSi va a lanzar un clúster grande, ha lanzado muchos clústeres a la vez o es un usuario de IAM quecomparte una cuenta de AWS con otros usuarios, es posible que el clúster haya producido un error porqueha superado el límite del servicio de AWS.

Amazon EC2 limita el número de instancias del servidor virtual que se ejecutan en una sola región deAWS a 20 instancias bajo demanda o reservadas. Si lanza un clúster con más de 20 nodos o lanza unclúster que provoca que el número total de instancias EC2 activas en su cuenta de AWS sea superior a20, el clúster no podrá lanzar todas las instancias EC2 necesarias y podría producir un error. Cuando estoocurre, Amazon EMR devuelve un error EC2 QUOTA EXCEEDED. Puede solicitar que AWS aumente elnúmero de instancias EC2 que puede ejecutar en su cuenta enviando una solicitud mediante el enlaceSolicitar un aumento del límite de instancias Amazon EC2.

Otra cosa que puede causar que se superen los límites de uso es el tiempo que transcurre entre que setermina un clúster y se liberan todos sus recursos. En función de su configuración, un clúster puede tardarentre 5 y 20 minutos en terminar completamente y liberar los recursos asignados. Si aparece un errorEC2 QUOTA EXCEEDED al intentar lanzar un clúster, puede deberse a que aún no se hayan liberado losrecursos de un clúster terminado recientemente. En este caso, puede solicitar un aumento de la cuota deAmazon EC2 o puede esperar 20 minutos y volver a lanzar el clúster.

Amazon S3 limita el número de buckets creados en una cuenta a 100. Si el clúster crea un nuevo bucket yse supera este límite, la creación del bucket puede dar un error y hacer que el clúster deje de funcionar.

Comprobar la versiónCompare la etiqueta de versión que ha usado para lanzar el clúster con la última versión de Amazon EMR.Cada versión de Amazon EMR incorpora mejoras, como nuevas aplicaciones, características, parches yerrores corregidos. Puede que el problema que afecta a su clúster ya se haya solucionado en la últimaversión. Si es posible, vuelva a ejecutar el clúster con la última versión de la

Compruebe la configuración de subredes de Amazon VPCSi el clúster se lanzó en una subred de Amazon VPC, la subred debe configurarse tal y como se describeen Configuración de redes (p. 129). Asimismo, compruebe que la subred en la que lanza el clúster tienesuficientes direcciones IP elásticas para asignar una a cada nodo del clúster.

Paso 3: compruebe el último cambio de estadoEl último cambio de estado ofrece información sobre qué ocurrió la última vez que el clúster cambió deestado. Esto a menudo contiene información capaz de indicar lo que ha funcionado mal cuando el clústercambia su estado a FAILED. Por ejemplo, si lanza un clúster de streaming y especifica una ubicación desalida que ya existe en Amazon S3, el clúster devolverá error con un último cambio de estado "Streamingoutput directory already exists".

Puede localizar el valor del último cambio de estado desde la consola consultando el panel de detallesdel clúster, desde la CLI utilizando los argumentos list-steps o describe-cluster o desde el APIutilizando las acciones DescribeCluster y ListSteps. Para obtener más información, consulte Ver elestado y los detalles del clúster (p. 309).

Paso 4: examine los archivos de registroEl siguiente paso consiste en examinar los archivos log para localizar un código de error u otra indicacióndel problema que está teniendo el clúster. Para obtener información sobre los archivos log disponibles,dónde buscarlos y cómo verlos, consulte Ver archivos de registro (p. 320).

412

Page 420: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 5: compruebe el clúster paso a paso

Se puede tardar tiempo en determinar lo que ha ocurrido. Hadoop ejecuta los trabajos de los intentosde tarea en los distintos nodos del clúster. Amazon EMR puede iniciar intentos de tarea especulativos,en cuyo caso de terminan los demás intentos de tarea que no se completan primero. Esto genera unaactividad considerable que se registra en los archivos log controller, stderr y syslog a medida que seproduce esta actividad. Además, varios intentos de tarea se ejecutan a la vez, pero un archivo log solopuede mostrar los resultados linealmente.

Empiece buscando en los logs de la acción de arranque errores o cambios de configuración imprevistosdurante el lanzamiento del clúster. Desde allí, examine los logs de pasos para identificar los trabajosde Hadoop lanzados como parte de un paso con errores. Examine los logs de trabajos de Hadoop paraidentificar los intentos de tarea con error. El log de intentos de tareas contendrá información sobre el errorque se ha producido en el intento de tarea.

En las secciones siguientes se describe cómo usar los distintos archivos log para identificar errores en elclúster.

Marque los registros de acción de arranqueLas acciones de arranque ejecutan scripts en el clúster cuando este se lanza. Se suelen usar para instalarsoftware adicional en el clúster o para modificar la configuración de los valores predeterminados. Consulteestos logs para obtener información sobre los errores que se produjeron durante la instalación del clúster,además de los cambios de configuración que podrían afectar al desempeño.

Compruebe los registros de pasosExisten cuatro tipos de logs de pasos.

• controller: contiene los archivos generados por Amazon EMR (Amazon EMR) que surgen a raíz de loserrores encontrados al intentar ejecutar el paso. Si el paso produce un error mientras se carga, puedeencontrar la traza de la pila en este log. Los errores al cargar la aplicación u obtener acceso a ella suelenaparecer aquí, así como los errores de archivos del mapeador que faltan.

• stderr: contiene los mensajes de error que se produjeron al procesar el paso. Aquí suelen aparecer loserrores de carga de la aplicación. Este log contiene a veces una traza de la pila.

• stdout: contiene el estado generado por los ejecutables del mapeador y el reductor. Aquí suelenaparecer los errores de carga de la aplicación. Este log contiene a veces mensajes de error de laaplicación.

• syslog: contiene los registros de software distinto de Amazon, como Apache y Hadoop. Aquí suelenaparecer los errores de streaming.

Compruebe stderr para los errores obvios. Si stderr muestra una lista corta de errores, el paso sufrió unadetención rápida que generó un error. Esta es la causa más común de los errores en las aplicaciones delmapeador y el reductor que se ejecutan en el clúster.

Examine las últimas líneas de los logs controller y syslog para ver si hay avisos de error. Realice unseguimiento de los avisos sobre tareas que han producido un error, especialmente si indican "Job Failed".

Compruebe los registros de intento de tareaSi el análisis anterior de los logs del paso produjo una o varias tareas con error, investigue los logs de losintentos de tareas correspondientes para obtener información más detallada sobre el error.

Paso 5: compruebe el clúster paso a pasoUna técnica útil cuando se intenta localizar el origen de un error consiste en reiniciar el clúster y enviar lospasos al mismo uno a uno. Esto le permite comprobar los resultados de cada paso antes de procesar el

413

Page 421: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónSolucionar problemas de un clúster lento

siguiente y le ofrece la oportunidad de corregir y volver a ejecutar un paso que ha fallado. Esto tambiéntiene la ventaja de cargar los datos de entrada solo una vez.

Para probar un clúster paso a paso

1. Lance un clúster nuevo, con keep alive y la protección de terminación habilitados. Keep alivemantiene el clúster en ejecución después de que haya procesado todos los pasos pendientes. Laprotección de terminación evita que un clúster se cierre en caso de que se produzca un error. Paraobtener más información, consulte Configuración de un clúster para la terminación automática o paracontinuar (p. 101) y Uso de la protección de terminación (p. 102).

2. Envíe un paso al clúster. Para obtener más información, consulte Enviar trabajo a un clúster (p. 398).3. Cuando el paso completa el procesamiento, compruebe los errores en los archivos de registro del

paso. Para obtener más información, consulte Paso 4: examine los archivos de registro (p. 412).La manera más rápida de localizar estos archivos de registro consiste en conectar al nodo maestro yvisualizar los archivos de registro allí. Los archivos de registro del paso no aparecen hasta que el pasose ejecuta durante algún tiempo, finaliza o genera un error.

4. Si el paso se realiza correctamente sin error, ejecutar el siguiente paso. Si se produjeron errores,investigar el error en los archivos de registro. Si se trató de un error en el código, corríjalo y vuelva aejecutar el paso. Continúe hasta que todos los pasos se ejecuten sin errores.

5. Cuando haya terminado la depuración del clúster y desea terminarlo, tendrá que terminarlomanualmente. Esto es necesario porque el clúster se lanzó con la protección de terminaciónhabilitada. Para obtener más información, consulte Uso de la protección de terminación (p. 102).

Solucionar problemas de un clúster lentoEsta sección describe el proceso de solución de problemas de un clúster que sigue en ejecución, pero quetarda mucho en devolver los resultados. Para obtener más información sobre qué hacer si el clúster haterminado con un código de error, consulte Solucionar problemas de clúster con errores (p. 410)

Amazon EMR le permite especificar el número y el tipo de instancias en el clúster. Estas especificacionesson los medios principales que afectan a la velocidad con que la que se completa el procesamientode datos. Una cosa que debería tener en cuenta es volver a ejecutar el clúster, esta vez especificandoinstancias EC2 con más recursos o especificar un número mayor de instancias en el clúster. Para obtenermás información, consulte Configuración del hardware y las redes de los clústeres (p. 120).

Los siguientes temas le guiarán a través del proceso de identificación de causas alternativas de un clústerlento.

Temas• Paso 1: Recopilar datos sobre el problema (p. 414)• Paso 2: Comprobar el entorno (p. 415)• Paso 3: Examinar los archivos de registro (p. 416)• Paso 4: Consultar el clúster y el estado de la instancia (p. 417)• Paso 5: Comprobar los grupos arrestados (p. 418)• Paso 6: Revisar los ajustes de configuración (p. 419)• Paso 7: Examinar los datos de entrada (p. 420)

Paso 1: Recopilar datos sobre el problemaEl primer paso para solucionar un problema en un clúster es reunir información sobre lo que ha ocurrido ysobre el estado y la configuración actuales del clúster. Esta información se usará en los pasos siguientespara confirmar o determinar las causas posibles del problema.

414

Page 422: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 2: Comprobar el entorno

Definir el problemaLo primero que debe tener es una definición clara del problema. Puede plantearse las siguientespreguntas:

• ¿Qué esperaba que ocurriera? ¿Qué es lo que en realidad ocurrió?• ¿Cuándo se produjo este problema por primera vez? ¿Con qué frecuencia se ha producido desde

entonces?• ¿Ha cambiado algo en la forma en que se configura o ejecuta mi clúster?

Detalles de clústerLos siguientes detalles del clúster son útiles para realizar un seguimiento de los problemas. Para obtenermás información acerca de cómo reunir esta información, consulte Ver el estado y los detalles delclúster (p. 309).

• Identificador del clúster. (Denominado también identificador de flujo de trabajo).• Región y zona de disponibilidad en las que se lanzó el clúster.• Estado del clúster, incluidos los detalles del último cambio de estado.• Tipo y número de instancias EC2 especificadas para los nodos principales, básicos y de tareas.

Paso 2: Comprobar el entornoTemas

• Comprobar las interrupciones de servicio (p. 415)• Comprobar los límites de uso (p. 415)• Compruebe la configuración de subredes de Amazon VPC (p. 416)• Reinicie el clúster (p. 416)

Comprobar las interrupciones de servicioAmazon EMR usa varios Amazon Web Services internamente. Ejecuta servidores virtuales en AmazonEC2, almacena datos y scripts en Amazon S3, indexa archivos de registro en Amazon SimpleDB y registramétricas en CloudWatch. Los eventos que interrumpen estos servicios rara vez se producen, aunquepueden ocurrir y causar problemas en Amazon EMR.

Antes de continuar, compruebe el Panel de estado del servicio. Compruebe la región en la que ha lazandoel clúster para averiguar si hay eventos de interrupción en alguno de estos servicios.

Comprobar los límites de usoSi va a lanzar un clúster grande, ha lanzado muchos clústeres a la vez o es un usuario de IAM quecomparte una cuenta de AWS con otros usuarios, es posible que el clúster haya producido un error porqueha superado el límite del servicio de AWS.

Amazon EC2 limita el número de instancias del servidor virtual que se ejecutan en una sola región deAWS a 20 instancias bajo demanda o reservadas. Si lanza un clúster con más de 20 nodos o lanza unclúster que provoca que el número total de instancias EC2 activas en su cuenta de AWS sea superior a20, el clúster no podrá lanzar todas las instancias EC2 necesarias y podría producir un error. Cuando estoocurre, Amazon EMR devuelve un error EC2 QUOTA EXCEEDED. Puede solicitar que AWS aumente elnúmero de instancias EC2 que puede ejecutar en su cuenta enviando una solicitud mediante el enlaceSolicitar un aumento del límite de instancias Amazon EC2.

415

Page 423: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 3: Examinar los archivos de registro

Otra cosa que puede causar que se superen los límites de uso es el tiempo que transcurre entre que setermina un clúster y se liberan todos sus recursos. En función de su configuración, un clúster puede tardarentre 5 y 20 minutos en terminar completamente y liberar los recursos asignados. Si aparece un errorEC2 QUOTA EXCEEDED al intentar lanzar un clúster, puede deberse a que aún no se hayan liberado losrecursos de un clúster terminado recientemente. En este caso, puede solicitar un aumento de la cuota deAmazon EC2 o puede esperar 20 minutos y volver a lanzar el clúster.

Amazon S3 limita el número de buckets creados en una cuenta a 100. Si el clúster crea un nuevo bucket yse supera este límite, la creación del bucket puede dar un error y hacer que el clúster deje de funcionar.

Compruebe la configuración de subredes de Amazon VPCSi el clúster se lanzó en una subred de Amazon VPC, la subred debe configurarse tal y como se describeen Configuración de redes (p. 129). Asimismo, compruebe que la subred en la que lanza el clúster tienesuficientes direcciones IP elásticas para asignar una a cada nodo del clúster.

Reinicie el clústerLa ralentización de procesamiento puede deberse a una condición transitoria. Plantéese terminar y reiniciarel clúster para ver si el rendimiento mejora.

Paso 3: Examinar los archivos de registroEl siguiente paso consiste en examinar los archivos log para localizar un código de error u otra indicacióndel problema que está teniendo el clúster. Para obtener información sobre los archivos log disponibles,dónde buscarlos y cómo verlos, consulte Ver archivos de registro (p. 320).

Se puede tardar tiempo en determinar lo que ha ocurrido. Hadoop ejecuta los trabajos de los intentosde tarea en los distintos nodos del clúster. Amazon EMR puede iniciar intentos de tarea especulativos,en cuyo caso de terminan los demás intentos de tarea que no se completan primero. Esto genera unaactividad considerable que se registra en los archivos log controller, stderr y syslog a medida que seproduce esta actividad. Además, varios intentos de tarea se ejecutan a la vez, pero un archivo log solopuede mostrar los resultados linealmente.

Empiece buscando en los logs de la acción de arranque errores o cambios de configuración imprevistosdurante el lanzamiento del clúster. Desde allí, examine los logs de pasos para identificar los trabajosde Hadoop lanzados como parte de un paso con errores. Examine los logs de trabajos de Hadoop paraidentificar los intentos de tarea con error. El log de intentos de tareas contendrá información sobre el errorque se ha producido en el intento de tarea.

En las secciones siguientes se describe cómo usar los distintos archivos log para identificar errores en elclúster.

Marque los registros de acción de arranqueLas acciones de arranque ejecutan scripts en el clúster cuando este se lanza. Se suelen usar para instalarsoftware adicional en el clúster o para modificar la configuración de los valores predeterminados. Consulteestos logs para obtener información sobre los errores que se produjeron durante la instalación del clúster,además de los cambios de configuración que podrían afectar al desempeño.

Compruebe los registros de pasosExisten cuatro tipos de logs de pasos.

• controller: contiene los archivos generados por Amazon EMR (Amazon EMR) que surgen a raíz de loserrores encontrados al intentar ejecutar el paso. Si el paso produce un error mientras se carga, puede

416

Page 424: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 4: Consultar el clúster y el estado de la instancia

encontrar la traza de la pila en este log. Los errores al cargar la aplicación u obtener acceso a ella suelenaparecer aquí, así como los errores de archivos del mapeador que faltan.

• stderr: contiene los mensajes de error que se produjeron al procesar el paso. Aquí suelen aparecer loserrores de carga de la aplicación. Este log contiene a veces una traza de la pila.

• stdout: contiene el estado generado por los ejecutables del mapeador y el reductor. Aquí suelenaparecer los errores de carga de la aplicación. Este log contiene a veces mensajes de error de laaplicación.

• syslog: contiene los registros de software distinto de Amazon, como Apache y Hadoop. Aquí suelenaparecer los errores de streaming.

Compruebe stderr para los errores obvios. Si stderr muestra una lista corta de errores, el paso sufrió unadetención rápida que generó un error. Esta es la causa más común de los errores en las aplicaciones delmapeador y el reductor que se ejecutan en el clúster.

Examine las últimas líneas de los logs controller y syslog para ver si hay avisos de error. Realice unseguimiento de los avisos sobre tareas que han producido un error, especialmente si indican "Job Failed".

Compruebe los registros de intento de tareaSi el análisis anterior de los logs del paso produjo una o varias tareas con error, investigue los logs de losintentos de tareas correspondientes para obtener información más detallada sobre el error.

Consulte los registros de demonio de HadoopEn raras ocasiones, el propio Hadoop podría producir un error. Para saber si es esto lo que ha ocurrido,debe consultar los logs de Hadoop. Están en /var/log/hadoop/ en cada nodo.

Puede usar los logs de JobTracker para comparar un intento de tarea que no ha tenido éxito con el nodoen el que se ejecutó. Una vez que conozca el nodo asociado al intento de tarea, puede comprobar elestado de la instancia EC2 que aloja el nodo para averiguar si hay algún problema como falta de memoriao de capacidad de la CPU.

Paso 4: Consultar el clúster y el estado de la instanciaUn clúster de Amazon EMR se compone de nodos que se ejecutan en instancias Amazon EC2. Si dichasinstancias se ven limitadas por los recursos (como, por ejemplo, quedarse sin CPU o memoria), tienenproblemas de conectividad de red o se terminan, la velocidad de procesamiento del clúster se resiente.

Existen hasta tres tipos de nodos en un clúster:

• nodo principal: administra el clúster. Si experimenta problemas de rendimiento, se ve afectado todo elclúster.

• nodos secundarios: procesan tareas de MapReduce y mantienen el Hadoop Distributed Filesystem(HDFS). Si uno de estos nodos experimenta un problema de rendimiento, puede ralentizar lasoperaciones de HDFS, así como el procesamiento de MapReduce. Puede añadir más nodossecundarios a un clúster para mejorar el rendimiento, pero no puede eliminar nodos secundarios. Paraobtener más información, consulte Cambiar manualmente el tamaño de un clúster en ejecución (p. 391).

• nodos de tareas: procesan tareas de MapReduce. Se trata exclusivamente de recursos informáticosy no almacenan datos. Puede añadir nodos de tareas a un clúster para acelerar el rendimiento oeliminar los nodos de tareas que no sean necesarios. Para obtener más información, consulte Cambiarmanualmente el tamaño de un clúster en ejecución (p. 391).

Al examinar el estado de un clúster, debe examinar tanto el rendimiento global del clúster, así como elrendimiento de instancias concretas. Existen varias herramientas que puede utilizar:

417

Page 425: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 5: Comprobar los grupos arrestados

Comprobación del estado del clúster con CloudWatchCada clúster de Amazon EMR notifica las métricas a CloudWatch. Estas métricas proporcionaninformación sobre el rendimiento de resumen acerca del clúster, como la carga total, utilización de HDFS,ejecución de tareas, tareas restante, bloques corruptos, etc. Atendiendo a las métricas de CloudWatchobtiene el panorama general de lo que ocurre en el clúster y puede obtener información sobre los motivospor los que se ralentiza su procesamiento. Además de utilizar CloudWatch para analizar un problemade rendimiento existente, puede definir alarmas que hagan que CloudWatch avise en caso de que seproduzca un problema de rendimiento. Para obtener más información, consulte Monitorización de métricascon CloudWatch (p. 335).

Comprobación del estado del trabajo y de HDFSUtilice el Application history (Historial de aplicaciones) de la página de detalles del clúster para ver losdetalles de las aplicaciones de YARN. Para determinadas aplicaciones, puede consultar informaciónadicional y tener acceso a los logs directamente. Esto resulta especialmente útil para las aplicacionesSpark. Para obtener más información, consulte Ver el historial de aplicaciones (p. 316).

Hadoop proporciona una serie de interfaces web que puede utilizar para ver información. Para obtenermás información sobre cómo acceder a estas interfaces web, consulte Ver las interfaces web alojadas enclústeres de Amazon EMR (p. 359).

• JobTracker: proporciona información sobre el progreso del trabajo que procesa el clúster. Puede utilizaresta interfaz para identificar si se ha bloqueado un trabajo.

• HDFS NameNode: ofrece información sobre el porcentaje de utilización de HDFS y el espacio disponibleen cada nodo. Puede utilizar esta interfaz para identificar cuando HDFS se ve limitado por los recursos yrequiere capacidad adicional.

• TaskTracker: proporciona información sobre las tareas del trabajo que procesa el clúster. Puede utilizaresta interfaz para identificar cuando se ha bloqueado una tarea.

Consultar la salud de la instancia con Amazon EC2Otra forma de buscar información sobre el estado de las instancias en su clúster consiste en utilizarla consola de Amazon EC2. Dado que cada nodo del clúster se ejecuta en una instancia EC2, puedeutilizar las herramientas proporcionadas por Amazon EC2 para comprobar su estado. Para obtener másinformación, consulte Ver instancias de clúster en Amazon EC2 (p. 324).

Paso 5: Comprobar los grupos arrestadosUn grupo de instancias queda arrestado cuando encuentra demasiados errores al intentar lanzar nodos.Por ejemplo, si los nodos nuevos devuelven error repetidamente al llevar a cabo acciones de arranque,el grupo de instancias, después de un tiempo, pasará al estado ARRESTED en lugar intentar aprovisionarnuevos nodos continuamente.

Un nodo podría no cargarse si:

• Hadoop o el clúster están estropeados por algún motivo y no aceptan un nuevo nodo en el clúster• Una acción de arranque falla en el nuevo nodo• El nodo no funciona correctamente y no puede iniciar sesión con Hadoop

Si un grupo de instancias está en estado ARRESTED y el clúster está en estado WAITING, puede añadir unpaso de clúster para restablecer el número deseado de nodos secundarios y de tareas. Al añadir el pasose reanuda el procesamiento del clúster y coloca el grupo de instancias de nuevo en estado RUNNING.

418

Page 426: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 6: Revisar los ajustes de configuración

Para obtener más información sobre cómo restablecer un clúster en estado arrestado, consulte Estadoarrestado (p. 394).

Paso 6: Revisar los ajustes de configuraciónLos ajustes de configuración especifican detalles acerca de cómo se ejecuta un clúster, como cuántasveces se vuelve a intentar una tarea y la cantidad de memoria que hay disponible para clasificación. Allanzar un clúster con Amazon EMR, existen ajustes específicos de Amazon EMR además de los ajustesde configuración estándar de Hadoop. Los ajustes de configuración se almacenan en el nodo principaldel clúster. Puede comprobar los ajustes de configuración para asegurarse de que su clúster tenga losrecursos que necesita para ejecutarse de forma eficaz.

Amazon EMR define los ajustes de configuración de Hadoop predeterminados que utiliza para lanzarun clúster. Los valores se basan en la AMI y el tipo de instancia que especifique para el clúster. Puedemodificar los ajustes de configuración a partir de los valores predeterminados mediante una acción dearranque o especificando nuevos valores en parámetros de ejecución de trabajo. Para obtener másinformación, consulte Creación de acciones de arranque para instalar software adicional (p. 116) . Paradeterminar si una acción de arranque ha cambiado los ajustes de configuración, compruebe los registrosde la acción de arranque.

Amazon EMR registra los ajustes de Hadoop utilizados para ejecutar cada trabajo. Los datos deregistro se almacenan en un archivo denominado job_job-id_conf.xml en el directorio /mnt/var/log/hadoop/history/ del nodo principal, donde job-id se sustituye por el identificador deltrabajo. Si ha habilitado el archivado de registros, estos datos se copian en Amazon S3 en la carpetalogs/date/jobflow-id/jobs, donde date es la fecha en que se ejecutó el trabajo y jobflow-id esel identificador del clúster.

Los siguientes ajustes de configuración de trabajo de Hadoop son especialmente útiles para investigarlos problemas de rendimiento. Para obtener más información acerca de los ajustes de configuración deHadoop y cómo afectan al comportamiento de Hadoop, visite http://hadoop.apache.org/docs/.

Opción de configuración Descripción

dfs.replication El número de nodos de HDFS en los que un bloque único(como el bloque de disco duro) se copian para producir unentorno similar a RAID. Determina el número de nodos deHDFS que contienen una copia del bloque.

io.sort.mb Memoria total disponible para clasificación. Este valordebería ser 10x io.sort.factor. Este ajuste también puedeutilizarse para calcular la memoria total utilizada por elnodo de tareas calculando io.sort.mb multiplicado pormapred.tasktracker.ap.tasks.maximum.

io.sort.spill.percent Utilizado durante la clasificación, momento en que el discoempezará a utilizarse porque la memoria de clasificaciónasignada se está llenando.

mapred.child.java.opts Obsoleto. Utilice mapred.map.child.java.opts ymapred.reduce.child.java.opts en su lugar. Las opciones deJava TaskTracker se utiliza al ejecutar una JVM para unatarea que se ejecuta dentro. Un parámetro común es "-Xmx"para configurar el tamaño de memoria máximo.

mapred.map.child.java.opts Las opciones de Java TaskTracker se utiliza al ejecutar unaJVM para una tarea Map que se ejecuta dentro. Un parámetrocomún es "-Xmx" para configurar el tamaño de montón dememoria máximo.

419

Page 427: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónPaso 7: Examinar los datos de entrada

Opción de configuración Descripción

mapred.map.tasks.speculative.execution Determina si los intentos de tarea Map de la misma tarea sepueden lanzar en paralelo.

mapred.reduce.tasks.speculative.executionDetermina si los intentos de tarea Reduce de la misma tarease pueden lanzar en paralelo.

mapred.map.max.attempts El número máximo de veces que se puede intentar una tareaMap. Si todos fallan, entonces la tarea Map se marca comoerror.

mapred.reduce.child.java.opts Las opciones de Java TaskTracker se utiliza al ejecutaruna JVM para una tarea Reduce que se ejecuta dentro. Unparámetro común es "-Xmx" para configurar el tamaño demontón de memoria máximo.

mapred.reduce.max.attempts El número máximo de veces que se puede intentar una tareaReduce. Si todos fallan, entonces la tarea Map se marcacomo error.

mapred.reduce.slowstart.completed.maps La cantidad de tareas Map que deben completar antes deintentar las tareas Reduce. Si no se espera lo suficientese podrían devolver errores “Demasiados errores derecuperación” en los intentos.

mapred.reuse.jvm.num.tasks Una tarea se ejecuta dentro de una única JVM. Especificacuántas tareas podría reutilizar la misma JVM.

mapred.tasktracker.map.tasks.maximum La cantidad máxima de tareas que se pueden ejecutar enparalelo por nodo de tareas durante el mapeo.

mapred.tasktracker.reduce.tasks.maximumLa cantidad máxima de tareas que se pueden ejecutar enparalelo por nodo de tareas durante la reducción.

Si las tareas de clúster utilizan mucha memoria, puede mejorar el rendimiento utilizando menos tareas pornodo secundario y reduciendo el tamaño de montón de rastreador de trabajos.

Paso 7: Examinar los datos de entradaCompruebe los datos de entrada. ¿Están distribuidos de manera uniforme entre los valores clave? Silos datos están muy sesgados hacia uno o varios valores clave, la carga de procesamiento podría estarasignada a un pequeño número de nodos, mientras que los demás nodos están inactivos. Esta distribucióndesequilibrada de trabajo puede dar lugar a tiempos de procesamiento más lentos.

Un ejemplo de conjunto de datos desequilibrado sería la ejecución de un clúster para alfabetizar palabras,pero disponer de un conjunto de datos que contenga solo palabras que comienzan con la letra "a".Cuando el trabajo se ha planificado, los valores de procesamiento del nodo que comienzan por "a" seríanabrumadores, mientras que los nodos que procesan palabras que comienzan por otras letras estaríaninactivos.

Errores comunes en Amazon EMRHay muchas razones por las que un clúster podría devolver un error o ralentizar el procesamiento dedatos. Las secciones siguientes enumeran los problemas más habituales y sugerencias para corregirlos.

420

Page 428: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de entrada y salida

Temas• Errores de entrada y salida (p. 421)• Errores de permisos (p. 423)• Errores de recursos (p. 424)• Errores de clúster de streaming (p. 431)• Errores de clúster JAR personalizados (p. 433)• Errores de clúster de Hive (p. 433)• Errores de VPC (p. 434)• Errores de AWS GovCloud (US-West) (p. 437)• Otros problemas (p. 437)

Errores de entrada y salidaLos errores siguientes son habituales en las operaciones de entrada y salida de clúster.

Temas• ¿Tiene la ruta de Amazon Simple Storage Service (Amazon S3) al menos tres barras

inclinadas? (p. 421)• ¿Está intentando atravesar de forma recursiva directorios de entrada? (p. 421)• ¿Ya existe el directorio de salida? (p. 421)• ¿Está intentando especificar un recurso mediante una URL HTTP? (p. 422)• ¿Está haciendo referencia a un bucket de Amazon S3 con un formato de nombre no válido? (p. 422)• ¿Está teniendo problemas para cargar datos hacia o desde Amazon S3? (p. 422)

¿Tiene la ruta de Amazon Simple Storage Service (Amazon S3)al menos tres barras inclinadas?Cuando especifique un bucket de Amazon S3, deberá incluir una barra inclinada de terminación al final dela URL. Por ejemplo, en lugar de hacer referencia a un bucket como “s3n://AWSDOC-EXAMPLE-BUCKET1”,debería utilizar “s3n://AWSDOC-EXAMPLE-BUCKET1/”, de lo contrario Hadoop genera un error en el clústeren la mayoría de los casos.

¿Está intentando atravesar de forma recursiva directorios deentrada?Hadoop no busca directorios de entrada de forma recursiva para archivos. Si tiene una estructura dedirectorios como /corpus/01/01.txt, /corpus/01/02.txt, /corpus/02/01.txt, etc. y especifica /corpus/ comoparámetro de entrada para el clúster, Hadoop no encuentra los archivos de entrada, ya que el directorio /corpus/ está vacío y Hadoop no comprueba el contenido de los subdirectorios. Del mismo modo, Hadoopno comprueba recursivamente los subdirectorios de buckets de Amazon S3.

Los archivos de entrada deben estar directamente en el directorio de entrada o bucket de Amazon S3 queespecifique, no en subdirectorios.

¿Ya existe el directorio de salida?Si especifica una ruta de salida que ya existe, Hadoop generará un error en el clúster en la mayoría delos casos. Esto significa que si ejecuta un clúster una vez y, a continuación, lo vuelve a ejecutar con los

421

Page 429: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de entrada y salida

mismos parámetros, probablemente funcionará la primera vez y, a continuación, nunca más; despuésde la primera ejecución, existe la ruta de salida y, por lo tanto, hace que todas las ejecuciones sucesivasgeneren un error.

¿Está intentando especificar un recurso mediante una URLHTTP?Hadoop no acepta las ubicaciones de los recursos especificados mediante el prefijo http://. No puede hacerreferencia a un recurso con una dirección URL HTTP. Por ejemplo, transferir http://mysite/myjar.jar comoparámetro JAR provoca que el clúster devuelva un error.

¿Está haciendo referencia a un bucket de Amazon S3 con unformato de nombre no válido?Si intenta utilizar un nombre de bucket como “AWSDOC-EXAMPLE-BUCKET1.1” con Amazon EMR, el clústerdevolverá un error porque Amazon EMR requiere que los nombres de bucket sean nombres de host RFC2396 válidos; el nombre no puede terminar por un número. Además, debido a los requisitos de Hadoop,los nombres de bucket de Amazon S3 que se utilizan con Amazon EMR solo puede contener letras enminúsculas, números, puntos (.) y guiones (-). Para obtener más información sobre cómo dar formato a losnombres de bucket de Amazon S3, consulte Restricciones y limitaciones de los buckets en la Guía paradesarrolladores de Amazon Simple Storage Service.

¿Está teniendo problemas para cargar datos hacia o desdeAmazon S3?Amazon S3 es el origen de entrada y salida más popular para Amazon EMR. Un error común consiste entratar Amazon S3 como si fuera un sistema de archivos habitual. Existen diferencias entre Amazon S3 y unsistema de archivos que debe tener en cuenta a la hora de ejecutar el clúster.

• Si se produce un error interno en Amazon S3, la aplicación tiene que gestionarlo correctamente y volvera intentar la operación.

• Si las llamadas a Amazon S3 tardan demasiado tiempo en devolverse, es posible que la aplicación tengaque reducir la frecuencia con la que llama a Amazon S3.

• Mostrar un listado de todos los objetos en un bucket de Amazon S3 es una llamada costosa. Laaplicación debe minimizar el número de veces que lo hace.

Existen varias formas de mejorar la forma en la que el clúster interactúa con Amazon S3.

• Inicie el clúster con la versión más reciente de Amazon EMR.• Utilice S3DistCp para introducir y sacar objetos de Amazon S3. S3DistCp implementa la gestión de

errores, los reintentos y las interrupciones para ajustarse a los requisitos de Amazon S3. Para obtenermás información, consulte Copia distribuida mediante S3DistCp.

• Diseñe la aplicación teniendo en cuenta la consistencia final. Utilice HDFS para el almacenamiento dedatos intermedios mientras que el clúster se está ejecutando y Amazon S3 únicamente para entrada delos datos iniciales y salida de los resultados finales.

• Si los clústeres confirmarán 200 o más transacciones por segundo en Amazon S3, póngase en contactocon soporte para preparar el bucket para que realice más transacciones por segundo y plantéese el usode las estrategias de partición de claves que se describen en Amazon S3 Performance Tips & Tricks.

• Defina el ajuste de configuración de Hadoop io.file.buffer.size en 65 536. Esto hace que Hadoop dediquemenos tiempo a buscar a través de objetos de Amazon S3.

• Plantéese deshabilitar la característica de ejecución especulativa de Hadoop si su clúster experimentaproblemas de simultaneidad de Amazon S3. Esto también resulta útil cuando se solucionan problemas

422

Page 430: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de permisos

de un clúster lento. Para ello, establezca las propiedades mapreduce.reduce.speculativemapreduce.map.speculative y en false. Cuando lance un clúster, podrá establecer estos valoresutilizando la clasificación de configuración mapred-env. Para obtener más información, consulteConfiguración de aplicaciones en la Guía de publicación de Amazon EMR.

• Si ejecuta un clúster de Hive, consulte ¿Está teniendo problemas para cargar datos hacia o desdeAmazon S3 en Hive? (p. 434).

Para obtener información adicional, consulte Prácticas recomendadas para los errores de Amazon S3 en laGuía para desarrolladores de Amazon Simple Storage Service.

Errores de permisosLos siguientes errores son comunes cuando se utilizan permisos o credenciales.

Temas• ¿Está transfiriendo las credenciales correctas en SSH? (p. 423)• Si está utilizando IAM, ¿tiene definido el conjunto de políticas de Amazon EC2 correcto? (p. 424)

¿Está transfiriendo las credenciales correctas en SSH?Si no puede utilizar SSH para conectarse al nodo principal, se trata muy probablemente de un problemacon sus credenciales de seguridad.

En primer lugar, compruebe que el archivo .pem que contiene su clave SSH disponga de los permisosadecuados. Puede utilizar chmod para cambiar los permisos de su archivo .pem tal y como se muestra enel siguiente ejemplo, donde debería sustituir mykey.pem por el nombre de su propio archivo .pem.

chmod og-rwx mykey.pem

La segunda posibilidad es que no se esté utilizando el par de claves que especificó al crear el clúster.Esto es fácil de hacer si ha creado varios pares de claves. Consulte los detalles del clúster en la consolaAmazon EMR (o utilice la opción --describe de la CLI) para el nombre del par de claves que seespecificó cuando se creó el clúster.

Una vez que haya verificado que está utilizando el par de claves correcto y que los permisos se handefinido correctamente en el archivo .pem, puede utilizar el siguiente comando para utilizar SSH paraconectarse al nodo principal, donde debería sustituir mykey.pem por el nombre de su archivo .pem [email protected] por el nombre de DNS público del nodoprincipal (disponible a través de la opción --describe en la CLI o a través de la consola de AmazonEMR).

Important

Debe utilizar el nombre de inicio de sesión hadoop cuando se conecte a un nodo del clúster deAmazon EMR; de lo contrario, es posible que se produzca un error similar a Server refusedour key.

ssh -i mykey.pem [email protected]

Para obtener más información, consulte Conexión al nodo principal utilizando SSH (p. 354).

423

Page 431: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

Si está utilizando IAM, ¿tiene definido el conjunto de políticas deAmazon EC2 correcto?Dado que Amazon EMR utiliza instancias EC2 como nodos, los usuarios de IAM de Amazon EMR tambiéndeben tener definidas determinadas políticas de Amazon EC2 para que Amazon EMR pueda administrardichas instancias en nombre del usuario de IAM. Si no tiene definidos los permisos necesarios, AmazonEMR devuelve el error: User account is not authorized to call EC2 (La cuenta de usuario no está autorizadapara llamar a EC2).

Para obtener más información sobre las políticas de Amazon EC2 que se deben definir en una cuenta deIAM para ejecutar Amazon EMR, consulte Funcionamiento de Amazon EMR con IAM (p. 203).

Errores de recursosLos siguientes errores suelen ser causados habitualmente por recursos limitados en el clúster.

Temas• El clúster termina con NO_SLAVE_LEFT y los nodos secundarios con FAILED_BY_MASTER (p. 424)• Cannot replicate block, only managed to replicate to zero nodes. (p. 426)• EC2 QUOTA EXCEEDED (p. 427)• Too many fetch-failures (p. 427)• File could only be replicated to 0 nodes instead of 1 (p. 428)• Nodos en la lista negra (p. 429)• Errores de limitación controlada (p. 429)• Tipo de instancia no compatible (p. 430)• EC2 is Out of Capacity (p. 431)

El clúster termina con NO_SLAVE_LEFT y los nodos secundarioscon FAILED_BY_MASTERNormalmente, esto ocurre porque la protección de terminación está deshabilitada y todos los nodossecundarios superan la capacidad de almacenamiento en disco especificada por el umbral de utilizaciónmáximo en la configuración de clasificación yarn-site, que corresponde al archivo yarn-site.xml.Este valor es el 90 % de forma predeterminada. Cuando la utilización del disco en un nodo secundariosupera el umbral de utilización, el servicio de estado NodeManager de YARN informa de que el nodo seencuentra en el estado UNHEALTHY. Si sigue en este estado, Amazon EMR lo añade a una lista negra yno le asigna contenedores YARN. Si el nodo sigue en mal estado transcurridos 45 minutos, Amazon EMRmarca la instancia Amazon EC2 asociada para su terminación como FAILED_BY_MASTER. Cuando todaslas instancias Amazon EC2 asociadas con nodos secundarios se marcan para su terminación, el clústertermina con el estado NO_SLAVE_LEFT porque no hay recursos para ejecutar trabajos.

Sobrepasar la utilización del disco en un nodo secundario podría causar una reacción en cadena. Si unúnico nodo supera el umbral de utilización del disco debido a HDFS, es posible que otros nodos esténtambién cerca del umbral. El primer nodo supera el umbral de utilización del disco, por lo que AmazonEMR lo añade a una lista negra. Esto aumenta la carga de la utilización del disco en los nodos restantes,ya que estos comienzan a replicar entre ellos los datos HDFS que perdieron en el nodo incluido en la listanegra. Uno por uno, los nodos van adoptando el estado UNHEALTHY de la misma manera, y el clústerfinalmente termina.

424

Page 432: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

Prácticas recomendadas y recomendaciones

Configurar el hardware del clúster con almacenamiento suficiente

Al crear un clúster, asegúrese de que haya suficientes nodos secundarios y de que cada uno tenga unalmacén de instancias y volúmenes de almacenamiento de EBS para HDFS apropiados. Para obtener másinformación, consulte Cálculo de la capacidad de HDFS requerida de un clúster (p. 157). También puedeañadir instancias secundarias a grupos de instancias existentes de forma manual o mediante el escaladoautomático. Las instancias nuevas tienen la misma configuración de almacenamiento que el resto de lasinstancias del grupo. Para obtener más información, consulte Escalado de recursos de clúster (p. 370).

Habilitar la protección de terminación

Habilite la protección de terminación. De esta forma, si un nodo secundario se incluye en la lista negra,es posible conectarse a la instancia Amazon EC2 asociada mediante SSH para solucionar el problemay recuperar los datos. Si habilita la protección de terminación, tenga en cuenta que Amazon EMR nosustituye la instancia Amazon EC2 por una nueva. Para obtener más información, consulte Uso de laprotección de terminación (p. 102).

Crear una alarma para la métrica MRUnhealthyNodes de CloudWatch

Esta métrica indica el número de nodos que tienen el estado UNHEALTHY. Es equivalente a la métricamapred.resourcemanager.NoOfUnhealthyNodes de YARN. Puede configurar una notificaciónpara esta alarma que le avise de los nodos en mal estado 45 minutos antes de que se agote el tiempo deespera. Para obtener más información, consulte Monitorización de métricas con CloudWatch (p. 335).

Retocar la configuración mediante yarn-site

Las opciones mostradas a continuación se pueden ajustar de acuerdo con los requisitos de la aplicación.Por ejemplo, es posible que desee aumentar el umbral de utilización del disco si un nodo adopta el estadoUNHEALTHY aumentando el valor de yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage.

Puede establecer estos valores al crear un clúster mediante la clasificación de configuración yarn-site. Para obtener más información, consulte Configuración de aplicaciones en la Guía de publicaciónde Amazon EMR. También puede conectarse mediante SSH a las instancias Amazon EC2 asociadascon los nodos secundarios y, a continuación, añadir los valores de /etc/hadoop/conf.empty/yarn-site.xml con un editor de texto. Después de realizar los cambios, debe reiniciar hadoop-yarn-nodemanager tal y como se muestra a continuación.

Important

Al reiniciar el servicio NodeManager, los contenedores YARN activos se cancelan a menosque yarn.nodemanager.recovery.enabled se establezca en true mediante laclasificación de configuración yarn-site al crear el clúster. Asimismo, debe especificarel directorio en el que se va a almacenar el estado del contenedor mediante la propiedadyarn.nodemanager.recovery.dir.

sudo /sbin/stop hadoop-yarn-nodemanagersudo /sbin/start hadoop-yarn-nodemanager

Para obtener más información sobre las propiedades yarn-site actuales y sus valores predeterminados,consulte página relacionada con la configuración predeterminada de YARN en la documentación deApache Hadoop.

425

Page 433: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

Propiedad Valor predeterminado Descripción

yarn.nodemanager.disk-health-checker.interval-ms

120 000 La frecuencia (en segundos) conla que se ejecuta el comprobadorde estado del disco.

yarn.nodemanager.disk-health-checker.min-healthy-disks

0,25 La fracción mínima delnúmero de discos que debenestar en buen estado paraque NodeManager lancecontenedores nuevos.Esto se corresponde conyarn.nodemanager.local-dirs(de forma predeterminada, /mnt/yarn en Amazon EMR)y yarn.nodemanager.log-dirs(de forma predeterminada, /var/log/hadoop-yarn/containers, que está vinculadamediante symlinks a mnt/var/log/hadoop-yarn/containers en Amazon EMR).

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage

90,0 El porcentaje máximo deutilización del espacio endisco permitido después delcual un disco se marca comodañado. Los valores estáncomprendidos entre 0,0 y100,0. Si el valor es superioro igual a 100, NodeManagercomprueba si el disco estálleno. Esto se aplica a yarn-nodemanager.local-dirsy yarn.nodemanager.log-dirs.

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb

0 El espacio mínimo que debeestar disponible en un discopara que se pueda utilizar.Esto se aplica a yarn-nodemanager.local-dirsy yarn.nodemanager.log-dirs.

Cannot replicate block, only managed to replicate to zero nodes.El error "Cannot replicate block, only managed to replicate to zero nodes." (No se puede replicar el bloque,solo se ha podido replicar en los nodos cero.), normalmente se produce cuando un clúster no dispone desuficiente almacenamiento de HDFS. Este error se produce cuando se generan más datos en el clúster delos que pueden almacenarse en HDFS. Ve este error solo mientras se está ejecutando el clúster, porquecuando el trabajo termina se libera el espacio de HDFS que se estaba utilizando.

La cantidad de espacio de HDFS disponible para un clúster depende del número y del tipo deinstancias Amazon EC2 que se utilizan como nodos secundarios. Los nodos de tarea no se utilizanpara almacenamiento de HDFS. Todo el espacio en disco en cada instancia Amazon EC2, incluidos

426

Page 434: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

los volúmenes de almacenamiento de EBS adjuntos, está disponible para HDFS. Para obtener másinformación sobre la cantidad de almacenamiento local para cada tipo de instancia EC2, consulte el temarelacionado con los Tipos y familias de instancias en la Guía del usuario de Amazon EC2 para instanciasde Linux.

El otro factor que puede influir en la cantidad de espacio de HDFS disponible es el factor de replicación,que es el número de copias de cada bloque de datos que se almacena en HDFS para redundancia. Elfactor de replicación aumenta con el número de nodos del clúster: existen tres copias de cada bloque dedatos para un clúster con 10 o más nodos, 2 copias de cada bloque por un clúster con 4 a 9 nodos y 1copia (sin redundancia) para clústeres con 3 o menos nodos. El espacio de HDFS total disponible se dividepor el factor de replicación. En algunos casos, como, por ejemplo, aumentando el número de nodos de 9a 10, el aumento del factor de replicación pueden en realidad hacer que la cantidad de espacio de HDFSdisponible se reduzca.

Por ejemplo, un clúster con diez nodos secundarios de tipo m1.large tendría 2 833 GB de espaciodisponible para HDFS ((10 nodos X 850 GB por nodo)/factor de replicación de 3).

Si el clúster supera la cantidad de espacio disponible para HDFS, puede añadir más nodos secundariosa su clúster o utilizar la compresión de datos para crear más espacio de HDFS. Si el clúster se puedeparar y reiniciar, podría plantearse el uso de nodos secundarios de un tipo de instancia Amazon EC2mayor. También puede plantearse la posibilidad de ajustar el factor de replicación. Tenga en cuenta que ladisminución del factor de replicación reduce la redundancia de datos de HDFS y la capacidad de su clústerrecuperarse frente a bloques de HDFS perdidos o dañados.

EC2 QUOTA EXCEEDEDSi recibe un mensaje EC2 QUOTA EXCEEDED (CUOTA DE EC2 SUPERADA), se puede deber a variascausas. En función de las diferencias de configuración, los clústeres anteriores pueden tardar entre 5y 20 minutos en terminar y liberar los recursos asignados. Si aparece un error EC2 QUOTA EXCEEDEDal intentar lanzar un clúster, puede deberse a que aún no se hayan liberado los recursos de un clústerterminado recientemente. Este mensaje también puede deberse al cambio de tamaño de un grupo o flotade instancias a un tamaño de destino mayor que la cuota de instancias actual para la cuenta. Esto puedeocurrir de forma manual o automática a través de escalado automático.

Tenga en cuenta las opciones siguientes para resolver el problema:

• Crear un caso de soporte para solicitar un aumento de cuota.• Si uno o varios clústeres en ejecución no se ejecutan según la capacidad, cambie de tamaño los grupos

de instancia o reduzca las capacidades de destino en flotas de instancia para clústeres en ejecución.• Cree clústeres con menos instancias EC2 o una capacidad de destino reducida.

Too many fetch-failuresLa presencia de mensajes de error Too many fetch-failures (Demasiados errores de recuperación) o Errorreading task output (Error al leer la salida de la tarea) en los registros de intentos de tareas o de pasosindican que la tarea en ejecución depende de la salida de otra tarea. Esto suele ocurrir cuando una tareade reducción se pone en cola para ejecutarse y requiere la salida de una o más tareas de asignación y lasalida no está disponible aún.

Hay varias razones por las que la salida podría no estar disponible:

• La tarea requisito previo aún se está procesando. Suele ser una tarea de asignación.• Los datos podrían no estar disponibles debido a una mala conectividad de red si los datos se encuentran

en otra instancia.• Si HDFS se utiliza para recuperar la salida, es posible que exista un problema con HDFS.

427

Page 435: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

La causa más frecuente de este error es que la tarea anterior sigue en procesamiento. Esto esespecialmente probable si los errores se producen cuando las tareas de reducción son las primeras que seintentan ejecutar. Puede comprobar si este es el caso revisando el registro syslog para el paso de clústerque devuelve el error. Si el syslog muestra las tareas de asignación y reducción progresando, esto indicaque la fase de reducción ha comenzado mientras hay tareas de asignación que no se han completado aún.

Una cosa que hay que buscar en los registros es un porcentaje de progreso de asignación que pasa al100% y, a continuación, disminuye hasta un valor inferior. Cuando el porcentaje de asignación está al100%, eso no significa que todas las tareas de asignación se han completado. Simplemente significaque Hadoop está ejecutando todas las tareas de asignación. Si este valor vuelve a disminuir por debajodel 100%, significa que una tarea de asignación ha devuelto un error y, en función de la configuración,Hadoop podría intentar volver a programar la tarea. Si el porcentaje de mapeo permanece en el 100 % enlos registros, consulte las métricas de CloudWatch, en concreto RunningMapTasks, para comprobar sila tarea de mapeo sigue procesándose. También puede encontrar esta información a través de la interfazweb de Hadoop en el nodo principal.

Si está viendo este problema, hay varias cosas que puede probar:

• Indique a la fase de reducción que espere más tiempo antes de empezar. Puede hacerlo modificandoel ajuste de configuración de Hadoop mapred.reduce.slowstart.completed.maps a un tiempo superior.Para obtener más información, consulte Creación de acciones de arranque para instalar softwareadicional (p. 116).

• Asigne el recuento de reductores a la capacidad de reductor total del clúster. Esto se hace ajustando laopción de configuración de Hadoop mapred.reduce.tasks para el trabajo.

• Utilice un código de clase de combinador para minimizar la cantidad de salidas que se tienen querecuperar.

• Compruebe que no haya ningún problema con el servicio de Amazon EC2 que esté afectando alrendimiento de red del clúster. Puede hacerlo utilizando el Panel de estado del servicio.

• Revise los recursos de CPU y de memoria de las instancias en su clúster para asegurarse de que suprocesamiento de datos no esté desbordando los recursos de los nodos. Para obtener más información,consulte Configuración del hardware y las redes de los clústeres (p. 120).

• Compruebe la versión de la imagen de máquina de Amazon (AMI) utilizada en el clúster de AmazonEMR. Si la versión es de la 2.3.0 a la 2.4.4 incluida, actualice a una versión posterior. Las versiones deAMI en el rango especificado utilizan una versión de Jetty que podría fallar a la hora de entregar la salidadesde la fase de asignación. El error de recuperación se produce cuando los reductores no puedenobtener la salida desde la fase de asignación.

Jetty es un servidor HTTP de código abierto que se utiliza para comunicaciones de equipo a equipodentro de un clúster de Hadoop.

File could only be replicated to 0 nodes instead of 1Cuando un archivo se escribe en HDFS, se replica a varios nodos secundarios. Cuando vea este error,significa que el demonio NameNode no tiene ninguna instancia de DataNode disponible para escribir datosen HDFS. En otras palabras, la replicación de bloques no se está produciendo. Este error puede deberse auna serie de problemas:

• El sistema de archivos HDFS podría haberse quedado sin espacio. Esta es la causa más probable.• Las instancias DataNode podrían no haber estado disponibles cuando se ejecutó el trabajo.• La comunicación de las instancias DataNode podría haber estado bloqueada con el nodo principal.• Las instancias del grupo de instancias secundarias podrían no estar disponibles.• Es posible que falten permisos. Por ejemplo, el demonio JobTracker podría no tener permisos para crear

la información de seguimiento del trabajo.• El ajuste de espacio reservado para una instancia DataNode podría ser insuficiente. Compruebe si este

es el caso comprobando la opción de configuración dfs.datanode.du.reserved.

428

Page 436: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

Para comprobar si este problema se debe a que HDFS se ha quedado sin espacio en disco, examinela métrica HDFSUtilization en CloudWatch. Si este valor es demasiado alto, puede añadir nodossecundarios adicionales en el clúster. Si tiene un clúster que usted cree que podría quedarse sinespacio en disco de HDFS, puede configurar una alarma en CloudWatch que le avise si el valorde HDFSUtilization supera un determinado nivel. Para obtener más información, consulteCambiar manualmente el tamaño de un clúster en ejecución (p. 391) y Monitorización de métricas conCloudWatch (p. 335).

Si el problema no es que HDFS se quede sin espacio, compruebe los registros DataNode, los registrosde NameNode y la conectividad de red para los demás problemas que podrían haber evitado que HDFSreplicara los datos. Para obtener más información, consulte Ver archivos de registro (p. 320).

Nodos en la lista negraEl demonio NodeManager es responsable de lanzar y administrar los contenedores en los nodossecundarios y de tareas. El demonio ResourceManager que se ejecuta en el nodo principal asigna loscontenedores al demonio NodeManager. El ResourceManager monitorea el nodo NodeManager a travésde un latido.

Hay un par de situaciones en las que el demonio ResourceManager envía a la lista negra unNodeManager, eliminándolo del grupo de nodos disponible para procesar tareas:

• Si NodeManager no ha enviado un latido al demonio ResourceManager en los últimos 10 minutos(60 000 milisegundos). Este periodo de tiempo puede configurarse mediante la opción de configuraciónyarn.nm.liveness-monitor.expiry-interval-ms. Para obtener más información sobre cómocambiar la configuración de Yarn, consulte Configuración de aplicaciones en la Guía de publicación deAmazon EMR.

• NodeManager comprueba el estado de los discos determinado por yarn.nodemanager.local-dirsy yarn.nodemanager.log-dirs. Las comprobaciones incluyen permisos y espacio libre en disco (<90 %). Si un disco no supera la comprobación, NodeManager deja de utilizarlo pero sigue notificandoque el estado del nodo es correcto. Si varios discos no superan la compilación, el estado del nodo senotifica como no correcto a ResourceManager y los nuevos contenedores no se asignan al nodo.

El principal de aplicación también puede incluir en la lista negra un nodo NodeManager si tienemás de tres tareas erróneas. Puede cambiar esto a un valor superior utilizando el parámetro deconfiguración mapreduce.job.maxtaskfailures.per.tracker. Otras opciones de configuraciónque podría cambiar controlan cuántas veces se intenta una tarea antes de marcarla como errónea:mapreduce.map.max.attempts para tareas de asignación y mapreduce.reduce.maxattemptspara tareas de reducción. Para obtener más información sobre cómo cambiar la configuración, consulteConfiguración de aplicaciones en la Guía de publicación de Amazon EMR.

Errores de limitación controladaLos errores "Throttled from Amazon EC2 while launching cluster (Limitación controlada desde AmazonEC2 al lanzar el clúster)" y "Failed to provision instances due to throttling from Amazon EC2 (No sepudieron aprovisionar instancias debido a la limitación controlada desde Amazon EC2)" se producencuando Amazon EMR no puede completar una solicitud porque otro servicio ha limitado la actividad.Amazon EC2 es el origen más habitual de errores de limitación controlada, pero otros servicios podríanser la causa de dichos errores. Los límites de servicio de AWS se aplican por región para mejorar elrendimiento y un error de limitación controlada indica que ha superado el límite de servicio de su cuenta endicha región.

Causas posiblesLa fuente más habitual de errores de limitación controlada de Amazon EC2 es que se está lanzando ungran número de instancias de clúster de modo que se ha superado el límite de servicio de instancias EC2.Las instancias de clúster pueden lanzarse por las siguientes razones:

429

Page 437: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de recursos

• Se han creado nuevos clústeres.• Se ha cambiado manualmente el tamaño de los clústeres. Para obtener más información, consulte

Cambiar manualmente el tamaño de un clúster en ejecución (p. 391).• Los grupos de instancias en un clúster añaden instancias (escalado) como resultado de una regla de

escalado automático. Para obtener más información, consulte Descripción de las reglas de escaladoautomático (p. 383).

• Las flotas de instancia de un clúster añaden instancias para satisfacer una mayor capacidad de destino.Para obtener más información, consulte Configuración de flotas de instancias (p. 141).

También es posible que la frecuencia o el tipo de solicitud de API realizada a Amazon EC2 provoqueerrores de limitación. Para obtener más información acerca de cómo Amazon EC2 realiza la limitacióncontrolada de solicitudes de la API, consulte Tasa de solicitudes de la API de consulta en la Amazon EC2API Reference.

SolucionesTenga en cuenta las soluciones siguientes:

• Cree un caso de soporte para solicitar un Service limit increase (Aumento de límite de servicio).• Si tiene clústeres que se lanzan con la misma programación (por ejemplo, al comienzo de cada hora),

considere la posibilidad de escalonar las horas de inicio.• Si tiene clústeres que están dimensionados para picos de demanda y periódicamente tiene problemas

de capacidad de la instancia, considere la posibilidad de especificar el escalado automático para añadiry eliminar instancias bajo demanda. De esta forma, las instancias se utilizan de manera más eficiente y,en función del perfil de la demanda, es posible que se soliciten menos instancias en un momento dadoen una cuenta. Para obtener más información, consulte Uso del escalado automático con una políticapersonalizada para grupos de instancias (p. 382).

Tipo de instancia no compatibleSi crea un clúster y se produce un error con el mensaje de error "The requested instance typeInstanceType is not supported in the requested Availability Zone (El tipo de instancia solicitadoTipoInstancia no se admite en la zona de disponibilidad solicitada)" significa que ha creado el clúster yha especificado un tipo de instancia para uno o más grupos de instancia que no admite Amazon EMR en laregión y zona de disponibilidad donde se creó el clúster. Amazon EMR podría admitir un tipo de instanciaen una zona de disponibilidad dentro de una región y no otra. La subred que seleccione para un clústerdetermina la zona de disponibilidad dentro de la región.

SolucionesAl crear un clúster mediante la consola de Amazon EMR, la lista de instancias se limita automáticamente atipos de instancia disponibles, por lo que este error suele producirse más habitualmente al crear un clústermediante programación a través de la AWS CLI o la API de Amazon EMR.

Aún no se dispone de una lista consolidada de tipos de instancia de Amazon EMR admitidos por región yzona de disponibilidad, por lo que el primer paso para cualquier solución es para determinar si el tipo deinstancia que desea está disponible en la zona de disponibilidad que desea.

Para determinar los tipos de instancia disponibles en una zona de disponibilidad mediante laconsola de administración de Amazon EMR

1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. Elija Next (Siguiente) para ver la opciones Hardware Configuration (Configuración de hardware).4. Elija la Network (Red) y EC2 Subnet (Subred de EC2) para el clúster.

430

Page 438: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de clúster de streaming

5. En Instance type (Tipo de instancia), elija el icono de lápiz que aparece junto al tipo de instanciapredeterminado para alguno de los Node types (Topos de nodo) Master (Maestro), Core (Principal) oTask (Tarea) .

6. Se muestra una lista de los tipos de instancia disponibles en la región y zona de disponibilidadasociada a la EC2 Subnet (Subred EC2) que ha seleccionado.

7. Puede seguir creando el clúster o elija Cancel (Cancelar), elija una Network (Red) y EC2 Subnet(Subred EC2) distintas y repita los pasos anteriores.

Para determinar los tipos de instancia disponibles en una zona de disponibilidad mediante la AWSCLI

• Utilice el comando ec2 run-instances con la opción --dry-run. En el ejemplo siguiente,sustituya m5.xlarge por el tipo de instancia que desee utilizar, ami-035be7bafff33b6b6 porla AMI asociada con ese tipo de instancia y subnet-12ab3c45 con una subred en la zona dedisponibilidad que desea consultar.

aws ec2 run-instances --instance-type m5.xlarge --dry-run --image-idami-035be7bafff33b6b6 --subnet-id subnet-12ab3c45

Después de determinar los tipos de instancia disponibles, puede hacer lo siguiente:

• Cree el clúster en la misma región y subred EC2 y elija un tipo de instancia diferente con capacidadessimilares a la elección inicial. Para ver una lista de los tipos de instancia admitidos, consulte Tipos deinstancias admitidos (p. 123). Para comparar capacidades de tipos de instancia EC2, consulte Tipos deinstancia Amazon EC2.

• Elija una subred para el clúster en una zona de disponibilidad en la que el tipo de instancia estédisponible y admitido por Amazon EMR.

EC2 is Out of CapacityUn error "EC2 is out of capacity for InstanceType (EC2 no tiene capacidad para TipoInstancia)" seproduce cuando se crea un clúster o se añaden instancias a un clúster y no hay más de esos de tipos deinstancia EC2 en la región o zona de disponibilidad debido a la demanda. La subred que seleccione paraun clúster determina la zona de disponibilidad.

Si va a crear un clúster, puede especificar un tipo de instancia distinto con capacidades similares o cree elclúster en una región distinta o seleccione una subred en una zona de disponibilidad donde pudiera estardisponible el tipo de instancia que desea.

Si se están añadiendo instancias a un clúster en ejecución, puede modificar las configuraciones de grupode instancias o las configuraciones de flota de instancias para añadir tipos de instancia disponibles concapacidades similares. Para ver una lista de los tipos de instancia admitidos, consulte Tipos de instanciasadmitidos (p. 123). Para comparar capacidades de tipos de instancia EC2, consulte Tipos de instanciaAmazon EC2. También puede terminar el clúster y volver a crearlo en una región y zona de disponibilidaden la que el tipo de instancia esté disponible.

Errores de clúster de streamingNormalmente, puede encontrar la causa de un error de streaming en un archivo syslog. Encontrará unenlace al mismo en el panel Steps (Pasos).

Los siguientes errores son comunes a los clústeres de streaming.

Temas• ¿Los datos que se envían al mapeador están en formato equivocado? (p. 432)

431

Page 439: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de clúster de streaming

• ¿Se agota el tiempo de espera del script? (p. 432)• ¿Está transfiriendo un argumento de streaming no válido? (p. 432)• ¿El script se cierra con un error? (p. 432)

¿Los datos que se envían al mapeador están en formatoequivocado?Para comprobar si este es el caso, busque un mensaje de error en el archivo syslog un intento de tareacon error en los registros de intento de tareas. Para obtener más información, consulte Ver archivos deregistro (p. 320).

¿Se agota el tiempo de espera del script?El tiempo de espera predeterminado para un script de mapeador o reductor es 600 segundos. Si el scripttarda más tiempo, el intento de tarea devolverá un error. Puede comprobar si es así comprobando elarchivo syslog de un intento de tarea con error en los registros de intento de tareas. Para obtener másinformación, consulte Ver archivos de registro (p. 320).

Puede cambiar el límite de tiempo estableciendo un nuevo valor para el ajuste de configuración demapred.task.timeout. Este ajuste especifica el número de milisegundos tras el cuál Amazon EMRterminará una tarea que no tiene entrada de lectura, salida de escritura o ha actualizado su cadenade estado. Puede actualizar este valor transfiriendo un argumento de streaming adicional -jobconfmapred.task.timeout=800000.

¿Está transfiriendo un argumento de streaming no válido?Hadoop Streaming admite únicamente los siguientes argumentos. Si transfiere argumentos distintos de losque se indican a continuación, el clúster devolverá un error.

-blockAutoGenerateCacheFiles -cacheArchive -cacheFile -cmdenv -combiner -debug -input -inputformat-inputreader -jobconf -mapper-numReduceTasks-output -outputformat -partitioner-reducer-verbose

Además, Hadoop Streaming solo reconoce argumentos transferidos mediante sintaxis de Java; es decir,precedidos de un único guion. Si transfiere argumentos precedidos de un guion doble, el clúster fallará.

¿El script se cierra con un error?Si su script de mapeador o reductor termina con un error, puede localizar el error en el archivo stderr delos registros de intento de tarea del intento de tarea que ha devuelto error. Para obtener más información,consulte Ver archivos de registro (p. 320).

432

Page 440: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de clúster JAR personalizados

Errores de clúster JAR personalizadosLos siguientes errores son comunes en los clústeres JAR personalizados.

Temas• ¿Su JAR lanza una excepción antes de crear un trabajo? (p. 433)• ¿Su JAR lanza un error dentro de una tarea de asignación? (p. 433)

¿Su JAR lanza una excepción antes de crear un trabajo?Si el programa principal de su JAR personalizado arroja una excepción al crear el trabajo de Hadoop, elmejor lugar consiste donde buscar es el archivo syslog de los registros de pasos. Para obtener másinformación, consulte Ver archivos de registro (p. 320).

¿Su JAR lanza un error dentro de una tarea de asignación?Si su JAR personalizado y mapeador lanzan una excepción al procesar los datos de entrada, el mejor lugardonde buscar es el archivo syslog de los registros de intento de tarea. Para obtener más información,consulte Ver archivos de registro (p. 320).

Errores de clúster de HiveNormalmente, puede encontrar la causa de un error de Hive en el archivo syslog, para el que tiene unenlace en el panel Steps (Pasos). Si no puede determinar el problema allí, consulte el mensaje de errorde intento de tareas de Hadoop. Encontrará un enlace al mismo en el panel Task Attempts (Intentos detareas).

Los siguientes errores son comunes en los clústeres de Hive.

Temas• ¿Está utilizando la última versión de Hive? (p. 433)• ¿Ha detectado un error de sintaxis en el script de Hive? (p. 433)• ¿Ha devuelto error un trabajo al ejecutarlo de forma interactiva? (p. 433)• ¿Está teniendo problemas para cargar datos hacia o desde Amazon S3 en Hive? (p. 434)

¿Está utilizando la última versión de Hive?La última versión de Hive presenta todas las revisiones actuales y correcciones de errores y podríaresolver el problema.

¿Ha detectado un error de sintaxis en el script de Hive?Si un paso devuelve un error, examine el archivo stdout de los registros para el paso que se ejecutó enel script de Hive. Si el error no se encuentra allí, examine el archivo syslog de los registros del intento detarea que ha devuelto error. Para obtener más información, consulte Ver archivos de registro (p. 320).

¿Ha devuelto error un trabajo al ejecutarlo de forma interactiva?Si ejecuta Hive de forma interactiva en el nodo principal y el clúster ha fallado, vea las entradas syslog enel registro de intento de tarea para el intento de tarea fallido. Para obtener más información, consulte Verarchivos de registro (p. 320).

433

Page 441: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de VPC

¿Está teniendo problemas para cargar datos hacia o desdeAmazon S3 en Hive?Si tiene problemas para tener acceso a los datos en Amazon S3, primero compruebe las causas posiblesincluidas en ¿Está teniendo problemas para cargar datos hacia o desde Amazon S3? (p. 422). Sininguno de estos problemas es la causa, tenga en cuenta las siguientes opciones específicas de Hive.

• Asegúrese de utilizar la última versión de Hive que presenta todas las revisiones actuales y correccionesde errores que podría resolver el problema. Para obtener más información, consulte Apache Hive.

• El uso de INSERT OVERWRITE requiere mostrar un listado del contenido del bucket o la carpeta deAmazon S3. Se trata de una operación costosa. Si es posible, elimine manualmente la ruta en lugar deque Hive enumere y elimine los objetos existentes.

• Si utiliza versiones de Amazon EMR anteriores a la 5.0, puede utilizar el comando siguiente deHiveQL para guardar previamente en caché los resultados de una operación de listado de Amazon S3localmente en el clúster:

set hive.optimize.s3.query=true;

• Utilice las particiones estáticas donde sea posible.• En algunas versiones de Hive y Amazon EMR, es posible que el uso de ALTER TABLES devuelva un

error debido a que la tabla se almacena en una ubicación distinta a la esperada por Hive. La soluciónconsiste en añadir o actualizar lo siguiente en /home/hadoop/conf/core-site.xml:

<property> <name>fs.s3n.endpoint</name> <value>s3.amazonaws.com</value></property>

Errores de VPCLos siguientes errores son comunes a la configuración de VPC en Amazon EMR.

Temas• Configuración de subredes no válida (p. 434)• Falta el conjunto de opciones de DHCP (p. 435)• Errores de permisos (p. 435)• Errores que dan lugar a START_FAILED (p. 436)• Clúster Terminated with errors y NameNode no se inicia (p. 436)

Configuración de subredes no válidaEn la página Cluster Details (Detalles del clúster), en el campo Status (Estado), ve un error similar alsiguiente:

The subnet configuration was invalid: Cannot find route to InternetGateway inmain RouteTable rtb-id for vpc vpc-id.

Para solucionar este problema, debe crear una gateway de Internet y asociarla a la VPC. Para obtenermás información, consulte cómo añadir un gateway de Internet a la VPC.

De forma alternativa, compruebe que ha configurado la VPC con las opciones Enable DNS resolution(Habilitar resolución de DNS) y Enable DNS hostname support (Habilitar el soporte de nombres de hostDNS) habilitadas. Para obtener más información, consulte Utilización de DNS con su VPC.

434

Page 442: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de VPC

Falta el conjunto de opciones de DHCPPuede ver un error de paso en el registro del sistema (syslog) del clúster con un error similar al siguiente:

ERROR org.apache.hadoop.security.UserGroupInformation (main):PriviledgedActionException as:hadoop (auth:SIMPLE) cause:java.io.IOException:org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Applicationwith id 'application_id' doesn't exist in RM.

o bien

ERROR org.apache.hadoop.streaming.StreamJob (main): Error Launching job :org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Applicationwith id 'application_id' doesn't exist in RM.

Para solucionar este problema, debe configurar una VPC que incluya un conjunto de opciones de DHCPcuyos parámetros se hayan definido en los siguientes valores:

Note

Si utiliza la región AWS GovCloud (US-West), defina domain-name en us-gov-west-1.compute.internal en lugar del valor utilizado en el ejemplo siguiente.

• domain-name = ec2.internal

Utilice ec2.internal si su región es US East (N. Virginia). Para las demás regiones, utilicenombre-región.compute.internal. Por ejemplo en us-west-2, utilice domain-name=us-west-2.compute.internal.

• domain-name-servers = AmazonProvidedDNS

Para obtener más información, consulte Conjuntos de opciones de DHCP.

Errores de permisosUn error en el registro stderr de un paso indica que un recurso de Amazon S3 no tiene los permisosadecuados. Se trata de un error 403 y su aspecto es:

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: REQUEST_ID

Si ActionOnFailure está definido en TERMINATE_JOB_FLOW, esto daría lugar a que el clúster termine conel estado, SHUTDOWN_COMPLETED_WITH_ERRORS.

Algunas formas de solucionar este problema son:

• Si está utilizando una política de bucket de Amazon S3 dentro de una VPC, asegúrese de proporcionaracceso a todos los buckets creando un punto de enlace de la VPC y seleccionando Allow all (Permitirtodo) en la opción Policy (Política) al crear el punto de enlace.

• Asegúrese de que las políticas asociadas con recursos de S3 incluyan la VPC en la que lanzar el clúster.• Pruebe a ejecutar el siguiente comando desde el clúster para verificar que puede acceder al bucket

hadoop fs -copyToLocal s3://path-to-bucket /tmp/

• Puede obtener información más específica sobre la depuración definiendo el parámetrolog4j.logger.org.apache.http.wire en DEBUG en el archivo /home/hadoop/conf/log4j.properties en el clúster. Puede comprobar el archivo de registro stderr después de intentaracceder al bucket desde el clúster. El archivo de registro proporcionará información más detallada:

435

Page 443: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de VPC

Access denied for getting the prefix for bucket - us-west-2.elasticmapreduce with path samples/wordcount/input/15/03/25 23:46:20 DEBUG http.wire: >> "GET /?prefix=samples%2Fwordcount%2Finput%2F&delimiter=%2F&max-keys=1 HTTP/1.1[\r][\n]"15/03/25 23:46:20 DEBUG http.wire: >> "Host: us-west-2.elasticmapreduce.s3.amazonaws.com[\r][\n]"

Errores que dan lugar a START_FAILEDAntes de la AMI 3.7.0, en las VPC donde se especifica un nombre de host, Amazon EMR mapealos nombres de host internos de la subred a direcciones de dominio personalizadas como:ip-X.X.X.X.customdomain.com.tld. Por ejemplo, si el nombre de host fuera ip-10.0.0.10 y laVPC tuviera la opción de nombre de dominio definida en customdomain.com, el nombre de host resultantemapeado por Amazon EMR sería ip-10.0.1.0.customdomain.com. Se añade una entrada en /etc/hosts para resolver el nombre de host a 10.0.0.10. Este comportamiento se cambia con la AMI 3.7.0y ahora Amazon EMR respeta completamente la configuración de DHCP de la VPC. Anteriormente, losclientes también podrían utilizar una acción de arranque para especificar un mapeo de nombre de host.

Si desea conservar este comportamiento, debe proporcionar la DNS y reenviar la configuración deresolución que necesita para el dominio personalizado.

Clúster Terminated with errors y NameNode no se iniciaAl lanzar un clúster de EMR en una VPC que hace uso de un nombre de dominio de DNS personalizado, elclúster podría devolver el siguiente mensaje de error en la consola:

Terminated with errors On the master instance(instance-id), bootstrap action 1 returned a non-zero return code

El error se debe a que NameNode no se puede iniciar. Esto dará lugar al siguiente error en los registrosde NameNode, cuyo URI de Amazon S3 tiene el formato: s3://mybucket/logs/cluster-id/daemons/master instance-id/hadoop-hadoop-namenode-master node hostname.log.gz:

2015-07-23 20:17:06,266 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem (main): Encountered exception loading fsimage java.io.IOException: NameNode is not formatted. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1020) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:739) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:537) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:596) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)

436

Page 444: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónErrores de AWS GovCloud (US-West)

Esto es debido a un posible problema en una instancia EC2 que puede tener varios conjuntos de nombresde dominio completos al lanzar clústeres de EMR en una VPC, que hace uso de un servidor de DNSproporcionado por AWS y un servidor de DNS proporcionado por el usuario personalizado. Si el servidorde DNS proporcionado por el usuario no ofrece ningún registro de puntero (PTR) para ningún registro Autilizado para designar nodos en un clúster de EMR, los clústeres devolverán un error al iniciarse cuandose configuran de esta manera. La solución consiste en añadir un registro PTR por cada registro A que secrea cuando se lanza una instancia EC2 en cualquiera de las subredes de la VPC.

Errores de AWS GovCloud (US-West)La región AWS GovCloud (US-West) difiere de otras regiones en la seguridad, configuración y ajustespredeterminados. Por tanto, utilice la siguiente lista de comprobación para resolver errores de AmazonEMR que sean específicos de la región AWS GovCloud (US-West) antes de utilizar recomendaciones másgenerales de solución de problemas.

• Compruebe que sus roles de IAM estén correctamente configurados. Para obtener más información,consulte Configurar roles de servicio deIAM para los permisos de Amazon EMR para los servicios yrecursos de AWS (p. 205).

• Asegúrese de que la configuración de VPC haya configurado correctamente el soporte de la resoluciónDNS/nombre de host, la gateway de Internet y los parámetros del conjunto de opciones de DHCP. Paraobtener más información, consulte Errores de VPC (p. 434).

Si estos pasos no resuelven el problema, continúe con los pasos para la resolución de los erroresde Amazon EMR comunes. Para obtener más información, consulte Errores comunes en AmazonEMR (p. 420).

Otros problemas¿No ve el clúster que espera en la página Cluster List o en losresultados que devuelve el API ListClusters?Compruebe lo siguiente:

• La edad del clúster es inferior a dos meses. Amazon EMR conserva la información de metadatos sobreclústeres completados para su referencia, gratuitamente, durante dos meses. La consola no proporcionauna forma de eliminar clústeres completados desde la consola; se eliminan automáticamentetranscurridos dos meses.

• Tiene permiso para ver el clúster.• Está viendo la región correcta.

Solucionar problemas de un clúster de LakeFormation (Beta)

Esta sección le muestra el proceso de resolución de problemas comunes al utilizar Amazon EMR con AWSLake Formation.

Vencimiento de la sesiónEl tiempo de espera para EMR Notebooks y Zeppelin se controla mediante el Rol de IAM para laconfiguración Maximum CLI/API session duration de Lake Formation. El valor predeterminado para

437

Page 445: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónNo hay permisos para usuario en la tabla precisada

esta configuración es de una hora. Cuando se agote el tiempo de espera de una sesión, verá el siguientemensaje en el resultado de las entradas de su bloc de notas al intentar ejecutar los comandos de SparkSQL.

Error 401 HTTP ERROR: 401 Problem accessing /sessions/2/statements. Reason: JWT token included in request failed validation. Powered by Jetty:// 9.3.24.v20180605 org.springframework.web.client.HttpClientErrorException: 401 JWT token included in request failed validation…

Para validar su sesión actualice la página. Se le pedirá que vuelva a autenticarse con su IdP y se leredirigirá de vuelta al bloc de notas. Puede continuar ejecutando consultas después de la segundaautenticación.

No hay permisos para usuario en la tabla precisadaAl intentar acceder a una tabla a la que no tiene acceso, verá la siguiente excepción en el resultado de lasentradas de su bloc de notas al intentar ejecutar comandos de Spark SQL.

org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table table. Resource does not exist or requester is not authorized to access requested permissions. (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: …

Para obtener acceso a la tabla, debe conceder acceso al usuario al actualizar los permisos asociados aesta tabla en Lake Formation.

Inserción, creación y alteración de las tablas: no seadmite en la betaNo se admite la inserción, creación o alteración de las tablas en las bases de datos protegidas por políticasde Lake Formation. Al realizar estas operaciones, verá la siguiente excepción en el resultado de lasentradas de su bloc de notas al intentar ejecutar los comandos de Spark SQL:

java.io.IOException: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: …

Para obtener más información, consulte Limitaciones de la integración de Amazon EMR con AWS LakeFormation.

438

Page 446: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplo de código fuente de Java de Amazon EMR

Escribir aplicaciones que lanzan yadministran clústeres

Temas• Ejemplo de código fuente de Java de Amazon EMR (p. 439)• Conceptos comunes para llamadas al API (p. 442)• Uso de los SDK para llamar a las API de Amazon EMR (p. 443)

Puede acceder a la funcionalidad proporcionada por la API de Amazon EMR llamando a las funcionescontenedoras de uno de los SDK de AWS. Los SDK de AWS proporcionan funciones específicas dellenguaje que contienen la API del servicios web y simplifican la conexión al servicio web, gestionandomuchos de los detalles de conexión para usted. Para obtener más información sobre cómo llamar aAmazon EMR mediante uno de los SDK, consulte Uso de los SDK para llamar a las API de AmazonEMR (p. 443).

Important

La máxima velocidad de solicitudes para Amazon EMR es una solicitud cada diez segundos.

Ejemplo de código fuente de Java de Amazon EMRLos desarrolladores pueden llamar a la API de Amazon EMR mediante código Java personalizado parahacer lo mismo que con la consola de Amazon EMR o la CLI. Esta sección proporciona todos los pasosnecesarios para instalar el AWS Toolkit for Eclipse y ejecutar un ejemplo de código fuente de Javatotalmente funcional para añadir pasos a un clúster de Amazon EMR.

Note

Este ejemplo se centra en Java, pero Amazon EMR también admite varios lenguajes deprogramación a través de la colección de SDK de Amazon EMR. Para obtener más información,consulte Uso de los SDK para llamar a las API de Amazon EMR (p. 443).

Este código de origen de Java de ejemplo muestra cómo realizar las siguientes tareas a través de la APIde Amazon EMR:

• Recuperar las credenciales de AWS y enviarlas a Amazon EMR para realizar llamadas al API• Configurar un nuevo paso personalizado y un nuevo paso predefinido• Añadir nuevos pasos a un clúster de Amazon EMR existente• Recuperar los ID de paso de clúster de un clúster en ejecución

Note

Este ejemplo muestra cómo añadir pasos a un clúster existente y requiere que tenga un clústeractivo en su cuenta.

Antes de comenzar, instale una versión del Eclipse IDE for Java EE Developers (IDE de Eclipse para JavaEE Developers) que coincida con su plataforma informática. Para obtener más información, vaya a EclipseDownloads.

439

Page 447: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplo de código fuente de Java de Amazon EMR

A continuación, instale el complemento Database Development para Eclipse.

Para instalar el complemento de Eclipse Database Development

1. Abra el IDE de Eclipse.2. Elija Help (Ayuda) e Install New Software (Instalar software nuevo).3. En el campo Work with (Trabajar con), escriba http://download.eclipse.org/releases/

kepler o la ruta que coincida con el número de versión de su IDE de Eclipse.4. En la lista de elementos, elija Database Development (Desarrollo de bases de datos) y Finish

(Finalizar).5. Reinicie Eclipse cuando se le solicite.

A continuación, instale el Toolkit for Eclipse para hacer que estén disponibles las útiles plantillas deproyecto de código fuente preconfiguradas.

Para instalar el Toolkit for Eclipse

1. Abra el IDE de Eclipse.2. Elija Help (Ayuda) e Install New Software (Instalar software nuevo).3. En el campo Work with (Trabajar con), escriba https://aws.amazon.com/eclipse.4. En la lista de elementos, elija AWS Toolkit for Eclipse y Finish (Finalizar).5. Reinicie Eclipse cuando se le solicite.

A continuación, cree un nuevo proyecto de Java de AWS y ejecute el código fuente Java de ejemplo.

Para crear un nuevo proyecto de Java de AWS

1. Abra el IDE de Eclipse.2. Elija File (Archivo), New (Nuevo) y Other (Otros).3. En el cuadro de diálogo Select a wizard (Seleccionar un asistente), elija AWS Java Project (Proyecto

de Java de AWS) y Next (Siguiente).4. En el cuadro de diálogo New AWS Java Project (Nuevo proyecto de Java de AWS), en el campo

Project name:, introduzca el nombre del proyecto nuevo, por ejemplo EMR-sample-code.5. Elija Configure AWS accounts (Configurar cuentas de AWS), introduzca sus claves de acceso públicas

y privadas, y elija Finish (Finalizar). Para obtener más información sobre cómo crear las claves deacceso, consulte ¿Cómo obtengo credenciales de seguridad? en la Referencia general de AmazonWeb Services.

Note

No debe incrustar las claves de acceso directamente en el código. El SDK de Amazon EMRle permite colocar las claves de acceso en ubicaciones conocidas para que no tenga quemantenerlas en el código.

6. En el proyecto de Java nuevo, haga clic con el botón derecho en la carpeta src y, a continuación, elijaNew (Crear) y Class (Clase).

7. En el cuadro de diálogo Java Class (Clase de Java), en el campo Name (Nombre), introduzca unnombre para la clase nueva, por ejemplo main.

8. En la sección Which method stubs would you like to create? (¿Qué stubs de método le gustaríacrear?), elija public static void main(String[] args) y Finish (Finalizar).

9. Escriba el código fuente de Java dentro de la clase nueva y añada las instrucciones import adecuadaspara las clases y los métodos del ejemplo. Para su comodidad se muestra a continuación el códigofuente completo.

440

Page 448: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónEjemplo de código fuente de Java de Amazon EMR

Note

En el siguiente código de ejemplo, sustituya el ID de clúster de ejemplo (JobFlowId) j-xxxxxxxxxxxx por un ID de clúster válido de su cuenta que encontrará en la Consola deadministración de AWS o utilizando el siguiente comando de la CLI de AWS:

aws emr list-clusters --active | grep "Id"

Además, sustituya la ruta de Amazon S3 de ejemplo s3://path/to/my/jarfolderpor la ruta válida a su archivo JAR. Por último, sustituya el nombre de clase de ejemplocom.my.Main1 por el nombre correcto de la clase en su JAR, si procede.

import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;import com.amazonaws.services.elasticmapreduce.model.*;import com.amazonaws.services.elasticmapreduce.util.StepFactory;

public class Main {

public static void main(String[] args) { AWSCredentials credentials_profile = null; try { credentials_profile = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and the profile name is specified within it.", e); } AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials_profile)) .withRegion(Regions.US_WEST_1) .build(); // Run a bash script using a predefined step in the StepFactory helper class StepFactory stepFactory = new StepFactory(); StepConfig runBashScript = new StepConfig() .withName("Run a bash script") .withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://jeffgoll/emr-scripts/create_users.sh")) .withActionOnFailure("CONTINUE");

// Run a custom jar file as a step HadoopJarStepConfig hadoopConfig1 = new HadoopJarStepConfig() .withJar("s3://path/to/my/jarfolder") // replace with the location of the jar to run as a step .withMainClass("com.my.Main1") // optional main class, this can be omitted if jar above has a manifest .withArgs("--verbose"); // optional list of arguments to pass to the jar StepConfig myCustomJarStep = new StepConfig("RunHadoopJar", hadoopConfig1);

AddJobFlowStepsResult result = emr.addJobFlowSteps(new AddJobFlowStepsRequest() .withJobFlowId("j-xxxxxxxxxxxx") // replace with cluster id to run the steps .withSteps(runBashScript,myCustomJarStep)); System.out.println(result.getStepIds());

441

Page 449: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónConceptos comunes para llamadas al API

}}

10. Elija Run (Ejecutar), Run As (Ejecutar como) y Java Application (Aplicación de Java).11. Si la muestra se ejecuta correctamente, aparece una lista de ID para los nuevos pasos aparecerá en

la ventana de la consola Eclipse IDE. El resultado correcto es similar al siguiente:

[s-39BLQZRJB2E5E, s-1L6A4ZU2SAURC]

Conceptos comunes para llamadas al APITemas

• Puntos de enlace para Amazon EMR (p. 442)• Especificar parámetros de clúster en Amazon EMR (p. 442)• Zonas de disponibilidad en Amazon EMR (p. 443)• Cómo utilizar archivos y bibliotecas adicionales en clústeres de Amazon EMR (p. 443)

Al escribir una aplicación que llame al API de Amazon EMR, existen varios conceptos que se aplican a lahora de llamar a una de las funciones contenedoras de un SDK.

Puntos de enlace para Amazon EMRUn punto de enlace es una URL que es el punto de entrada de un servicio web. Cada solicitudde servicio web debe contener un punto de enlace. El punto de enlace especifica la regiónde AWS en la que se crean, se describen o se terminan los clústeres. Tiene el formularioelasticmapreduce.regionname.amazonaws.com. Si especifica el punto de enlace general(elasticmapreduce.amazonaws.com), Amazon EMR dirige la solicitud a un punto de enlace de laregión predeterminada. Para las cuentas creadas el 8 de marzo de 2013 o después de esa fecha, la regiónpredeterminada es us-west-2; en el caso de cuentas más antiguas, la región predeterminada es us-east-1.

Para obtener más información acerca de los puntos de enlace de Amazon EMR, consulte Regiones ypuntos de enlace en la Referencia general de Amazon Web Services.

Especificar parámetros de clúster en Amazon EMRLos parámetros Instances le permiten configurar el tipo y el número de instancias EC2 para crear nodospara procesar los datos. Hadoop reparte el procesamiento de los datos entre varios nodos del clúster. Elnodo principal es responsable de realizar un seguimiento del estado de los nodos secundarios y de tareasy de sondear los nodos para conocer el estado del resultado de los trabajos. Los nodos secundarios y detareas hacen el procesamiento real de los datos. Si tiene un clúster de un solo nodo, el nodo sirve tantocomo nodo principal y nodo secundario.

El parámetro KeepJobAlive en una solicitud RunJobFlow determina si se debe terminar el clústercuando se queda sin pasos de clúster que ejecutar. Defina este valor en False cuando sepa que elclúster se ejecuta según lo previsto. Al resolver problemas del flujo de trabajo y añadir pasos mientras laejecución del clúster se suspende, defina el valor en True. Esto reduce la cantidad de tiempo y los gastosnecesarios para cargar los resultados en Amazon Simple Storage Service (Amazon S3), solo para repetirel proceso después de modificar un paso para reiniciar el clúster.

Si KeepJobAlive es true, después de obtener correctamente el clúster para completar su trabajo, debeenviar una solicitud TerminateJobFlows o el clúster sigue en ejecución y genera cargos de AWS.

442

Page 450: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónZonas de disponibilidad en Amazon EMR

Para obtener más información sobre los parámetros que son únicos para RunJobFlow, consulteRunJobFlow. Para obtener más información acerca de los parámetros genéricos en la solicitud, consulteParámetros de solicitud comunes.

Zonas de disponibilidad en Amazon EMRAmazon EMR utiliza instancias EC2 como nodos para procesar clústeres. Estas instancias EC2 tienenubicaciones compuestas de zonas de disponibilidad y regiones. Las regiones son ubicaciones dispersasemplazadas en zonas geográficas distintas. Las zonas de disponibilidad son ubicaciones diferentes dentrode una región aisladas en caso de error en otras zonas de disponibilidad. Cada zona de disponibilidadproporciona conectividad de red económica y de baja latencia con otras zonas de disponibilidad dentrode la misma región. Para ver la lista de las regiones y los puntos de enlace de Amazon EMR, consulteRegiones y puntos de enlace en la Referencia general de Amazon Web Services.

El parámetro AvailabilityZone especifica la ubicación del clúster. Este parámetro es opcional y,en general, no se aconseja su uso. Cuando no se especifica AvailabilityZone Amazon EMR eligeautomáticamente el mejor valor de AvailabilityZone para el clúster. Puede encontrar este parámetroútil si desea coubicar sus instancias con otras instancias en ejecución existentes y su clúster necesita leero escribir datos de dichas instancias. Para obtener más información, consulte Guía del usuario de AmazonEC2 para instancias de Linux.

Cómo utilizar archivos y bibliotecas adicionales enclústeres de Amazon EMRHay ocasiones en las que le podría interesar utilizar archivos adicionales o bibliotecas personalizadascon las aplicaciones de mapeador o reductor. Por ejemplo, podría utilizar una biblioteca que convierta unarchivo PDF en texto sin formato.

Para almacenar en caché un archivo que utilice el mapeador o s reductor al utilizar HadoopStreaming

• En el campo args del JAR:, añada el siguiente argumento:

-cacheFile s3://bucket/path_to_executable#local_path

El archivo, local_path, está en el directorio de trabajo del mapeador, que podría hacer referencia alarchivo.

Uso de los SDK para llamar a las API de AmazonEMR

Temas• Uso de AWS SDK para Java para crear un clúster de Amazon EMR (p. 444)

Los SDK de AWS ofrecen funciones que encapsulan la API y se encargan de muchos de los detalles de laconexión, tales como el cálculo de firmas, el control de reintentos de solicitud y el control de errores. LosSDK también contienen código de ejemplo, tutoriales y otros recursos para ayudarle a empezar a escribiraplicaciones que llaman a AWS. Llamar a las funciones contenedoras de un SDK puede simplificar en granmedida el proceso de escribir una aplicación de AWS.

Para obtener más información sobre cómo descargar y utilizar los SDK de AWS, consulte la sección SDKen Herramientas para Amazon Web Services.

443

Page 451: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de AWS SDK para Java paracrear un clúster de Amazon EMR

Uso de AWS SDK para Java para crear un clúster deAmazon EMRAWS SDK para Java ofrece tres paquetes con funcionalidad de Amazon EMR:

• com.amazonaws.services.elasticmapreduce• com.amazonaws.services.elasticmapreduce.model• com.amazonaws.services.elasticmapreduce.util

Para obtener más información sobre estos paquetes, consulte AWS SDK for Java API Reference.

El siguiente ejemplo ilustra cómo los SDK pueden simplificar la programación con Amazon EMR. El códigode muestra siguiente utiliza el StepFactory objeto, una clase helper para crear los tipos de Amazon EMRpasos comunes, para crear un clúster de Hive interactivo con la depuración habilitada.

import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;import com.amazonaws.services.elasticmapreduce.model.*;import com.amazonaws.services.elasticmapreduce.util.StepFactory;

public class Main {

public static void main(String[] args) { AWSCredentials credentials_profile = null; try { credentials_profile = new ProfileCredentialsProvider("default").getCredentials(); // specifies any named profile in .aws/credentials as the credentials provider } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and that the profile name is defined within it.", e); } // create an EMR client using the credentials and region specified in order to create the cluster AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials_profile)) .withRegion(Regions.US_WEST_1) .build(); // create a step to enable debugging in the AWS Management Console StepFactory stepFactory = new StepFactory(); StepConfig enabledebugging = new StepConfig() .withName("Enable debugging") .withActionOnFailure("TERMINATE_JOB_FLOW") .withHadoopJarStep(stepFactory.newEnableDebuggingStep()); // specify applications to be installed and configured when EMR creates the cluster Application hive = new Application().withName("Hive"); Application spark = new Application().withName("Spark"); Application ganglia = new Application().withName("Ganglia"); Application zeppelin = new Application().withName("Zeppelin"); // create the cluster

444

Page 452: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administraciónUso de AWS SDK para Java paracrear un clúster de Amazon EMR

RunJobFlowRequest request = new RunJobFlowRequest() .withName("MyClusterCreatedFromJava") .withReleaseLabel("emr-5.20.0") // specifies the EMR release version label, we recommend the latest release .withSteps(enabledebugging) .withApplications(hive,spark,ganglia,zeppelin) .withLogUri("s3://path/to/my/emr/logs") // a URI in S3 for log files is required when debugging is enabled .withServiceRole("EMR_DefaultRole") // replace the default with a custom IAM service role if one is used .withJobFlowRole("EMR_EC2_DefaultRole") // replace the default with a custom EMR role for the EC2 instance profile if one is used .withInstances(new JobFlowInstancesConfig() .withEc2SubnetId("subnet-12ab34c56") .withEc2KeyName("myEc2Key") .withInstanceCount(3) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m4.large") .withSlaveInstanceType("m4.large"));

RunJobFlowResult result = emr.runJobFlow(request); System.out.println("The cluster ID is " + result.toString());

}

}

Como mínimo debe transferir un rol de servicio y un rol de flujo de trabajo correspondiente aEMR_DefaultRole y EMR_EC2_DefaultRole, respectivamente. Puede hacerlo invocando este comando dela CLI de AWS para la misma cuenta. En primer lugar, vea si ya existen los roles:

aws iam list-roles | grep EMR

Tanto el perfil de instancia (EMR_EC2_DefaultRole) como el rol de servicio (EMR_DefaultRole) semostrarán si existen:

"RoleName": "EMR_DefaultRole", "Arn": "arn:aws:iam::AccountID:role/EMR_DefaultRole" "RoleName": "EMR_EC2_DefaultRole", "Arn": "arn:aws:iam::AccountID:role/EMR_EC2_DefaultRole"

Si los roles predeterminados no existen, puede utilizar el siguiente comando de la CLI de AWS paracrearlos:

aws emr create-default-roles

445

Page 453: Amazon EMR - Guía de administraciónAmazon EMR Guía de administración Información general ¿Qué es Amazon EMR? Amazon EMR es una plataforma de clúster administrada que simplifica

Amazon EMR Guía de administración

AWS glossaryFor the latest AWS terminology, see the AWS glossary in the AWS General Reference.

446