Amazon EMR - Guía de administración

631
Amazon EMR Guía de administración

Transcript of Amazon EMR - Guía de administración

Page 1: Amazon EMR - Guía de administración

Amazon EMRGuía de administración

Page 2: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

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

Las marcas comerciales y la imagen comercial de Amazon no se pueden utilizar en relación con ningún producto oservicio que no sea de Amazon de ninguna manera que pueda causar confusión entre los clientes y que menosprecieo desacredite a Amazon. Todas las demás marcas comerciales que no son propiedad de Amazon son propiedad desus respectivos propietarios, que pueden o no estar afiliados, conectados o patrocinados por Amazon.

Page 3: Amazon EMR - Guía de administración

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 nodos ..................................................................................... 1Envío de trabajo a un clúster ............................................................................................... 2Procesamiento de datos ...................................................................................................... 2Descripción del ciclo de vida del clúster ................................................................................. 4

Beneficios .................................................................................................................................. 5Ahorro de costos ................................................................................................................ 5AWSIntegración de ............................................................................................................. 6Implementación .................................................................................................................. 6Escalabilidad y flexibilidad .................................................................................................... 6Fiabilidad ........................................................................................................................... 7Seguridad .......................................................................................................................... 7Supervisión ........................................................................................................................ 8Interfaces de administración ................................................................................................. 9

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

Configuración de Amazon EMR .......................................................................................................... 12Registrarse en AWS .................................................................................................................. 12Creación de un key pair de Amazon EC2 para SSH ...................................................................... 12Pasos siguientes ....................................................................................................................... 12

Explicación introductoria ..................................................................................................................... 13Información general ................................................................................................................... 13Paso 1: Planificar y configurar .................................................................................................... 14

Preparación del almacenamiento para Amazon EMR .............................................................. 14Preparar una aplicación con datos de entrada para Amazon EMR ............................................ 14Lanzar un clúster de Amazon EMR ..................................................................................... 16

Paso 2: Administración .............................................................................................................. 18Enviar trabajo a Amazon EMR ............................................................................................ 18Ver los resultados ............................................................................................................. 20

Paso 3: Eliminar recursos ........................................................................................................... 22Terminar su clúster de ....................................................................................................... 22Eliminar recursos de S3 ..................................................................................................... 24

Pasos siguientes ....................................................................................................................... 24Explore las aplicaciones de big data para Amazon EMR ......................................................... 24Planificación de hardware, redes y seguridad de clúster ......................................................... 24Administración de clústeres ................................................................................................ 25Utilizar una interfaz diferente .............................................................................................. 25Explore el blog técnico de EMR .......................................................................................... 25

Amazon EMR Studio ......................................................................................................................... 26Características principales de EMR Studio .................................................................................... 26Cómo Amazon EMR Studio ........................................................................................................ 26

Autentificación e inicio de sesión ......................................................................................... 27Control de acceso ............................................................................................................. 29Workspaces ..................................................................................................................... 30Almacenamiento para portátiles .......................................................................................... 31

Condiciones y limitaciones ......................................................................................................... 31Problemas conocidos ........................................................................................................ 32Limitaciones características ................................................................................................ 33Límites de los servicios ..................................................................................................... 33Prácticas recomendadas de VPC y subred ........................................................................... 33

iii

Page 4: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

Requisitos de ................................................................................................................... 34Configure EMR Studio ............................................................................................................... 35

Permisos de administrador para crear un EMR Studio ............................................................ 35Configurar un EMR Studio ................................................................................................. 39Administrar un Studio ........................................................................................................ 71Controlar el tráfico de red de EMR Studio ............................................................................ 75Configurar Amazon EMR en EKS para EMR Studio ............................................................... 77Activar cargas de trabajo interactivas ................................................................................... 81Cree plantillas de clúster .................................................................................................... 82Acceso y permisos para repositorios basados en GIT ............................................................. 86Optimizar trabajos de Spark ............................................................................................... 88

Usar Amazon EMR Studio ......................................................................................................... 89Conceptos básicos de Workspace de .................................................................................. 89Configure la colaboración en Workspace .............................................................................. 94Examinar datos con SQL Explorer ....................................................................................... 96Adjuntar un clúster a un espacio de trabajo .......................................................................... 97Vincular los repositorios Git .............................................................................................. 100Depuración de aplicaciones y trabajos ................................................................................ 102Instalación de kernels y bibliotecas .................................................................................... 105Mejora los kernels con comandos mágicos ......................................................................... 106Utilizar cuadernos multilingües con los kernels de Spark ....................................................... 111

Cuadernos de EMR ......................................................................................................................... 113Consideraciones ...................................................................................................................... 113

Requisitos de ................................................................................................................. 113Diferencias de capacidades por versión de clúster ............................................................... 114Límites para los EMR Notebooks conectados simultáneamente .............................................. 115Versión de blocs de notas de Jupyter y Python ................................................................... 115.................................................................................................................................... 115

Creación de un bloc de notas ................................................................................................... 116Uso de los EMR Notebooks ..................................................................................................... 118

Descripción del estado del bloc ......................................................................................... 118Uso del editor de blocs de notas ....................................................................................... 119Cambio de clúster ........................................................................................................... 120Eliminación de blocs de notas y archivos de blocs ............................................................... 120Uso compartido de archivos de bloc .................................................................................. 121

Ejecución de blocs de EMR Notebooks mediante programación ..................................................... 121Ejemplos de comandos de la CLI ...................................................................................... 122Script de ejemplo del SDK de Boto3 .................................................................................. 125Ejemplo de script de Ruby ............................................................................................... 127

Suplantación de usuario para Spark ........................................................................................... 128Configuración de la suplantación de usuario de Spark .......................................................... 129Uso del widget de monitorización de trabajos de Spark ......................................................... 129

Seguridad .............................................................................................................................. 130Instalación y uso de kernels y bibliotecas ................................................................................... 131

Instalación de kernels y bibliotecas Python en un nodo maestro de clúster ............................... 131Uso de bibliotecas adaptadas al bloc de notas .................................................................... 133Uso de bibliotecas adaptadas al bloc de notas .................................................................... 133

Asociación de repositorios basados en Git con EMR Notebooks ..................................................... 134Requisitos previos y consideraciones ................................................................................. 135Añadir un repositorio basado en Git a Amazon EMR ............................................................ 137Actualizar o eliminar un repositorio basado en Git ................................................................ 138Vincular o desvincular un repositorio basado en Git .............................................................. 138Crear un nuevo bloc de notas con un repositorio de Git asociado ........................................... 140Uso de repositorios de Git en un bloc de notas ................................................................... 140

Planificar y configurar clústeres ......................................................................................................... 141Iniciar un clúster con opciones rápidas ....................................................................................... 141

Resumen de las opciones rápidas ..................................................................................... 142

iv

Page 5: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

Configurar la ubicación del clúster y el ....................................................................................... 147Elija unAWSRegión ......................................................................................................... 147Trabajar con sistemas de almacenamiento y archivos ........................................................... 148Prepare los datos de entrada ............................................................................................ 151Configuración de una ubicación de salida ........................................................................... 160

Planificar y configurar nodos maestros ....................................................................................... 165Aplicaciones y funciones compatibles ................................................................................. 165Lanzar un clúster de Amazon EMR con varios nodos maestros .............................................. 172Integración de Amazon EMR con grupos de ubicación de EC2 ............................................... 174Consideraciones recomendadas y prácticas recomendadas ................................................... 178

Clústeres de EMR enAWS Outposts .......................................................................................... 179Requisitos previos ........................................................................................................... 179Limitaciones ................................................................................................................... 179Consideraciones sobre la conectividad de red ..................................................................... 180Creación de un clúster de Amazon EMR enAWS Outposts .................................................... 180

Clústeres de EMR enAWSZonas locales .................................................................................... 181Tipos de instancias admitidas ........................................................................................... 181Creación de un clúster de Amazon EMR en Local Zones ...................................................... 181

Configuración de Docker .......................................................................................................... 182Registros de Docker ........................................................................................................ 183Configuración de registros de Docker ................................................................................. 183Configuración de YARN para acceder a Amazon ECR en EMR 6.0.0 y versiones anteriores ........ 184

Terminación del clúster de ....................................................................................................... 186Configuración de un clúster para que continúe o finalice tras la ejecución por pasos ................... 186Uso de una política de terminación automática .................................................................... 188Uso de la protección contra terminación ............................................................................. 191

Uso de las AMI ....................................................................................................................... 196Uso de la AMI predeterminada .......................................................................................... 197Uso de una AMI personalizada ......................................................................................... 199Cambio de la versión de Amazon Linux para un clúster de lanzamiento ................................... 207Especificación del volumen del dispositivo raíz de Amazon EBS ............................................. 208

Configuración del software de clú .............................................................................................. 210Crear acciones de arranque para instalar software adicional .................................................. 210

Configuración de hardware y redes de clúster ............................................................................. 214Comprender los tipos de no .............................................................................................. 215Configuración de instancias de Amazon EC2 ...................................................................... 216Configure redes .............................................................................................................. 224Configurar flotas de instancias o grupos de instancias .......................................................... 233

Configurar el registro y la depuración de clústeres ....................................................................... 263Archivos de registro predeterminados ................................................................................. 263Archivo de archivos de registro en Amazon S3 .................................................................... 264Habilitar la herramienta de depuración ............................................................................... 266Información de opción de depuración ................................................................................. 268

Clústeres de etiquetas ............................................................................................................. 268Restricciones de las etiquetas ........................................................................................... 269Etiquetar recursos para facturación .................................................................................... 269Añadir etiquetas a un clúster nuevo ................................................................................... 270Adición de etiquetas a un clúster existente .......................................................................... 270Visualización de etiquetas de un clúster ............................................................................. 271Eliminar etiquetas de un clúster ........................................................................................ 272

Integración de controladores e aplicaciones de terceros ................................................................ 272Utilizar herramientas de inteligencia empresarial con Amazon EMR ......................................... 273

Seguridad ...................................................................................................................................... 274Configuraciones de seguridad ................................................................................................... 274Protección de los datos ............................................................................................................ 274AWS Identity and Access Managementcon Amazon EMR ............................................................. 274Kerberos ................................................................................................................................ 275

v

Page 6: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

Lake Formation ....................................................................................................................... 275Secure Socket Shell (SSH) ....................................................................................................... 275Grupos de seguridad de Amazon EC2 ....................................................................................... 275Actualizaciones de la AMI de Amazon Linux por .......................................................................... 275Utilizar configuraciones de seguridad para configurar la seguridad del clúster ................................... 276

Creación de una configuración de seguridad ....................................................................... 276Especificar una configuración de seguridad para un clúster ................................................... 296

Protección de los datos ............................................................................................................ 296Cifrar datos en reposo y en tránsito ................................................................................... 297

IAM con Amazon EMR ............................................................................................................ 306Público .......................................................................................................................... 306Autenticación con identidades ........................................................................................... 307Administración de acceso mediante políticas ....................................................................... 308Cómo funciona Amazon EMR con IAM ............................................................................... 310Configuración de roles de servicio para Amazon EMR .......................................................... 312Ejemplos de políticas basadas en identidad ........................................................................ 344

Autenticarse en nodos de clú .................................................................................................... 367Utilizar un key pair de Amazon EC2 para las credenciales SSH .............................................. 368Uso de la autenticación Kerberos ...................................................................................... 368

Integración de Amazon EMR conAWS Lake Formation ................................................................. 395Información general ......................................................................................................... 396Aplicaciones, características y limitaciones .......................................................................... 401Antes de empezar ........................................................................................................... 403Lanzamiento de un clúster de Amazon EMR con Lake Formation ........................................... 413

Integración de Amazon EMR con Apache Ranger ........................................................................ 419Información general de Ranger ......................................................................................... 420Soporte y limitaciones de aplicaciones ............................................................................... 422Configurar Amazon EMR para Apache Ranger .................................................................... 423Complementos de Apache Ranger ..................................................................................... 435Solución de problemas de Apache Ranger .......................................................................... 450

Controlar el tráfico de red con grupos de seguridad ...................................................................... 453Trabajo con grupos de seguridad administrados por Amazon EMR ......................................... 454Uso de grupos de seguridad adicionales ............................................................................ 461Especificación de grupos de seguridad ............................................................................... 461Grupos de seguridad para los EMR Notebooks .................................................................... 463Usar Block Public Access de ............................................................................................ 465

Validación de conformidad ........................................................................................................ 467Resiliencia .............................................................................................................................. 468Seguridad de infraestructuras .................................................................................................... 468

Connect a Amazon EMR mediante un punto de conexión de VPC de interfaz ........................... 469Administrar clústeres ....................................................................................................................... 473

Ver y supervisar un clúster ....................................................................................................... 473Ver el estado y detalles del clúster .................................................................................... 473Depuración de pasos mejorada ......................................................................................... 479Visualización del historial de aplicaciones ........................................................................... 481Ver archivos de registro de ............................................................................................... 487Ver instancias de clúster en Amazon EC2 .......................................................................... 491Eventos y métricas de CloudWatch .................................................................................... 492Ver métricas de aplicaciones de clúster con Ganglia ............................................................ 515Registro de llamadas a la API de Amazon EMR enAWS CloudTrail ......................................... 515

Connect al clúster ................................................................................................................... 517Antes de conectarse ........................................................................................................ 518Connect al nodo maestro utilizando SSH ............................................................................ 519Ver las interfaces web alojadas en clústeres de Amazon EMR ............................................... 524

Terminar un clúster ................................................................................................................. 533Terminar un clúster mediante la consola ............................................................................. 533Terminar un clúster mediante elAWS CLI ........................................................................... 534

vi

Page 7: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

Terminar un clúster mediante la API .................................................................................. 535Escalado de recursos del cl ...................................................................................................... 535

Uso del escalado administrado de EMR en Amazon EMR ..................................................... 536Uso del escalado automático con una política personalizada para grupos de instancias .............. 554Cambio manual de un clúster en ejecución ......................................................................... 563Escalado de clúster ......................................................................................................... 569

Clonación de un clúster mediante la consola ............................................................................... 571Enviar trabajo a un clúster ........................................................................................................ 571

Añadir pasos a un clúster mediante la consola .................................................................... 572Añadir pasos a un clúster medianteAWS CLI ...................................................................... 573Consideraciones para ejecutar varios pasos en parallel ......................................................... 575Visualización de pasos ..................................................................................................... 575Cancelación de pasos ...................................................................................................... 576

Automatice clústeres recurrentes conAWS Data Pipeline ............................................................... 577Solución de problemas de un clúster ................................................................................................. 578

¿Qué herramientas están disponibles para solucionar problemas? .................................................. 578Herramientas para mostrar los detalles del clúster ................................................................ 578Herramientas para ejecutar secuencias de comandos y configurar procesos ............................. 579Herramientas para ver archivos de registro ......................................................................... 579Herramientas para supervisar el rendimiento del clúster ........................................................ 580

Visualización y reinicio de Amazon EMR y procesos de aplicación (daemons) ................................... 580Visualizar procesos en ejecución ....................................................................................... 580Parada y reinicio de procesos ........................................................................................... 582

Solucionar problemas de un clúster con errores ........................................................................... 584Paso 1: Recopilar datos sobre el problema ......................................................................... 584Paso 2: Consultar el entorno ............................................................................................. 584Paso 3: Mira el último cambio de estado ............................................................................ 585Paso 4: Examinar los archivos de registro ........................................................................... 586Paso 5: Prueba del clúster paso a paso ............................................................................. 587

Solucionar problemas de un clúster lento .................................................................................... 587Paso 1: Recopilar datos sobre el problema ......................................................................... 588Paso 2: Consultar el entorno ............................................................................................. 588Paso 3: Examinar los archivos de registro ........................................................................... 589Paso 4: Comprobar el estado del clúster y .......................................................................... 590Paso 5: Comprobar si hay grupos suspendidos .................................................................... 591Paso 6: Revisión de la configuración de configuración .......................................................... 592Paso 7: Examinar datos de entrada ................................................................................... 593

Errores comunes en Amazon EMR ............................................................................................ 594Errores de entrada y salida .............................................................................................. 594Errores de permisos ........................................................................................................ 596Errores recursos ............................................................................................................. 597Errores clúster ................................................................................................................ 604Errores de clúster ........................................................................................................... 605Errores de clúster ........................................................................................................... 606Errores de VPC .............................................................................................................. 607AWS GovCloud errores (EE.UU.-Oeste) ............................................................................. 610Otros problemas. ............................................................................................................. 610

Solución de problemas de un clúster de Lake Formation ............................................................... 610No se permite el acceso al lago de datos ........................................................................... 611Vencimiento de la sesión ................................................................................................. 611Sin permisos para el usuario en la tabla solicitada ............................................................... 611Inserción, creación y modificación de tablas: No se admite en versión beta .............................. 611

Escribir aplicaciones que lancen y administren clústeres ....................................................................... 612Ejemplo de código fuente de Java integral de Amazon EMR .......................................................... 612Conceptos comunes para llamadas a API ................................................................................... 615

Puntos de enlace para Amazon EMR ................................................................................. 615Especificación de parámetros de clúster en Amazon EMR ..................................................... 615

vii

Page 8: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

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

Utilizar SDK para llamar a las API de Amazon EMR ..................................................................... 616Uso deAWS SDK for JavaPara crear un clúster de Amazon EMR ........................................... 617

Gestionar cuotas de Amazon EMR Service ................................................................................. 618Qué son las Service Quotas Amazon EMR ......................................................................... 619Cómo administrar las Service Quotas Amazon EMR ............................................................. 619Cuándo configurar los eventos de EMR en CloudWatch ........................................................ 619

Glosario de AWS ............................................................................................................................ 622................................................................................................................................................. dcxxiii

viii

Page 9: Amazon EMR - Guía de administración

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

¿Qué es Amazon EMR?Amazon EMR (anteriormente llamada Amazon Elastic MapReduce) es una plataforma de clústeradministrada que simplifica la ejecución de los marcos de trabajo de Big Data, tales comoApacheHadoopyApache Spark, enAWSpara procesar y analizar grandes cantidades de datos. Con estos marcosde trabajo y proyectos de código abierto relacionados, puede procesar datos para fines de análisis ycargas de trabajo de inteligencia empresarial. Amazon EMR también permite transformar y trasladargrandes cantidades de datos hacia y desde otrosAWSalmacenes de datos y bases de datos, comoAmazon Simple Storage Service (Amazon S3) y Amazon DynamoDB.

Si es la primera vez que utiliza Amazon EMR, le recomendamos que comience leyendo lo siguiente,además de esta sección:

• Amazon EMR: esta página de servicio ofrece los puntos destacados de Amazon EMR, los detalles delproducto y la información de precios.

• Tutorial: Introducción a Amazon EMR (p. 13)— Este tutorial le permite empezar a utilizar AmazonEMR rápidamente.

En esta sección• Información general de Amazon EMR (p. 1)• Beneficios de uso de Amazon EMR (p. 5)• Información general de la arquitectura de Amazon EMR (p. 9)

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 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 nodosEl componente central de Amazon EMR es elracimo. Un clúster es un conjunto de instancias de AmazonElastic Compute Cloud (Amazon EC2). Cada instancia del clúster se denomina nodo. Cada nodo tiene unrol dentro del clúster, conocido como eltipo de nodo. Amazon EMR también instala distintos componentesde software en cada tipo de nodo, proporcionando a cada nodo un rol en una aplicación distribuida, comoApache Hadoop.

Los tipos de nodos en Amazon EMR son los siguientes:

• Nodo principal: 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 10: Amazon EMR - Guía de administración

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 principal: Nodo con componentes de software que ejecutan tareas y almacenan datos en elHadoop Distributed File System (HDFS) de su clúster. Los clústeres de varios nodos tienen al menos unnodo secundario.

• nodo de tarea: 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 ejecuta un clúster en Amazon EMR, dispone de varias opciones sobre cómo especificar el trabajoque 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.

• Cree un clúster de larga duración y utilice la consola de Amazon EMR, la API de Amazon EMR o elAWSCLIpara enviar pasos, que pueden contener una o varias tareas. Para obtener más información, consulteEnviar trabajo a un clúster (p. 571).

• 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 laGuí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 su clúster de Amazon EMR, puede enviartrabajos o consultas directamente a las aplicaciones instaladas, o puede ejecutarpasosen el clúster.

2

Page 11: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónProcesamiento de datos

Envío de trabajos directamente a las solicitudesPuede 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 Connect al clúster (p. 517).

Pasos de ejecución 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 falla durante el procesamiento, su estado cambia aERROR. Puede determinar lo queocurre para cada paso. De forma predeterminada, los pasos restantes de la secuencia se establecenenCANCELADOy no se ejecute si falla un paso anterior. También puede elegir omitir el error y permitir quelos pasos restantes continúen o terminar el clúster inmediatamente.

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

3

Page 12: Amazon EMR - Guía de administración

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

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 acuerdocon sus especificaciones. Para obtener más información, consulte Configuración de hardware yredes de clúster (p. 214). Para todas las instancias, Amazon EMR utiliza la AMI predeterminadade Amazon EMR o una AMI de Amazon Linux personalizada que especifique. Para obtener másinformación, consulte Uso de una AMI personalizada (p. 199). Durante esta fase, el estado del clústeres STARTING.

2. Amazon EMR ejecutaAcciones de arranqueque especifique en cada instancia. Puede utilizaracciones de arranque para instalar aplicaciones personalizadas y realizar las personalizaciones quenecesite. Para obtener más información, consulte Crear acciones de arranque para instalar softwareadicional (p. 210). 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 Enviar trabajo a un clúster (p. 571).

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 completadoel último paso, pasa a unTERMINATINGestado y luego en elTERMINATEDestado. Si el clúster estáconfigurado para esperar, debe apagarlo manualmente cuando deje de necesitarlo. Después de apagarmanualmente el clúster, pasa a laTERMINATINGestado y luego en elTERMINATEDestado.

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 unerror, todos los datos almacenados en el clúster se eliminan y el estado del clúster se establece enTERMINATED_WITH_ERRORS. Si ha habilitado la protección de terminación, puede recuperar los datos delclúster y después eliminar la protección de terminación y terminar el clúster. Para obtener más información,consulte Uso de la protección contra terminación (p. 191).

El siguiente diagrama representa el ciclo de vida de un clúster y cómo cada etapa del ciclo de vida seasocia a un determinado estado del clúster.

4

Page 13: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónBeneficios

Beneficios de uso de 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)• AWSIntegración de (p. 6)• Implementación (p. 6)• Escalabilidad y flexibilidad (p. 6)• Fiabilidad (p. 7)• Seguridad (p. 7)• Supervisión (p. 8)• Interfaces de administración (p. 9)

Ahorro de costosLos precios de Amazon EMR dependen del tipo de instancia y del número de instancias Amazon 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 subasta pueden ofrecer ahorros significativos, de solo una décima parte de losprecios bajo demanda en algunos casos.

5

Page 14: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAWSIntegración de

Note

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

Cuando configuras un clúster de Amazon EMR en una subred privada, te recomendamos quetambién configuresPuntos de enlace de la VPC para Amazon S3. Si su clúster de EMR seencuentra en una subred privada sin endpoints de VPC para Amazon S3, incurrirá en cargosadicionales de gateway NAT asociados al tráfico de S3 porque el tráfico entre el clúster de EMR yS3 no permanecerá dentro de la VPC.

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

AWSIntegración deAmazon EMR se integra con otrosAWSpara proporcionar capacidades y funcionalidades relacionadas conlas redes, el almacenamiento, la seguridad, etc. para el clúster. La siguiente lista proporciona diversosejemplos 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 desempeño del clúster y configurar alarmas• AWS Identity and Access Management(IAM) para configurar permisos• AWS CloudTrail para auditar solicitudes realizadas al servicio• AWS Data Pipeline para programar e iniciar los clústeres• AWS Lake Formationpara descubrir, catalogar y proteger los datos en un lago de datos de Amazon S3

ImplementaciónEl clúster de EMR consta de instancias EC2, que realizan el trabajo que envía a su clúster. Cuandose lanza el clúster, Amazon EMR configura las instancias con las aplicaciones que elija, como ApacheHadoop o Spark. Elija el tamaño y el tipo de instancia que mejor se adapte a las necesidades deprocesamiento de su clúster: procesamiento por lotes, consultas de baja latencia, streaming de datos oalmacenamiento de datos de gran tamaño. Para obtener más información sobre los tipos de instanciasdisponibles para Amazon EMR, consulteConfiguración de hardware y redes de clúster (p. 214).

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 marcosde trabajo versátiles como, por ejemplo, Hadoop y aplicaciones como Hive, Pig o Spark. También puedeinstalar una de las diversas distribuciones de MapR. Amazon EMR utiliza Amazon Linux, por lo quetambién puede instalar software en su clúster manualmente mediante el administrador de paquetes yum odesde el origen. Para obtener más información, consulte Configuración del software de clú (p. 210).

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 Cambio manual de un clúster enejecución (p. 563).

6

Page 15: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónFiabilidad

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 subasta en otro grupo para completar los trabajos con mayor rapidez y con costos menores.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 debe usar instanciaspuntuales? (p. 259).

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 principal del clúster para el procesamiento dedatos que no es necesario almacenar más allá del ciclo de vida del clúster. Podría elegir el sistema dearchivos EMR (EMRFS) para utilizar Amazon S3 como capa de datos para aplicaciones que se ejecutan ensu clúster para que pueda separar la computación y el almacenamiento, así como para conservar los datoscuando finaliza el ciclo de vida de su clúster. EMRFS ofrece el beneficio añadido de permitirle aumentaro reducir el escalado de sus necesidades de computación y almacenamiento de manera independiente.Puede escalar sus necesidades informáticas cambiando el tamaño de su clúster y puede escalar susnecesidades de almacenamiento mediante el uso de Amazon S3. Para obtener más información, consulteTrabajar con sistemas de almacenamiento y archivos (p. 148).

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 si el clúster se termina 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 contra terminación (p. 191).

SeguridadAmazon EMR aprovecha otrosAWSservicios de, como IAM y Amazon VPC, y características como paresde 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 adjunta a los 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 recursosa los que pueden acceder. Para obtener más información, consulte Cómo funciona Amazon EMR conIAM (p. 310).

Además, Amazon EMR utiliza roles de IAM para el propio servicio de Amazon EMR y el perfil de instanciaEC2 de las instancias. Estos roles conceden permisos al servicio y a las instancias para obtener accesoa otrosAWSServicios en su nombre. Hay un rol predeterminado para el servicio de Amazon EMR y unrol predeterminado para el perfil de instancia EC2. Los roles predeterminados que utilizanAWSpolíticasadministradas, que se crean automáticamente la primera vez que lanza un clúster de EMR desdela consola y elige los permisos de forma predeterminada. También puede crear los roles de IAMpredeterminados desde laAWS CLI. Si desea administrar los permisos en lugar deAWS, puede elegir roles

7

Page 16: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSupervisión

personalizados para el servicio y el perfil de instancia. Para obtener más información, consulte Configurarroles de servicio de IAM para permisos de Amazon EMR paraAWSservicios y recursos (p. 312).

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 maestra y ungrupo de seguridad compartido por las instancias principales/de tarea. Amazon EMR configura las reglasde grupo de seguridad para garantizar la comunicación entre las instancias del clúster. De forma opcional,puede configurar grupos de seguridad adicionales y asignarlos a sus instancias principales y secundarias/de tareas si necesita reglas más avanzadas. Para obtener más información, consulte Controlar el tráfico dered con grupos de seguridad (p. 453).

Encryption (Cifrado)Amazon EMR admite cifrado opcional de Amazon S3 del lado del cliente y del lado del servidor conEMRFS para ayudar a proteger los datos que almacene 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 ensu clúster de EMR. Puede administrar la clave raíz para el cifrado del lado cliente mediante elAWS KeyManagement Service(AWS KMS) o su propio sistema de administración de claves.

Para obtener más información, consulteCifrado de datos de Amazon S3 con EMRFS en elGuía depublicación de Amazon EMR.

Amazon VPCAmazon EMR admite el lanzamiento de clústeres en una nube virtual privada (VPC) en Amazon VPC. UnaVPC es una red virtual aislada enAWSque proporciona la posibilidad de controlar aspectos avanzados dela configuración de la red y del acceso. Para obtener más información, consulte Configure redes (p. 224).

AWS CloudTrailAmazon EMR se integra con CloudTrail para registrar información acerca de las solicitudes realizadas poro en nombre de suAWSaccount. Con esta información, puede realizar un seguimiento de quién accede encada 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 enAWS CloudTrail (p. 515).

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 parala autenticación. Si utiliza SSH, se requiere un key pair de Amazon EC2. Para obtener más información,consulte Utilizar un key pair de Amazon EC2 para las credenciales SSH (p. 368).

SupervisiónPuede usar las interfaces de administración de Amazon EMR y los archivos de registro para solucionarproblemas de clúster como, por ejemplo, averías o errores. Amazon EMR ofrece la posibilidad de archivarlos archivos de registro en Amazon S3 para que pueda almacenar registros y cuestiones de solución deproblemas 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 basada enpasos, trabajos y tareas. Para obtener más información, consulte Configurar el registro y la depuración declústeres (p. 263).

Amazon EMR se integra con CloudWatch para realizar un seguimiento de las métricas de desempeñodel clúster y los trabajos en el clúster. Puede configurar alarmas basadas en diversas métricas como,

8

Page 17: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónInterfaces de administración

por ejemplo, si el clúster está inactivo o el porcentaje de almacenamiento utilizado. Para obtener másinformación, consulte Supervisar métricas con CloudWatch (p. 502).

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

• Consola: 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 enhttps://console.aws.amazon.com/elasticmapreduce/home.

• AWS Command Line Interface(AWS CLI): una aplicación cliente que ejecuta en su equipo localpara conectarse a Amazon EMR y crear y administrar clústeres. LaAWS CLIcontiene un conjunto decomandos 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, consulteAmazon EMRen laAWS CLIReferencia de los comandos.

• 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. El uso del SDK es la mejor opción para ampliar o personalizarla funcionalidad de Amazon EMR. Amazon EMR está disponible actualmente en los siguientes SDKde: Go, Java, .NET (C# y VB.NET), Node.js, PHP, Python y Ruby. Para obtener más información sobreestos SDK, consulteHerramientas paraAWSyBibliotecas y código de muestra de Amazon EMR.

• API de servicio 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 laReferencia de la API de Amazon EMR.

Información general de la arquitectura de AmazonEMR

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ú (p. 10)• Marcos de procesamiento de datos (p. 10)• Aplicaciones y programas (p. 11)

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 datos

9

Page 18: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministración de recursos de clú

en 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, consulteGuía del usuario de HDFSen 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 acceder directamente a los datos almacenados en Amazon S3 como si fueran un sistema de archivoscomo HDFS. Puede usar HDFS o Amazon S3 como sistema de archivos en su clúster. A menudo, AmazonS3 se usa para almacenar los datos de entrada y de salida y los resultados intermedios se almacenan enHDFS.

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 preadjuntado llamado un almacén de instancias. Los datos en volúmenes delalmacén de instancias se conservan solo durante el ciclo de vida de su instancia Amazon EC2.

Administración de recursos de clúLa 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 y aplicaciones que seofrecen en Amazon EMR que no utilizan YARN como administrador de recursos. Amazon EMR tambiéndispone de un agente en cada nodo que administra los componentes de YARN, mantiene el clúster enbuen estado y se comunica con Amazon EMR.

Dado que las instancias puntuales se utilizan a menudo para ejecutar nodos de tareas, Amazon EMR tienela funcionalidad predeterminada para programar trabajos YARN, de modo que los trabajos en ejecuciónno fallan cuando se terminan los nodos de tareas que se ejecutan en instancias puntuales. Amazon EMRlo hace permitiendo que los procesos maestros de aplicaciones se ejecuten solo en nodos principales. Elproceso maestro de aplicaciones controla los trabajos en ejecución y necesita mantenerse vivo durantetoda la vida del trabajo.

La versión 5.19.0 y posterior de Amazon EMR utiliza elEtiquetas de nodo YARNfunción para lograrlo.(Las versiones anteriores utilizaban un parche de código). Propiedades en elyarn-siteycapacity-schedulerlas clasificaciones de configuración se configuran de forma predeterminada para que elprogramador de capacidades YARN y el programador de errores aprovechen las etiquetas de los nodos.Amazon EMR etiqueta automáticamente los nodos principales con elCOREetiqueta y establece propiedadespara que los maestros de aplicaciones se programen solo en nodos con la etiqueta CORE. La modificaciónmanual de las propiedades relacionadas en las clasificaciones de configuración del sitio de hilo y delprogramador de capacidades, o directamente en los archivos XML asociados, podría interrumpir estafunción o modificar esta 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 de

10

Page 19: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y programas

necesidades 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, consulteCómo se llevan a cabo efectivamente las operaciones decartografía y reducciónen el sitio 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 ejecuta Spark en Amazon EMR, puede usar EMRFSpara acceder directamente a sus datos en Amazon S3. Spark admite diversos módulos de consultainteractivos como, por ejemplo, SparkSQL.

Para obtener más información, consulteClústeres de Apache Spark en Amazon EMRen laGuía depublicación de Amazon EMR.

Aplicaciones y programasAmazon EMR admite muchas aplicaciones, tales como Hive, Pig, y la biblioteca Spark Streamingpara ofrecer capacidades como el uso de lenguajes de nivel superior para crear cargas de trabajode procesamiento, el uso de algoritmos de aprendizaje automático, el desarrollo de aplicaciones deprocesamiento 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 laGuía de publicación de Amazon EMR.

11

Page 20: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónRegistrarse en AWS

Configuración de Amazon EMRComplete las tareas de esta sección antes de lanzar un clúster de Amazon EMR por primera vez:

1. Registrarse en AWS (p. 12)2. Creación de un key pair de Amazon EC2 para SSH (p. 12)

Registrarse en AWSSi no dispone de una Cuenta de AWS, siga los pasos que figuran a continuación para crear una.

Para registrarse en Cuenta de AWS

1. Abra https://portal.aws.amazon.com/billing/signup.2. Siga las instrucciones en línea.

Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e indicar un código deverificación en el teclado del teléfono.

Creación de un key pair de Amazon EC2 para SSHNote

Con las versiones EMR versión 5.10.0 o las versiones posteriores de, puede configurar Kerberospara autenticar a los usuarios y las conexiones SSH a un clúster. Para obtener más información,consulte Uso de la autenticación Kerberos (p. 368).

Para autenticar y conectarse a los nodos de un clúster a través de un canal seguro mediante el protocoloSecure Shell (SSH), cree un key pair de Amazon Elastic Compute Cloud (Amazon EC2) antes de iniciar elclúster. También puede crear un clúster sin un par de claves. Esto se hace con clústeres transitorios quese inician, ejecutan pasos, y luego se terminan de forma automática.

Si... Luego...

Ya tiene un key pair de Amazon EC2 que deseautilizar o no necesita autenticarse en el clúster.

Sáltese este paso.

Debe crear un key pair ConsulteCreación del key pair mediante AmazonEC2.

Pasos siguientes• Para obtener orientación sobre cómo crear un clúster de ejemplo, consulteTutorial: Introducción a

Amazon EMR (p. 13).• Para obtener más información acerca de cómo configurar un clúster personalizado y controlar el acceso

a él, consultePlanificar y configurar clústeres (p. 141)ySeguridad en Amazon EMR (p. 274).

12

Page 21: Amazon EMR - Guía de administración

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

Tutorial: Introducción a Amazon EMRInformación general

Con Amazon EMR puede configurar un clúster para procesar y analizar datos con marcos de big dataen tan solo unos minutos. En este tutorial se muestra cómo lanzar un clúster de ejemplo utilizando Sparky cómo ejecutar un simple PySpark script almacenado en un bucket de Amazon S3. Cubre las tareasesenciales de Amazon EMR en tres categorías principales de flujo de trabajo: Planifique y configure,gestione y limpie.

Encontrarás enlaces a temas más detallados a medida que trabajas en el tutorial e ideas para los pasosadicionales en elPasos siguientes (p. 24)sección. Si tiene alguna pregunta o no sabe cómo continuar,póngase en contacto con el equipo de Amazon EMR en nuestraForo de debate.

Requisitos previos

• Antes de lanzar un clúster de Amazon EMR, asegúrese de completar las tareas deConfiguración deAmazon EMR (p. 12).

Costo

• El clúster de ejemplo que cree se ejecuta en un entorno real. El clúster acumula cargos mínimos. Paraevitar cargos adicionales, asegúrese de completar las tareas de limpieza en el último paso de estetutorial. Los cargos se acumulan a la tarifa por segundo según los precios de Amazon EMR. Los cargostambién varían según la región de. Para obtener más información, consultePrecios de Amazon EMR.

• Pueden acumularse cargos mínimos para los archivos pequeños que almacena en Amazon S3. Esposible que no se apliquen parte o la totalidad de los cargos de Amazon S3 si está dentro de los límitesde uso delAWSCapa gratuita. Para obtener más información, consultePrecios de Amazon S3yAWSCapagratuita.

13

Page 22: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 1: Planificar y configurar

Paso 1: Planificar y configurar un clúster deAmazon EMR

Preparación del almacenamiento para Amazon EMRCuando utiliza Amazon EMR, puede elegir entre varios sistemas de archivos para almacenar datos deentrada, datos de salida y archivos de registro. En este tutorial, utilice EMRFS para guardar datos enun bucket de S3. EMRFS es una implementación del sistema de archivos Hadoop que permite lectura yescritura de archivos de tamaño normal en Amazon S3. Para obtener más información, consulte Trabajarcon sistemas de almacenamiento y archivos (p. 148).

Para crear un bucket para este tutorial, siga las instrucciones indicadas en¿Cómo se puede crear unbucket de S3?en laGuía del usuario de Amazon Simple Storage Service Console. Cree el bucket en elmismoAWSRegión en la que planea lanzar el clúster de Amazon EMR. Por ejemplo, US West (Oregon) us-west-2.

Los buckets y carpetas que utilice con Amazon EMR tienen las siguientes limitaciones:

• Los nombres pueden constar de letras en minúscula, números, puntos (.) y guiones (-).• Los nombres no pueden terminar en números.• El nombre de un bucket debe ser únicoen todoAWScuentas.• Una carpeta de salida debe estar vacía.

Preparar una aplicación con datos de entrada paraAmazon EMRLa forma más común de preparar una aplicación para Amazon EMR es cargar la aplicación y sus datos deentrada en Amazon S3. A continuación, cuando envía trabajo a su clúster, especifica las ubicaciones deAmazon S3 para el script y los datos.

En este paso, cargará un ejemplo PySpark script a su bucket de Amazon S3. Hemos proporcionado unPySpark script para que lo uses. El script procesa los datos de inspección de establecimientos alimentariosy devuelve un archivo de resultados en el depósito de S3. El archivo de resultados enumera los diezprincipales establecimientos con más infracciones de tipo «rojo».

También puede cargar datos de entrada de ejemplo en Amazon S3 para la PySpark script para procesar.Los datos de entrada son una versión modificada de los resultados de la inspección del Departamentode Health en King County, Washington, de 2006 a 2020. Para obtener más información, consulteDatosabiertos del condado de King: Datos de inspección de establecimientos alimentarios. A continuación, seincluyen ejemplos de filas del conjunto de datos.

name, inspection_result, inspection_closed_business, violation_type, violation_points100 LB CLAM, Unsatisfactory, FALSE, BLUE, 5100 PERCENT NUTRICION, Unsatisfactory, FALSE, BLUE, 57-ELEVEN #2361-39423A, Complete, FALSE, , 0

Para preparar el ejemplo PySpark script para EMR

1. Copie el código de ejemplo siguiente en un nuevo archivo del editor que prefiera.

import argparse

14

Page 23: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPreparar una aplicación con datos

de entrada para Amazon EMR

from pyspark.sql import SparkSession

def calculate_red_violations(data_source, output_uri): """ Processes sample food establishment inspection data and queries the data to find the top 10 establishments with the most Red violations from 2006 to 2020.

:param data_source: The URI of your food establishment data CSV, such as 's3://DOC-EXAMPLE-BUCKET/food-establishment-data.csv'. :param output_uri: The URI where output is written, such as 's3://DOC-EXAMPLE-BUCKET/restaurant_violation_results'. """ with SparkSession.builder.appName("Calculate Red Health Violations").getOrCreate() as spark: # Load the restaurant violation CSV data if data_source is not None: restaurants_df = spark.read.option("header", "true").csv(data_source)

# Create an in-memory DataFrame to query restaurants_df.createOrReplaceTempView("restaurant_violations")

# Create a DataFrame of the top 10 restaurants with the most Red violations top_red_violation_restaurants = spark.sql("""SELECT name, count(*) AS total_red_violations FROM restaurant_violations WHERE violation_type = 'RED' GROUP BY name ORDER BY total_red_violations DESC LIMIT 10""")

# Write the results to the specified output URI top_red_violation_restaurants.write.option("header", "true").mode("overwrite").csv(output_uri)

if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( '--data_source', help="The URI for you CSV restaurant data, like an S3 bucket location.") parser.add_argument( '--output_uri', help="The URI where output is saved, like an S3 bucket location.") args = parser.parse_args()

calculate_red_violations(args.data_source, args.output_uri)

2. Guarde el archivo como health_violations.py.3. Cargarhealth_violations.pya Amazon S3 en el depósito que creó para este tutorial. Para

obtener instrucciones, consulteCargar un objeto en un bucketen laAmazon Simple Storage ServiceGetting Started Guide.

Para preparar los ejemplos de datos de entrada para EMR

1. Descargue el archivo zip,food_establishment_data.zip que es.2. Descomprima y

guardefood_establishment_data.zipcomofood_establishment_data.csven su máquina.3. Cargue el archivo CSV en el bucket de S3 que ha creado para este tutorial. Para obtener

instrucciones, consulteCargar un objeto en un bucketen laAmazon Simple Storage Service GettingStarted Guide.

15

Page 24: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR

Para obtener más información acerca de la configuración de datos para EMR, consultePrepare los datosde entrada (p. 151).

Lanzar un clúster de Amazon EMRDespués de preparar una ubicación de almacenamiento y su aplicación, puede lanzar un clústerde Amazon EMR de ejemplo. En este paso, lanzaremos un clúster de Apache Spark utilizando laúltimaVersión de Amazon EMR.

Console

Para lanzar un clúster con Spark instalado utilizandoOpciones rápidas

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. ElegirCrear un clústerpara abrirAsistente de opciones rápidas.3. Anote los valores predeterminados deLiberar el,Tipo de instancia,Number of instances (Número

de instancias), yPermisosen elCrear clúster: opciones rápidas(Se ha creado el certificado).Estos campos se rellenan automáticamente con valores que funcionan para clústeres de usogeneral. Para obtener más información acerca de laOpciones rápidasajustes de configuración,consulteResumen de las opciones rápidas (p. 142).

4. Introduzca unCluster name (Nombre del clúster)Para ayudarle a identificar el clúster. Porejemplo,Mi primer clúster de EMR.

5. DejarRegistro dehabilitada, pero sustituya elS3 folder (Carpeta de S3)valor con el bucket deAmazon S3 que ha creado, seguido de/logs. Por ejemplo, s3://DOC-EXAMPLE-BUCKET/logs. ADDG/logscrea una nueva carpeta denominada «logs» en su depósito, donde EMRpuede copiar los archivos de registro de su clúster.

6. Elija el iconoSparkopción enAplicacionespara instalar Spark en el clúster.

Note

Elija las aplicaciones que desea en su clúster de Amazon EMR antes de iniciar el clúster.No se pueden añadir ni eliminar aplicaciones de un clúster después del lanzamiento.

7. Elija suEC2 key pair (Par de claves de EC2)UNDERSeguridad y acceso.8. ElegirCrear un clústerpara iniciar el clúster y abrir la página de estado del clúster.9. Buscar el clústerEstadojunto al nombre del clúster. El estado cambia deStartingaEn

ejecuciónaWaitingya que Amazon EMR aprovisiona el clúster. Es posible que tenga que elegir elicono de actualización situado a la derecha o actualizar el navegador para ver las actualizacionesde estado.

El estado del clúster cambia aWaitingcuando el clúster esté activo, en ejecución y listo para aceptartrabajo. Para obtener más información sobre cómo leer el resumen del clúster, consulte Ver elestado y detalles del clúster (p. 473). Para obtener información acerca del estado del clúster,consulteDescripción del ciclo de vida del clúster (p. 4).

CLI

Para lanzar un clúster con Spark instalado utilizando la AWS CLI

1. Cree roles predeterminados de IAM que puede utilizar para crear el clúster mediante el siguientecomando.

aws emr create-default-roles

Para obtener más información acerca de create-default-roles, consulte laAWS CLIReferencia dede.

16

Page 25: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzar un clúster de Amazon EMR

2. Cree un clúster de Spark con el siguiente comando. Ingrese un nombre para el clúster con la--namey especifique el nombre del key pair de EC2 con la--ec2-attributesopción.

aws emr create-cluster \--name "<My First EMR Cluster>" \--release-label <emr-5.36.0> \--applications Name=Spark \--ec2-attributes KeyName=<myEMRKeyPairName> \--instance-type m5.xlarge \--instance-count 3 \--use-default-roles

Tenga en cuenta los demás valores obligatorios para--instance-type,--instance-count,y--use-default-roles. Estos valores se han elegido para clústeres de uso general. Paraobtener más información acerca decreate-cluster, consulte elAWS CLIReferencia de de.

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar lalegibilidad. Se pueden quitar o utilizar en los comandos de Linux. En Windows, quítelos oreemplácese por un signo de intercalación (^).

Debería ver un resultado como el siguiente. En el resultado, se observaelClusterIdyClusterArndel nuevo clúster. Tenga en cuenta suClusterId. UsaelClusterIdpara comprobar el estado del clúster y enviar trabajo.

{ "ClusterId": "myClusterId", "ClusterArn": "myClusterArn"}

3. Consulte el estado del clúster con el siguiente comando.

aws emr describe-cluster --cluster-id <myClusterId>

Debería ver una salida similar a la siguiente con laStatusobjeto para el nuevo clúster.

{ "Cluster": { "Id": "myClusterId", "Name": "My First EMR Cluster", "Status": { "State": "STARTING", "StateChangeReason": { "Message": "Configuring cluster software" } } }}

LaStatecambios de valor deSTARTINGaRUNNINGaWAITINGya que Amazon EMR aprovisiona elclúster.

Cambio del estado del clústerWAITINGcuando un clúster está activo, en ejecución y listo para aceptartrabajo. Para obtener información acerca del estado del clúster, consulteDescripción del ciclo de vidadel clúster (p. 4).

17

Page 26: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 2: Administración

Paso 2: Administración de su clúster de AmazonEMR

Enviar trabajo a Amazon EMRDespués de lanzar un clúster, puede enviar trabajo al clúster en ejecución para procesar y analizar datos.Envía trabajo a un clúster de Amazon EMR comopaso. Un paso es una unidad de trabajo compuesta poruna o varias acciones. Por ejemplo, puede enviar un paso para calcular valores o para transferir y procesardatos. Puede enviar pasos al crear un clúster o a un clúster en ejecución. En esta parte del tutorial,envíahealth_violations.pycomo paso hacia el clúster en ejecución. Para obtener más informaciónsobre los pasos de, consulteEnviar trabajo a un clúster (p. 571).

Console

Para enviar una aplicación de Spark como paso utilizando la consola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Seleccione el nombre de su clúster en laLista clúster. El estado del clúster debe serWaiting.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 Spark application (Aplicación de Spark). Debería vercampos adicionales paraModo de implementación,Opciones de spark-submit, yUbicación de laaplicaciónaparecen.

• ParaNombre, deje el valor predeterminado o escriba un nombre nuevo. Si tiene muchos pasosen un clúster, nombrar cada paso le ayuda a realizar un seguimiento de ellos.

• ParaModo de implementación, deje el valor predeterminadoRacimo. Para obtener másinformación acerca de los modos de implementación de Spark, consulteInformación generalsobre el modo deen la documentación de Apache Spark.

• Deje elOpciones de spark-submitcampo en blanco. Para obtener más información acercadespark-submitopciones, consulteLanzamiento de solicitudes con spark-submit.

• ParaUbicación de la aplicación, introduzca la ubicación de suhealth_violations.pyscripten Amazon S3. Por ejemplo,s3: //DOC-EXAMPLE-BUCKET/health_violations.py.

• En el navegadorArguments (Argumentos), introduzca los siguientes argumentos y valores:

--data_source s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv--output_uri s3://DOC-EXAMPLE-BUCKET/myOutputFolder

Reemplazars3: //DOC-EXAMPLE-BUCKET/food_establishment_data.csvcon el URI deS3 de los datos de entrada que preparó enPreparar una aplicación con datos de entrada paraAmazon EMR (p. 14).

ReemplazarDOC-EXAMPLE-BUCKETcon el nombre del bucket de que ha creado para estetutorial yMi carpeta de salidacon un nombre para la carpeta de salida del clúster.

• ParaAction on Failure, acepte la opción predeterminadaContinuarDe modo que si se produceun error en el paso, el clúster sigue ejecutándose.

5. ElegirAñadirpara enviar el paso. El paso debería aparecer en la consola con el estadodePendiente.

6. Compruebe el estado del paso desde el que cambiarPendienteaEn ejecuciónaCompleted. Paraactualizar el estado en la consola, elija el icono de actualización situado a la derecha de laFiltro.El script tarda alrededor de un minuto en ejecutarse.

18

Page 27: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEnviar trabajo a Amazon EMR

Sabrá que el paso finalizó correctamente cuando el estado cambie aCompleted.CLI

Para enviar una solicitud de Spark como paso utilizando laAWS CLI

1. Asegúrese de que tiene laClusterIddel clúster en el que se lanzóLanzar un clúster de AmazonEMR (p. 16). También puede recuperar el ID de clúster con el siguiente comando.

aws emr list-clusters --cluster-states WAITING

2. Enviarhealth_violations.pycomo paso con eladd-stepscomando y tuClusterId.

• Puede especificar un nombre para el paso reemplazando«Mi aplicaciónSpark». En el navegadorArgsmatriz, reemplaces3: //DOC-EXAMPLE-BUCKET/health_violations.pycon la ubicación de suhealth_violations.pyrevisiones de.

• Reemplazars3: //DOC-EXAMPLE-BUCKET/food_establishment_data.csvcon laubicación S3 de sufood_establishment_data.csvconjunto de datos.

• Reemplazars3: //DOC/myOutputFoldercon la ruta S3 del bucket designado y un nombrepara la carpeta de salida del clúster.

• ActionOnFailure=CONTINUEsignifica que el clúster sigue ejecutándose si se produce unerror en el paso.

aws emr add-steps \--cluster-id <myClusterId> \--steps Type=Spark,Name="<My Spark Application>",ActionOnFailure=CONTINUE,Args=[<s3://DOC-EXAMPLE-BUCKET/health_violations.py>,--data_source,<s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv>,--output_uri,<s3://DOC-EXAMPLE-BUCKET/MyOutputFolder>]

Para obtener más información sobre el envío de pasos utilizando la CLI, consulte laAWSCLIReferencia de los comandos.

Una vez que envíe el paso, debería ver un resultado como el siguiente con una lista deStepIds.Desde que enviaste un paso, solo verás un ID en la lista. Copia tu ID de paso. Utiliza el ID depaso para comprobar el estado del paso.

{ "StepIds": [ "s-1XXXXXXXXXXA" ]}

3. Consulte el estado de su paso con eldescribe-stepcomando.

aws emr describe-step --cluster-id <myClusterId> --step-id <s-1XXXXXXXXXXA>

Debería ver un resultado como el siguiente con información sobre su paso.

{ "Step": { "Id": "s-1XXXXXXXXXXA", "Name": "My Spark Application", "Config": { "Jar": "command-runner.jar", "Properties": {},

19

Page 28: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer los resultados

"Args": [ "spark-submit", "s3://DOC-EXAMPLE-BUCKET/health_violations.py", "--data_source", "s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv", "--output_uri", "s3://DOC-EXAMPLE-BUCKET/myOutputFolder" ] }, "ActionOnFailure": "CONTINUE", "Status": { "State": "COMPLETED" } }}

LaStatede los cambios de paso dePENDINGaRUNNINGaCOMPLETEDa medida que se ejecutael escalón. El paso tarda aproximadamente un minuto en ejecutarse, por lo que es posible quetengas que comprobar el estado varias veces.

Sabrás que el paso fue exitoso cuando elStatecambios enCOMPLETED.

Para obtener más información sobre el ciclo de vida de los pasos, consultePasos de ejecución paraprocesar datos (p. 3).

Ver los resultadosDespués de que un paso se haya ejecutado correctamente, puede ver los resultados de salida en lacarpeta de salida de Amazon S3.

Para ver los resultados dehealth_violations.py

1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.2. Elija el iconoNombre del buckety, a continuación, la carpeta de salida de que especificó al enviar el

paso. Por ejemplo,DOC-EXAMPLE-BUCKETy luegoMi carpeta de salida.3. Compruebe que aparezcan los siguientes elementos en la carpeta de salida:

• Un objeto de pequeño tamaño llamado_SUCCESS.• Un archivo CSV que comienza con el prefijopart-que contiene los resultados.

4. Elija el objeto con los resultados y, a continuación, elijaDescargarpara guardar los resultados en elsistema de archivos local.

5. Abra los resultados en el editor que prefiera. El archivo de salida enumera los diez principalesestablecimientos alimentarios con más infracciones rojas. El archivo de salida también muestra elnúmero total de infracciones rojas de cada establecimiento.

A continuación se muestra un ejemplo dehealth_violations.pyresultados.

name, total_red_violationsSUBWAY, 322T-MOBILE PARK, 315WHOLE FOODS MARKET, 299PCC COMMUNITY MARKETS, 251TACO TIME, 240MCDONALD'S, 177THAI GINGER, 153SAFEWAY INC #1508, 143TAQUERIA EL RINCONSITO, 134

20

Page 29: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer los resultados

HIMITSU TERIYAKI, 128

Para obtener más información acerca de la salida del clúster de Amazon EMR, consulteConfiguración deuna ubicación de salida (p. 160).

(Opcional) Connect al clúster de Amazon EMR en ejecuciónCuando utiliza Amazon EMR, puede que desee conectarse a un clúster en ejecución para leer archivosde registro, depurar el clúster o utilizar herramientas de CLI como el shell de Spark. Amazon EMR lepermite conectarse a un clúster utilizando el protocolo Secure Shell (SSH). En esta sección se explicacómo configurar SSH, conectarse al clúster y ver los archivos de registro de Spark. Para obtener másinformación acerca de la conexión a un clúster, consulteAutenticar en nodos de clúster de AmazonEMR (p. 367).

Autorizar conexiones SSH a su clústerAntes de conectarse a su clúster, debe modificar los grupos de seguridad del clúster para autorizar lasconexiones SSH entrantes. Los grupos de seguridad de Amazon EC2 funcionan como firewalls virtualespara controlar el tráfico entrante y saliente del clúster. Cuando creó el clúster para este tutorial, AmazonEMR creó los siguientes grupos de seguridad en su nombre:

ElasticMapReduce-master

Grupo de seguridad administrado predeterminado de Amazon EMR asociado al nodo maestro. En unclúster de Amazon EMR, el nodo maestro es una instancia de Amazon EC2 que administra el clúster.

ElasticMapReduce-slave

Grupo de seguridad predeterminado asociado a los nodos principales y de tareas.

Para permitir el acceso SSH para orígenes de confianza para el grupo de seguridadElasticMapReduce-master

Para editar los grupos de seguridad, debe tener permiso para administrar grupos de seguridad de la VPCen la que se encuentra el clúster. Para obtener más información, consulteCambio de los permisos de unusuario de IAMy laEjemplo de políticaque permite administrar grupos de seguridad de EC2 en elIAM UserGuide.

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Seleccione Clusters (Clústeres).3. Elija el iconoNombredel clúster que desea modificar.4. Elija el iconoGrupos de seguridad para Masterenlace enSeguridad y acceso.5. Elija ElasticMapReduce-master en la lista.6. Elija el iconoReglas de entradapestaña y, a continuación,Edición de reglas entrantes.7. Compruebe si hay una regla de entrada que permita el acceso público con la siguiente configuración.

Si existe, eligeBorrarpara quitarlo.

• Type

SSH• Puerto

22• Fuente

0.0.0.0.0/0

21

Page 30: Amazon EMR - Guía de administración

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

Warning

Antes de diciembre de 2020, el grupo de seguridad ElasticMapReduce-Master tenía una reglapreconfigurada para permitir el tráfico entrante en el puerto 22 desde todos los orígenes.Esta regla se ha creado para simplificar las conexiones SSH iniciales al nodo maestro.Le recomendamos encarecidamente eliminar esta regla de entrada y restrinja el tráfico aorígenes de confianza.

8. Desplácese a la parte inferior de la lista de reglas y elijaAgregar regla.9. En Type (Tipo), seleccione SSH.

La selección de SSH ingresa automáticamenteTCPparaProtocoloy22paraRango de puertos.10. En origen, seleccioneMi dirección IPpara agregar automáticamente su dirección IP como dirección

de origen. También puede agregar un rango dePersonalizadodirecciones IP de cliente de confianzao cree reglas adicionales para otros clientes. Muchos entornos de red asignan direcciones IPdinámicamente, por lo que es posible que tenga que actualizar sus direcciones IP para clientes deconfianza en el future.

11. Seleccione Save (Guardar).12. También puede seleccionarElasticMapReduce-slaveEn la lista y repita los pasos anteriores para

permitir el acceso de los clientes SSH a los nodos principales y de tareas.

Connect a su clúster utilizando laAWS CLI

Independientemente del sistema operativo, puede crear una conexión SSH a su clúster mediante elAWSCLI.

Para conectarse al clúster y ver los archivos de registro mediante laAWS CLI

1. Utilice el siguiente comando para abrir una conexión SSH al clúster.Reemplazar<mykeypair.key>con la ruta completa y el nombre de archivo de key pair. Por ejemplo,C:\Users\<username>\.ssh\mykeypair.pem.

aws emr ssh --cluster-id <j-2AL4XXXXXX5T9> --key-pair-file <~/mykeypair.key>

2. Vaya a/mnt/var/log/sparkPara acceder a los logs de Spark en el nodo principal de su clúster. Acontinuación, vea los archivos de esa ubicación. Para ver una lista de los archivos de log adicionalesen el nodo maestro, consulteVisualización de archivos de registro en el nodo maestro (p. 487).

cd /mnt/var/log/sparkls

Paso 3: Limpiar los recursos de Amazon EMRTerminar su clúster deAhora que ha enviado el trabajo a su clúster y ha visto los resultados de la aplicación PySpark, puedefinalizar el clúster. La finalización de un clúster detiene todos los cargos de Amazon EMR asociados delclúster y las instancias de Amazon EC2.

Cuando finaliza un clúster, Amazon EMR conserva los metadatos del clúster durante dos meses sin costoalguno. Los metadatos archivados le ayudanclonar el clúster (p. 571)para un nuevo trabajo o vuelva

22

Page 31: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTerminar su clúster de

a visitar la configuración del clúster para fines de referencia. Metadatos sínoincluir datos que el clústerescribe en S3 o datos almacenados en HDFS en el clúster.

Note

La consola de Amazon EMR no permite eliminar un clúster de la vista de lista después definalizar el clúster. Un clúster finalizado desaparece de la consola cuando Amazon EMR borra susmetadatos.

Console

Para terminar el clúster utilizando la consola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. ElegirClústeresy, a continuación, elija el clúster que desea terminar. Por ejemplo,Mi primer

clúster de EMR.3. ElegirFinalizarpara abrirTerminar clúster.4. ElegirFinalizaren el mensaje abierto. Según la configuración del clúster, la terminación puede

tardar de 5 a 10 minutos. Para obtener más información sobre la terminación de clústeres deAmazon EMR, consulteTerminar un clúster (p. 533).

Note

Si ha seguido de cerca el tutorial, la protección de terminación debería estar desactivada.La protección contra terminación de clúster evita la terminación accidental. Si laprotección de terminación está activada, aparecerá un mensaje para que cambie estaopción antes de terminar el clúster. ElegirCambio, luegoApagado.

CLI

Para terminar el clúster utilizando laAWS CLI

1. Inicie el proceso de terminación del clúster con el siguiente comando.Reemplazar<myClusterId>con el identificador de su clúster de ejemplo. El comando nodevuelve ninguna salida.

aws emr terminate-clusters --cluster-ids <myClusterId>

2. Para comprobar que el proceso de terminación del clúster está en curso, compruebe el estado delclúster con el siguiente comando.

aws emr describe-cluster --cluster-id <myClusterId>

A continuación, se incluye un ejemplo de resultado en formato JSON. El clústerStatusdeberíacambiar deTERMINATINGaTERMINATED. La terminación puede tardar de 5 a 10 minutos enfunción de la configuración del clúster. Para obtener más información sobre la terminación de unclúster de Amazon EMR, consulteTerminar un clúster (p. 533).

{ "Cluster": { "Id": "j-xxxxxxxxxxxxx", "Name": "My Cluster Name", "Status": { "State": "TERMINATED", "StateChangeReason": { "Code": "USER_REQUEST", "Message": "Terminated by user request"

23

Page 32: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEliminar recursos de S3

} } }}

Eliminar recursos de S3Para evitar cargos adicionales, debe eliminar el bucket de Amazon S3. Al eliminar el depósito se eliminantodos los recursos de Amazon S3 de este tutorial. El cubo debe contener:

• La PySpark script• El conjunto de datos de entrada• La carpeta de resultados de salida• La carpeta de archivos de registro

Es posible que deba tomar medidas adicionales para eliminar los archivos almacenados si ha guardado elscript o la salida de PySpark en otra ubicación.

Note

El clúster debe finalizarse antes de eliminar el depósito. De lo contrario, es posible que no se lepermita vaciar el cubo.

Para eliminar el bucket, siga las instrucciones que se indican en¿Cómo se elimina un bucket de S3?enlaGuía del usuario de Amazon Simple Storage Service.

Pasos siguientesHa lanzado su primer clúster de Amazon EMR de principio a fin. También ha completado tareas esencialesde EMR, como preparar y enviar aplicaciones de big data, ver resultados y finalizar un clúster.

Utilice los siguientes temas para obtener más información sobre cómo personalizar el flujo de trabajo deAmazon EMR.

Explore las aplicaciones de big data para AmazonEMRDescubra y compare las aplicaciones de big data que puede instalar en un clúster en elGuía de publicaciónde Amazon EMR. La Guía de versiones detalla cada versión de la versión de EMR e incluye sugerenciaspara utilizar marcos como Spark y Hadoop en Amazon EMR.

Planificación de hardware, redes y seguridad declústerEn este tutorial, ha creado un clúster EMR sencillo sin configurar opciones avanzadas. Las opcionesavanzadas permiten especificar los tipos de instancias de Amazon EC2, las redes de clúster y la seguridadde clúster Para obtener más información acerca de la planificación y el lanzamiento de un clústerque cumpla sus requisitos, consultePlanificar y configurar clústeres (p. 141)ySeguridad en AmazonEMR (p. 274).

24

Page 33: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministración de clústeres

Administración de clústeresProfundiza en el trabajo con clústeres en ejecución enAdministrar clústeres (p. 473). Para administrarun clúster, puede conectarse al clúster, los pasos de depuración y el seguimiento de las actividades y elestado del clúster. También puede ajustar los recursos de clúster en respuesta a las demandas de cargasde trabajo conEscalado administrado por EMR (p. 536).

Utilizar una interfaz diferenteAdemás de la consola de Amazon EMR, puede administrar Amazon EMR mediante laAWS Command LineInterface, la API del servicio web o uno de los muchos admitidosAWSSDK. Para obtener más información,consulte Interfaces de administración (p. 9).

También puede interactuar con las aplicaciones instaladas en clústeres de Amazon EMR de muchasformas. Algunas aplicaciones como Apache Hadoop publican interfaces web que puede ver. Para obtenermás información, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 524).

Explore el blog técnico de EMRPara obtener ejemplos de tutoriales y análisis técnicos detallados sobre las nuevas funciones de AmazonEMR, consulte laAWSblog de big data.

25

Page 34: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCaracterísticas principales de EMR Studio

Amazon EMR StudioAmazon EMR Studio es un entorno de desarrollo integrado basado en web (IDE) para blocs de notasJupyter totalmente gestionados que se ejecutan en clústeres de Amazon EMR. Puede configurar unAmazon EMR Studio para que su equipo desarrolle, visualice y depure aplicaciones escritas en R, Python,Scala y PySpark. Amazon EMR Studio está integrado conAWS Identity and Access Management(IAM)yAWS SSOpara que los usuarios puedan iniciar sesión con sus credenciales corporativas.

Puede crear un EMR Studio sin costo alguno. Los cargos aplicables para el almacenamiento de AmazonS3 y los clústeres de Amazon EMR se aplican cuando utiliza EMR Studio. Para obtener detalles y aspectosdestacados del producto, consulte la página de servicio paraAmazon EMR Studio.

Características principales de EMR StudioAmazon EMR Studio ofrece las siguientes características:

• Autenticar a usuarios conAWS Identity and Access Management(IAM) oAWS Single Sign-On(AWS SSO)y su proveedor de identidad empresarial.

• Acceda y lance clústeres de Amazon EMR bajo demanda para ejecutar trabajos de Jupyter Notebook.• Connect a Amazon EMR en clústeres de EKS para enviar trabajo mientras se ejecuta el trabajo.• Explore y guarde blocs de notas de ejemplo. Para obtener más información acerca de los blocs de notas

de ejemplo, consulte laEjemplos de Notebook de EMR Studio GitHub repository.• Analiza datos mediante Python, PySpark, Spark Scala, Spark R o SparkSQL e instala kernels y

bibliotecas personalizados.• Colabora en tiempo real con otros usuarios del mismo espacio de trabajo. Para obtener más información,

consulte Configure la colaboración en Workspace (p. 94).• Utilice EMR Studio SQL Explorer para explorar el catálogo de datos, ejecutar consultas SQL y descargar

resultados antes de trabajar con los datos de un bloc de notas.• Ejecute blocs de notas parametrizados como parte de los flujos de trabajo programados utilizando

una herramienta de orquestación como Apache Airflow o Amazon Managed Workflows for ApacheAirflow. Para obtener más información, consulteOrquestación de trabajos de análisis en EMR Notebooksmediante MWAAen laAWSBlog de Big Data.

• Repositorios de códigos de enlace tales como GitHub y BitBucket.• Seguimiento y depuración de trabajos mediante el servidor de historial de Spark, la interfaz de usuario

de Tez o el servidor de línea de tiempo YARN.

EMR Studio también es elegible para HIPAA y está certificado bajo HITRUST CSF y SOC 2. Para obtenermás información sobre el cumplimiento de HIPAA paraAWSservicios, consultehttp://aws.amazon.com/compliance/hipaa-compliance/. Para obtener más información sobre el cumplimiento de CSF deHITRUSTAWSservicios, consultehttp://aws.amazon.com/compliance/hitrust/. Para obtener más informaciónacerca de otros programas de cumplimiento deAWSservicios, consulteAWSServicios en el ámbito delprograma de conformidad.

Cómo Amazon EMR StudioAmazon EMR Studio es un recurso de Amazon EMR que crea para un equipo de usuarios. Cada Studioes un entorno de desarrollo integrado independiente basado en web para blocs de notas Jupyter que seejecutan en clústeres de Amazon EMR. Los usuarios inician sesión en un Studio mediante credencialescorporativas.

26

Page 35: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAutentificación e inicio de sesión

Cada EMR Studio que cree utiliza lo siguiente:AWSRecursos de :

• Amazon Virtual Private Cloud (VPC) con subredes- Los usuarios ejecutan kernels y aplicaciones deStudio en Amazon EMR y Amazon EMR en clústeres EKS de la VPC especificada. Un EMR Studio sepuede conectar a cualquier clúster de las subredes que especifique al crear Studio.

• Roles y políticas de permisos de IAM- Para administrar los permisos de usuario, crea políticas depermisos de IAM que adjunta a la identidad de IAM de un usuario o a un rol de usuario de IAM.EMR Studio también utiliza un rol de servicio de IAM y grupos de seguridad para interoperar conotrosAWSServicios de . Para obtener más información, consulte Control de acceso (p. 29) y Definirgrupos de seguridad para controlar el tráfico de red de EMR Studio (p. 75).

• Grupos de seguridad- EMR Studio utiliza grupos de seguridad para establecer un canal de red seguroentre Studio y un clúster de EMR.

• Ubicación de copia de seguridad de Amazon S3- EMR Studio guarda el trabajo del bloc de notas en unaubicación de Amazon S3.

En los siguientes pasos se describe cómo crear y administrar un EMR Studio:

1. Cree un Studio en suCuenta de AWScon IAM oAWS SSOautenticación. Para obtener instrucciones,consulte Configurar un EMR Studio (p. 39).

2. Asigne usuarios y grupos a Studio. Utilice políticas de permisos para establecer permisos detalladospara cada usuario. Para obtener más información, consulte el tema Asignar y administrar usuarios deEMR Studio (p. 66).

3. Comience a supervisar las acciones de EMR Studio conAWS CloudTrailrápidamente. Para obtener másinformación, consulte Supervisar las acciones de Amazon EMR Studio (p. 72).

4. Proporcione más opciones de clúster a los usuarios de Studio con plantillas de clúster y AmazonEMR en endpoints administrados de EKS. Para obtener más información, consulte CrearAWSCloudFormationplantillas para Amazon EMR Studio (p. 82) y Configure Amazon EMR en EKS paraAmazon EMR Studio (p. 77).

Autentificación e inicio de sesiónAmazon EMR Studio admite dos modos de autenticación: Modo de autenticación de IAM y modo deautenticación SSO. Uso del modo IAMAWS Identity and Access Management(IAM), mientras que el modoSSO usaAWS Single Sign-On(AWS SSO). Al crear un EMR Studio, elige el modo de autenticación paratodos los usuarios de ese Studio.

Modo de autenticación de IAMCon el modo de autenticación de IAM, puede utilizar la autenticación de IAM o la federación de IAM.

IAMauthenticationle permite administrar identidades de IAM como usuarios, grupos y roles en IAM.Otorga a los usuarios acceso a un Studio con políticas de permisos de IAM yControl de acceso basado enatributos (ABAC).

IAMfederaciónle permite establecer confianza entre un proveedor de identidad de terceros (IdP) yAWSparaque puedas administrar las identidades de usuario a través de tu IdP de identidad.

AWS SSOmode de autenticaciónEl modo de autenticación de SSO le permite conceder a los usuarios acceso federado a EMR Studio.Puede usarAWS SSOpara autenticar usuarios y grupos desde suAWS SSOdirectorio, directorio corporativoexistente o un proveedor de IdP externo, como Azure Active Directory (AD). A continuación, gestione losusuarios con su proveedor de identidad (IdP).

EMR Studio admite el uso de los siguientes proveedores de identidades paraAWS SSO:

27

Page 36: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAutentificación e inicio de sesión

• AWS Managed Microsoft ADy Active Directory autoadministrado: para obtener más información,consulteConnect al directorio de Microsoft AD.

• Proveedores basados en SAML— Para obtener una lista completa, consulteProveedores de identidadadmitidos.

• LaAWS Single Sign-Onalmacenar: para obtener más información, consulteAdministración de identidadesenAWS SSO.

Cómo afecta la autenticación al inicio de sesión y a la asignaciónde usuariosEl modo de autenticación que elige para Amazon EMR Studio afecta a la forma en que los usuarios iniciansesión en un Studio, cómo asigna un usuario a un Studio y cómoautorizar(conceda permisos a) usuariospara realizar acciones como crear nuevos clústeres de Amazon EMR.

En la tabla siguiente se resumen los métodos de inicio de sesión de EMR Studio según el modo deautenticación.

Opciones de inicio de sesión de Amazon EMR Studio por modo de autenticación

Modo de autenticación Método Login Descripción

• IAM (autenticación yfederación)

• SSO

URL de EMR Studio Los usuarios inician sesión en Studio mediante laURL de acceso a Studio. Por ejemplo, https://xxxxxxxxxxxxxxxxxxxxxxx.emrstudio-prod.us-east-1.amazonaws.com.

Los usuarios introducen credenciales de IAM cuandoutiliza la autenticación de IAM. Cuando utiliza lafederación de IAM oAWS SSO, EMR Studio redirigea los usuarios a la URL de inicio de sesión delproveedor de identidad para introducir credenciales.

En el contexto de la federación de identidades, estaopción de inicio de sesión se denomina inicio desesión iniciado por Service Provider (SP).

• IAM (federación)• SSO

Portal de proveedor deidentidad (IdP)

Los usuarios inician sesión en el portal de suproveedor de identidades, como el portal de Azure,e inician la consola de Amazon EMR. Después deiniciar la consola de Amazon EMR, los usuariosseleccionan y abren un Studio desde elLista deestudios.

También puede configurar EMR Studio comoaplicación SAML para que los usuarios puedan iniciarsesión en un Studio específico desde el portal de suproveedor de identidad. Para obtener instrucciones,consultePara configurar un EMR Studio comoaplicación SAML en el portal de IdP (p. 41).

En el contexto de la federación de identidades, estaopción de inicio de sesión se denomina inicio desesión iniciado por el proveedor de identidad (IdP).

• IAM (autenticación) AWS ManagementConsole

Los usuarios inician sesión en elAWS ManagementConsoleutilizar credenciales de IAM y abrir un Studio

28

Page 37: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónControl de acceso

Modo de autenticación Método Login Descripcióndesde elLista de estudiosen la consola de AmazonEMR.

En la tabla siguiente se describe la asignación y autorización de usuarios para Amazon EMR Studiomediante el modo de autenticación.

Asignación y autorización de usuarios de Amazon EMR Studio mediante modo de autenticación

Modo deautenticación

Asignación de usuarios Autorización de usuario

IAM (autenticación yfederación)

PermitirelCreateStudioPresignedUrlacciónen una política de permisos de IAMasociada a una identidad de IAM(usuario, grupo o rol).

Para los usuarios federados, permitalaCreateStudioPresignedUrlacciónen un IAM en la política de permisosque configura para el rol de IAM queutiliza para la federación.

Utilice el control de acceso basadoen atributos (ABAC) para especificarel Studio o Studios a los que puedeobtener acceso el usuario.

Para obtener instrucciones, consulteAsignar un usuario o grupo a EMRStudio (p. 66).

Defina las políticas de permisos de IAMque permiten ciertas acciones de EMRStudio.

Para los usuarios nativos de IAM, asociela política de permisos de IAM a unaidentidad de IAM (usuario, grupo o rol).Para los usuarios federados, permitaacciones de Studio en la política depermisos que configura para el rol deIAM que utiliza para la federación.

Para obtener más información, consulteConfigurar los permisos de usuario deEMR Studio (p. 48).

AWS SSO Asigne un usuario a Studioasignando al usuario a un Studio conuna directiva de sesión especificada.

Para obtener instrucciones, consulteAsignar un usuario o grupo a EMRStudio (p. 66).

Defina políticas de sesión de IAM quepermitan ciertas acciones de EMRStudio. Asigne una política de sesión aun usuario cuando asigna el usuario a unStudio.

Para obtener más información,consulte Permisos de usuario paraAWSSSOmode de autenticación (p. 30).

Control de accesoEn Amazon EMR Studio, configura la autorización de usuario (permisos) conAWS Identity and AccessManagement(IAM) políticas basadas en identidad. En estas políticas, especificará acciones y recursospermitidos, así como las condiciones en las que se permiten las acciones.

Permisos de usuario para el modo de autenticación de IAMPara establecer permisos de usuario cuando utiliza la autenticación de IAM para EMR Studio, permiteacciones tales comoelasticmapreduce:RunJobFlowen una política de permisos de IAM. Puedecrear una o varias políticas de permisos para usarlas. Por ejemplo, podría crear una política básica queno permita a un usuario crear nuevos clústeres de Amazon EMR y otra política que permita la creación

29

Page 38: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónWorkspaces

de clústeres. Para ver una lista de todas las acciones de Studio, consulteAWS Identity and AccessManagementpermisos para usuarios de EMR Studio (p. 51).

Permisos de usuario paraAWS SSOmode de autenticaciónCuando usaAWS SSOautenticación, crea un único rol de usuario de EMR Studio. LaFunción de usuarioesun rol de IAM dedicado que asume un Studio cuando un usuario inicia sesión.

Adjunta políticas de sesión de IAM a la función de usuario de EMR Studio. UNApolítica de sesiónes un tipoespecial de política de permisos de IAM que limita lo que un usuario federado puede hacer durante unasesión de inicio de sesión de Studio. Las políticas de sesión le permiten establecer permisos específicospara un usuario o grupo sin crear varios roles de usuario para EMR Studio.

Cuandoasignar usuarios y grupos (p. 66)a Studio, asigna una política de sesión a ese usuario o grupopara aplicar permisos detallados. También puedes actualizar la política de sesión de un usuario o grupo encualquier momento. Amazon EMR almacena cada asignación de políticas de sesión que crea.

Para obtener más información sobre las políticas de sesión, consultePolíticas y permisosen laAWS Identityand Access ManagementGuía del usuario de.

WorkspacesLos espacios de trabajo son los principales componentes básicos de Amazon EMR Studio. Para organizarlos blocs de notas, los usuarios crean uno o varios espacios de trabajo en un Studio.

Similar aworkspaces en JupyterLab, un espacio de trabajo conserva el estado del trabajo del bloc de notas.Sin embargo, la interfaz de usuario de Workspace amplía el código abiertoJupyterLabcon herramientasadicionales que le permiten crear y adjuntar clústeres de EMR, ejecutar trabajos, explorar blocs de notasde ejemplo y vincular repositorios de Git.

En la lista siguiente se incluyen las principales características de EMR Studio Workspaces:

• La visibilidad del espacio de trabajo se basa en estudio. Los espacios de trabajo que creas en un estudiono están visibles en otros estudios.

• De forma predeterminada, un espacio de trabajo se comparte y todos los usuarios de Studio puedenverlo. No obstante, solo un usuario puede abrir un espacio de trabajo a la vez y trabajar en un espaciode trabajo. Para trabajar simultáneamente con otros usuarios, puedesConfigure la colaboración enWorkspace (p. 94)

• Puede colaborar simultáneamente con otros usuarios de un espacio de trabajo cuando habilita lacolaboración de Workspace. Para obtener más información, consulte Configure la colaboración enWorkspace (p. 94).

• Los blocs de notas de un espacio de trabajo comparten el mismo clúster de EMR para ejecutarcomandos. Puede adjuntar un espacio de trabajo a un clúster de Amazon EMR que se ejecuta enAmazon EC2 o en un clúster virtual de EKS y endpoint administrado de Amazon EMR.

• Los espacios de trabajo pueden cambiar a otra zona de disponibilidad que asocie a las subredes deun Studio. Puede detener y reiniciar un espacio de trabajo para solicitar el proceso de conmutación porerror. Cuando reinicia un espacio de trabajo, EMR Studio inicia el espacio de trabajo en una zona dedisponibilidad diferente de la VPC del Studio cuando Studio está configurado con acceso a varias zonasde disponibilidad. Si Studio tiene solo una zona de disponibilidad, EMR Studio intenta iniciar el espaciode trabajo en otra subred. Para obtener más información, consulte Solucionar problemas de conectividadde Workspace (p. 94).

• Un espacio de trabajo se puede conectar a clústeres de cualquiera de las subredes asociadas a Studio.

Para obtener más información acerca de la creación y la configuración de EMR Studio Workspaces,consulteMás información sobre los aspectos básicos de Workspace (p. 89).

30

Page 39: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAlmacenamiento para portátiles

Almacenamiento de portátiles en Amazon EMR StudioCuando utiliza un espacio de trabajo, EMR Studio guarda automáticamente las celdas de los archivos debloc de notas a una cadencia regular en la ubicación de Amazon S3 asociada a su Studio. Este procesode copia de seguridad conserva el trabajo entre sesiones para que puedas volver a él más tarde sincomprometer cambios en un repositorio de Git. Para obtener más información, consulte Guardar contenidode Workspace (p. 92).

Al eliminar un archivo de bloc de notas de un espacio de trabajo, EMR Studio elimina la versión decopia de seguridad de Amazon S3 por usted. Sin embargo, si elimina un espacio de trabajo sin eliminarprimero sus archivos de bloc de notas, los archivos del bloc de notas permanecen en Amazon S3 y siguenacumulando cargos por almacenamiento. Para obtener más información, consulte Eliminar un espacio detrabajo y archivos de bloc de notas (p. 92).

Condiciones y limitacionesTenga en cuenta lo siguiente cuando trabaje con Amazon EMR Studio:

• EMR Studio se encuentra disponible en los siguientesAWSRegiones: EE. UU. Este (Norte de Virginia,Ohio), EE.UU. Oeste (Norte de California, Oregón), Asia Pacífico (Mumbai, Seúl, Singapur, Sídney,Tokio), Canadá (Central), UE (Fráncfort, Irlanda, Londres, París, Estocolmo) y Sudamérica (Sao Paulo).

• EMR Studio funciona con las versiones 5.32.0 de Amazon EMR (serie EMR 5.x) o 6.2.0 (serie EMR 6.x)y posteriores.

• Para permitir a los usuarios aprovisionar nuevos clústeres de EMR que se ejecutan en Amazon EC2para un espacio de trabajo, puede asociar un EMR Studio a un conjunto de plantillas de clúster. Losadministradores pueden definir plantillas de clúster conAWS Service Catalogy puede elegir si un usuarioo grupo puede acceder a las plantillas de clúster o no a las plantillas de clúster dentro de Studio.

• Cuando define permisos de acceso a los archivos de bloc de notas almacenados en Amazon S3 o leesecretos deAWS Secrets Manager, utilice el rol de servicio de EMR. No se admite la definición de estospermisos mediante políticas de sesión.

• Puede crear varios estudios de EMR para controlar el acceso a los clústeres de EMR en distintas VPC.• UsarAWS CLIpara configurar Amazon EMR en clústeres de EKS. A continuación, puede utilizar la

interfaz de Studio para asociar clústeres a Workspaces con un endpoint administrado para ejecutartrabajos de bloc de notas.

• EMR Studio no admite los siguientes comandos mágicos de Python:• %alias

• %alias_magic

• %automagic

• %macro

• %%js

• %%javascript

• Modificación deproxy_usercon%configure• Modificación deKERNEL_USERNAMEcon%envo%set_env

• Amazon EMR en clústeres EKS no es compatible SparkMagic comandos de EMR Studio.• Para escribir sentencias Scala de varias líneas en celdas de bloc de notas, asegúrese de que todas las

líneas excepto la última terminen con un punto. En el ejemplo siguiente se utiliza la sintaxis correcta paralas sentencias Scala de varias líneas.

val df = spark.sql("SELECT * from table_name). filter("col1=='value'"). limit(50)

31

Page 40: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónProblemas conocidos

Problemas conocidos• Asegúrese de desactivar las herramientas de administración de proxy, tales como FoxyProxy o

SwitchyOmega en el navegador antes de crear un Studio. Los proxies activos pueden provocar erroresal elegirCrear Studio, y dar como resultado unError de red.

• Los kernels que se ejecutan en Amazon EMR en clústeres EKS pueden no iniciarse debido a problemasde tiempo de espera. Si se produce un error o un problema al iniciar el núcleo, cierre el archivo del blocde notas, cierre el núcleo y, a continuación, vuelva a abrir el archivo del bloc de notas.

• LaReiniciar el kernella operación no funciona según lo esperado cuando utiliza Amazon EMR en elclúster de EKS. Después de seleccionarReiniciar el kernel, actualice el área de trabajo para que elreinicio surta efecto.

• Si un espacio de trabajo no está asociado a un clúster, aparece un mensaje de error cuando un usuariode Studio abre un archivo de bloc de notas e intenta seleccionar un kernel. Puede omitir este mensaje deerror eligiendoDe acuerdo, pero debe adjuntar el espacio de trabajo a un clúster y seleccionar un núcleopara poder ejecutar el código del bloc de notas.

• Cuando utiliza Amazon EMR 6.2.0 con unConfiguración de seguridadpara configurar la seguridad delclúster, la interfaz de Workspace aparece en blanco y no funciona según lo esperado. Le recomendamosque utilice otra versión compatible de EMR si desea configurar el cifrado de datos o la autorización deAmazon S3 para EMRFS para un clúster. EMR Studio funciona con las versiones 5.32.0 de AmazonEMR (serie EMR 5.x) o 6.2.0 (serie EMR 6.x) y posteriores.

• Al iniciar la interfaz de usuario de Spark en el clúster desde un archivo de bloc de notas, puede verinformación sobre un trabajo después de ejecutar el código del bloc de notas. Sin embargo, al iniciarSpark History Server desde StudioClústeres, es posible que el trabajo no aparezca hasta dos minutos.

• CuandoDepurar Amazon EMR que se ejecuta en trabajos de Amazon EC2 (p. 103), es posible que losvínculos a la interfaz de usuario de Spark en el clúster no funcionen o no aparezcan. Para regenerar losvínculos, cree una nueva celda de bloc de notas y ejecute la%%infocomando.

• Jupyter Enterprise Gateway no limpia los kernels inactivos en el nodo maestro de un clúster en lassiguientes versiones de la versión de Amazon EMR: 5.32.0, 5.33.0, 6.2.0 y 6.3.0. Los kernels inactivosconsumen recursos informáticos y pueden provocar que los clústeres de larga duración fallen. Puedeconfigurar la limpieza del kernel inactivo para Jupyter Enterprise Gateway mediante el siguiente scriptde ejemplo. PuedeConnect al nodo maestro utilizando SSH (p. 519)o envíe el script como paso. Paraobtener más información, consulteEjecución de comandos y scripts en un clúster de Amazon EMR.

#!/bin/bashsudo tee -a /emr/notebook-env/conf/jupyter_enterprise_gateway_config.py << EOFc.MappingKernelManager.cull_connected = Truec.MappingKernelManager.cull_idle_timeout = 10800c.MappingKernelManager.cull_interval = 300EOFsudo systemctl daemon-reloadsudo systemctl restart jupyter_enterprise_gateway

• Cuando utiliza una política de terminación automática con las versiones 5.32.0, 5.33.0, 6.2.0 o 6.3.0 deAmazon EMR, EMR marca un clúster como inactivo y puede terminar automáticamente el clúster inclusosi tiene un kernel de Python3 activo. Esto se debe a que la ejecución de un kernel de Python3 no envíaun trabajo de Spark en el clúster. Para utilizar la terminación automática con un kernel de Python3, lerecomendamos que utilice Amazon EMR versión 6.4.0 o posterior. Para obtener más información sobrela terminación automática, consulteUso de una política de terminación automática (p. 188).

• Cuando usa%%displaypara mostrar una Spark DataFrame en una mesa, las mesas muy anchaspueden truncarse. Puede hacer clic con el botón derecho en la salida y seleccionarCrear nueva vistapara salidapara obtener una vista desplazable de la salida.

• Iniciar un núcleo basado en Spark, como PySpark, Spark o SparkR, inicia una sesión de Spark y laejecución de una celda en un bloc de notas pone en cola los trabajos de Spark en esa sesión. Cuandointerrumpe una celda en ejecución, el trabajo de Spark continúa ejecutándose. Para detener el trabajo deSpark, debe utilizar la interfaz de usuario de Spark en el clúster. Para obtener instrucciones sobre cómo

32

Page 41: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLimitaciones características

conectarse a la interfaz de usuario de Spark, consulteDepuración de aplicaciones y trabajos con EMRStudio (p. 102).

Limitaciones característicasAmazon EMR Studio no es compatible con las siguientes características de Amazon EMR:

• Adjuntar y ejecutar trabajos en clústeres de EMR con una configuración de seguridad que especifica laautenticación Kerberos

• Clústeres con varios nodos maestros• Clústeres integrados conAWS Lake Formation• Clústeres que utilizan instancias Amazon EC2 basados enAWSGraviton (2)

Límites de servicio para EMR StudioEn la tabla siguiente se muestran los límites de servicio de EMR Studio.

Elemento Límite

Estudios EMR Máximo de 10 porAWScuenta

Subredes Máximo de 5 asociados a cada EMR Studio

Grupos de AWS SSO Máximo de 5 asignados a cada EMR Studio

Usuarios de AWS SSO Máximo de 100 asignados a cada EMR Studio

Prácticas recomendadas de VPC y subredUtilice las siguientes prácticas recomendadas para configurar unAmazon Virtual Private Cloud(AmazonVPC) con subredes para EMR Studio:

• Puede especificar un máximo de cinco subredes en la VPC para asociar con Studio. Le recomendamosque proporcione varias subredes en distintas zonas de disponibilidad para admitir la disponibilidaddel espacio de trabajo y proporcionar a los usuarios de Studio acceso a clústeres en distintas zonasde disponibilidad. Para obtener más información acerca del uso de VPC, subredes y zonas dedisponibilidad, consulteVPC y subredesen laAmazon Virtual Private CloudGuía del usuario de.

• Las subredes que especifique deben poder comunicarse entre sí.• Para permitir a los usuarios vincular un espacio de trabajo a repositorios Git alojados públicamente, debe

especificar solo subredes privadas que tengan acceso a Internet a través de la traducción de direccionesde red (NAT). Para obtener más información acerca de la configuración de una subred privada paraAmazon EMR, consulteSubredes privadas (p. 226).

• Cuando utiliza Amazon EMR en EKS con EMR Studio, debe haberal menos una subred en comúnentreStudio y el clúster de Amazon EKS que utiliza para registrar un clúster virtual. De lo contrario, el endpointadministrado no aparecerá como opción en Studio Workspaces. Puede crear un clúster de Amazon EKSy asociarlo a una subred que pertenece al Studio o crear un Studio y especificar las subredes del clústerde EKS. Para obtener más información, consulte Configure Amazon EMR en EKS para Amazon EMRStudio (p. 77).

• Si planea utilizar Amazon EMR en EKS con EMR Studio, elija la misma VPC que los nodos de clústerworker de Amazon EKS.

33

Page 42: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónRequisitos de

Requisitos de clúster para Amazon EMR StudioClústeres de Amazon EMR que se ejecutan en Amazon EC2

Todos los clústeres de Amazon EMR que se ejecutan en Amazon EC2 que cree para un espacio de trabajode EMR Studio deben cumplir los siguientes requisitos. Los clústeres creados mediante la interfaz de EMRStudio cumplen automáticamente estos requisitos.

• El clúster debe utilizar Amazon EMR versiones 5.32.0 (serie EMR 5.x) o 6.2.0 (serie EMR 6.x) oposterior. Puede crear un clúster mediante la consola de Amazon EMR,AWS Command Line InterfaceoSDK y, a continuación, adjuntarlo a un espacio de trabajo de EMR Studio. Los usuarios de Studiotambién pueden aprovisionar y adjuntar clústeres al crear o trabajar en un espacio de trabajo de AmazonEMR. Para obtener más información, consulte Adjuntar un clúster a un espacio de trabajo (p. 97).

• El clúster de debe estar dentro de una Amazon Virtual Private Cloud. No se admite la plataforma EC2-Classic.

• El clúster debe tener Spark, Livy y Jupyter Enterprise Gateway instalados. Si planea utilizar el clústerpara SQL Explorer, debe instalar Presto en lugar de Spark. Le recomendamos que utilice clústeresindependientes para Presto y Spark porque los dos motores utilizan gestores de recursos de diferencia,lo que puede generar contención de recursos.

• Para utilizar SQL Explorer, el clúster debe utilizar versiones de Amazon EMR6.4.0 o lMás tarde y tengoinstalado Presto. Si desea especificar laAWSGlue Data Catalog como metaalmacén de Hive para Presto,debe configurarlo en el clúster. Para obtener más información, consulteUsar Presto con laAWSGlue DataCatalog.

• El clúster debe estar en una subred privada con traducción de direcciones de red (NAT) para utilizarrepositorios de Git alojados públicamente con EMR Studio.

Recomendamos las siguientes configuraciones de clúster cuando trabaje con EMR Studio.

• Establezca el modo de implementación de las sesiones de Spark en modo clúster. El modo clústercoloca los procesos maestros de aplicaciones en los nodos principales y no en el nodo maestro de unclúster. Al hacerlo, se alivia el nodo maestro de las posibles presiones de memoria. Para obtener másinformación, consulte Cluster Mode Overview en la documentación de Apache Spark.

• Cambie el tiempo de espera de Livy del valor predeterminado de una hora a seis horas, como en lasiguiente configuración de ejemplo.

{ "classification":"livy-conf", "Properties":{ "livy.server.session.timeout":"6h", "livy.spark.deploy-mode":"cluster" }}

• Cree flotas de instancias diversas con hasta 30 instancias y seleccione varios tipos de instancias ensu flota de instancias puntuales. Por ejemplo, puede especificar los siguientes tipos de instanciasoptimizadas para memoria para cargas de trabajo de Spark: r5.2x, r5.4x, r5.8x, r5.12x, r5.16x,r4.2x, r4.4x, r4.8x, r4.12, etc. Para obtener más información, consulte Configuración de flotas deinstancias (p. 235).

• Utilice la estrategia de asignación optimizada para la capacidad de instancias puntuales para ayudara Amazon EMR a realizar selecciones de instancias efectivas basadas en información de capacidaden tiempo real de Amazon EC2. Para obtener más información, consulte Estrategia de asignación, porejemplo, flotas (p. 238).

• Habilite el escalado administrado en el clúster. Establezca el parámetro de nodos principales máximosen la capacidad persistente mínima que planea utilizar y configure el escalado en una flota de tareas

34

Page 43: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure EMR Studio

bien diversificada que se ejecuta en instancias puntuales para ahorrar costes. Para obtener másinformación, consulte Uso del escalado administrado de EMR en Amazon EMR (p. 536).

También le instamos a que mantenga habilitado Amazon EMR Block Public Access y que restrinja el tráficoSSH entrante a fuentes de confianza. El acceso entrante a un clúster permite a los usuarios ejecutar blocsde notas en el clúster. Para obtener más información, consulte Usar Amazon EMR bloquear el accesopúblico (p. 465) y Controlar el tráfico de red con grupos de seguridad (p. 453).

Amazon EMR en clústeres de EKS

Además de los clústeres de EMR que se ejecutan en Amazon EC2, puede configurar y administrarAmazon EMR en clústeres de EKS para EMR Studio mediante elAWS CLI. Configure EMR en clústeres deEKS siguiendo las siguientes directrices:

• Cree un punto de enlace HTTPS administrado para Amazon EMR en el clúster de EKS. Los usuariosadjuntan un espacio de trabajo a un endpoint administrado. El clúster de Amazon Elastic KubernetesService (EKS) que utiliza para registrar un clúster virtual debe tener una subred privada para admitirendpoints administrados.

• Utilice un clúster de Amazon EKS con al menos una subred privada y traducción de direcciones de red(NAT) cuando desee utilizar repositorios Git alojados públicamente.

• Evitar el usoAMI Arm de Amazon Linux optimizada para Amazon EKS, que no son compatibles con EMRen endpoints administrados de EKS.

• Evitar el usoAWS Fargate-solo clústeres de Amazon EKS, que no son compatibles.

Para obtener más información, consulte Configure Amazon EMR en EKS para Amazon EMRStudio (p. 77).

Configuración de Amazon EMR StudioEsta sección es para los administradores de Amazon EMR Studio. Abarca cómo configurar un AmazonEMR Studio para su equipo y proporciona instrucciones para tareas tales como asignar usuarios y grupos,configurar plantillas de clúster y optimizar Apache Spark para Amazon EMR Studio.

Temas• Permisos de administrador para crear y administrar un EMR Studio (p. 35)• Configurar un EMR Studio (p. 39)• Administración de Amazon EMR Studio (p. 71)• Definir grupos de seguridad para controlar el tráfico de red de EMR Studio (p. 75)• Configure Amazon EMR en EKS para Amazon EMR Studio (p. 77)• Habilitar cargas de trabajo interactivas con Amazon EMR Studio (p. 81)• CrearAWS CloudFormationplantillas para Amazon EMR Studio (p. 82)• Establecer el acceso y los permisos para los repositorios basados en GIT (p. 86)• Optimizar los trabajos de Spark en EMR Studio (p. 88)

Permisos de administrador para crear y administrar unEMR StudioLos permisos de IAM descritos en esta página le permiten crear y administrar un EMR Studio. Para obtenerinformación detallada acerca de cada permiso requerido, consultePermisos necesarios para administrar unEMR Studio (p. 36).

35

Page 44: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPermisos de administrador para crear un EMR Studio

Permisos necesarios para administrar un EMR StudioEn la tabla siguiente se enumeran las operaciones relacionadas con la creación y administración de EMRStudio. En la tabla también se muestran los permisos necesarios para cada operación.

Note

Solo necesitasAWS SSOy StudioSessionMappingacciones cuando usasAWS SSOmode deautenticación.

Permisos para crear y administrar un EMR Studio

Operación Permisos

Crear un Studio"elasticmapreduce:CreateStudio", "sso:CreateManagedApplicationInstance","iam:PassRole"

Describir un estudio"elasticmapreduce:DescribeStudio","sso:GetManagedApplicationInstance"

Lista de Studios"elasticmapreduce:ListStudios"

Eliminar un Studio"elasticmapreduce:DeleteStudio","sso:DeleteManagedApplicationInstance"

Additional permissions required when you use AWS SSO mode

Asignación de usuarios o grupos a Studio"elasticmapreduce:CreateStudioSessionMapping","sso:GetProfile","sso:ListDirectoryAssociations","sso:ListProfiles","sso:AssociateProfile""sso-directory:SearchUsers","sso-directory:SearchGroups","sso-directory:DescribeUser","sso-directory:DescribeGroup"

Recuperar los detalles de la asignación de Studiopara un usuario o grupo específicos "sso-directory:SearchUsers",

"sso-directory:SearchGroups","sso-directory:DescribeUser","sso-directory:DescribeGroup","sso:GetManagedApplicationInstance","elasticmapreduce:GetStudioSessionMapping"

Lista de todos los usuarios y grupos asignados aun Studio "elasticmapreduce:ListStudioSessionMappings"

Actualizar la directiva de sesión asociada a unusuario o grupo asignado a Studio "sso-directory:SearchUsers",

"sso-directory:SearchGroups","sso-directory:DescribeUser","sso-directory:DescribeGroup","sso:GetManagedApplicationInstance","elasticmapreduce:UpdateStudioSessionMapping"

36

Page 45: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPermisos de administrador para crear un EMR Studio

Operación Permisos

Eliminar un usuario o un grupo de Studio"elasticmapreduce:DeleteStudioSessionMapping","sso-directory:SearchUsers","sso-directory:SearchGroups","sso-directory:DescribeUser","sso-directory:DescribeGroup","sso:ListDirectoryAssociations","sso:GetProfile","sso:GetManagedApplicationInstance""sso:ListProfiles","sso:DisassociateProfile"

Para crear una política con permisos de administrador para EMR Studio

1. Siga las instrucciones enCrear políticas de IAMpara crear una política con uno de los siguientesejemplos. Los permisos que necesitas dependen de tumodo de autenticación para Amazon EMRStudio (p. 39).

Inserte sus propios valores para estos elementos:

• Reemplazar<your-resource-ARN> para especificar el nombre de recurso de Amazon (ARN) delobjeto u objetos que cubre la instrucción para sus casos de uso.

• Reemplazar<region>con el código delAWSRegión en la que planea crear el Studio.• Reemplazar<aws-account_id>con el ID de laAWScuenta para el Studio.• Reemplazar<EMRStudio-Service-Role>y<EMRStudio-User-Role>con los nombres de

tuFunción de servicio de EMR Studio (p. 43)yFunción de usuario de EMR Studio (p. 49).

Example Ejemplos de políticas: Permisos de administrador cuando usas el modo deautenticación de IAM

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:<region>:<aws-account-id>:studio/*", "Action": [ "elasticmapreduce:CreateStudio", "elasticmapreduce:DescribeStudio", "elasticmapreduce:DeleteStudio" ] }, { "Effect": "Allow", "Resource": "<your-resource-ARN>", "Action": [ "elasticmapreduce:ListStudios" ] }, { "Effect": "Allow", "Resource": [ "arn:aws:iam::<aws-account-id>:role/<EMRStudio-Service-Role>" ], "Action": "iam:PassRole" } ]

37

Page 46: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPermisos de administrador para crear un EMR Studio

}

Example Ejemplos de políticas: Permisos de administrador cuando usasAWS SSOmode deautenticación

Note

AWS SSOyAWS SSOLas API de directorio no permiten especificar un ARN en el elementode recurso de una instrucción de política de IAM. Para permitir que obtenga accesoaAWS SSOyAWS SSODirectorio, los siguientes permisos especifican todos los recursos,«Recurso» :"*», paraAWS SSOacciones. Para obtener más información, consulteAcciones,recursos y claves de condición paraAWS SSODirectorio.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:<region>:<aws-account-id>:studio/*", "Action": [ "elasticmapreduce:CreateStudio", "elasticmapreduce:DescribeStudio", "elasticmapreduce:DeleteStudio", "elasticmapreduce:CreateStudioSessionMapping", "elasticmapreduce:GetStudioSessionMapping", "elasticmapreduce:UpdateStudioSessionMapping", "elasticmapreduce:DeleteStudioSessionMapping" ] }, { "Effect": "Allow", "Resource": "<your-resource-ARN>", "Action": [ "elasticmapreduce:ListStudios", "elasticmapreduce:ListStudioSessionMappings" ] }, { "Effect": "Allow", "Resource": [ "arn:aws:iam::<aws-account-id>:role/<EMRStudio-Service-Role>", "arn:aws:iam::<aws-account-id>:role/<EMRStudio-User-Role>" ], "Action": "iam:PassRole" }, { "Effect": "Allow", "Resource": "*", "Action": [ "sso:CreateManagedApplicationInstance", "sso:GetManagedApplicationInstance", "sso:DeleteManagedApplicationInstance", "sso:AssociateProfile", "sso:DisassociateProfile", "sso:GetProfile", "sso:ListDirectoryAssociations", "sso:ListProfiles", "sso-directory:SearchUsers", "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup" ] }

38

Page 47: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

]}

2. Adjunte la política a su identidad de IAM (usuario, rol o grupo). Para obtener instrucciones,consulteAdición y eliminación de permisos de identidad de IAM.

Configurar un EMR StudioComplete los pasos que se indican a continuación para configurar un Amazon EMR Studio.

Antes de comenzar

Note

Si pretende utilizar EMR Studio con Amazon EMR en EKS, le recomendamos queConfigureAmazon EMR en EKS para Amazon EMR Studio (p. 77)antes de configurar un Studio.

Antes de configurar un Amazon EMR Studio, asegúrese de tener los siguientes elementos:

• Una Cuenta de AWS. Para obtener instrucciones, consulte Configuración de Amazon EMR (p. 12).• Permisos para crear y administrar un EMR Studio. Para obtener más información, consulte the section

called “Permisos de administrador para crear un EMR Studio” (p. 35).• Un bucket de Amazon S3 en el que EMR Studio puede hacer copias de seguridad de los archivos de

Workspaces y notebook de su Studio. Para obtener instrucciones, consulteCrear un bucketen laAmazonSimple Storage ServiceGuía del usuario (S3).

• Amazon Virtual Private Cloud (VPC) para Studio y un máximo de cinco subredes. Para obtenersugerencias sobre cómo configurar las redes, consultePrácticas recomendadas de VPC ysubred (p. 33).

Para configurar un EMR Studio

1. Elija un modo de autenticación para Amazon EMR Studio (p. 39)2. Cree los siguientes recursos de Studio.

• Creación de un rol de servicio de EMR Studio (p. 43)• Configurar los permisos de usuario de EMR Studio (p. 48)• (Opcional)Definir grupos de seguridad para controlar el tráfico de red de EMR Studio (p. 75).

3. Creación de un EMR Studio (p. 62)4. Asignar un usuario o grupo a EMR Studio (p. 66)

Una vez que haya completado los pasos de configuración, podráUsar Amazon EMR Studio (p. 89).

Elija un modo de autenticación para Amazon EMR StudioAmazon EMR Studio admite dos modos de autenticación: Modo de autenticación de IAM y modo deautenticación SSO. Uso del modo IAMAWS Identity and Access Management(IAM), mientras que elmodo SSO usaAWS Single Sign-On(AWS SSO). Al crear un EMR Studio, elige el modo de autenticaciónpara todos los usuarios de ese Studio. Para obtener más información acerca de los distintos modos deautenticación, consulteAutentificación e inicio de sesión (p. 27).

Utilice la siguiente tabla para elegir un modo de autenticación para EMR Studio.

39

Page 48: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Si está... Recomendamos...

Ya está familiarizado o ha configurado previamentela autenticación o federación de IAM

Modo de autenticación de IAM (p. 40), queofrece los siguientes beneficios:

• Proporciona una configuración rápida paraEMR Studio si ya administra identidades comousuarios y grupos en IAM.

• Funciona con proveedores de identidad queson compatibles con OpenID Connect (OIDC) oSecurity Assertion Markup Language 2.0 (SAML2.0).

• Admite el uso de varios proveedores deidentidad con el mismoCuenta de AWS.

• Disponible en un amplio número deRegiones deAWS.

• Cumple con SOC 2.

Nuevo enAWSo Amazon EMR Modo de autenticación de SSO (p. 41), queofrece las siguientes características:

• Admite la asignación sencilla de usuarios ygrupos aAWSde AWS.

• Funciona con proveedores de identidades deMicrosoft Active Directory y SAML 2.0.

• Facilita la configuración de federación de variascuentas para que no tenga que configurar lafederación por separado para cadaCuenta deAWSen su organización.

Configurar el modo de autenticación de IAM para Amazon EMR Studio

Con el modo de autenticación de IAM, puede utilizar la autenticación de IAM o la federación de IAM.IAMauthenticationle permite administrar identidades de IAM como usuarios, grupos y roles en IAM.Otorga a los usuarios acceso a un Studio con políticas de permisos de IAM yControl de acceso basadoen atributos (ABAC). IAMfederaciónle permite establecer confianza entre un proveedor de identidadde terceros (IdP) yAWSpara que puedas administrar las identidades de usuario a través de tu IdP deidentidad.

Note

Si ya utiliza IAM para controlar el acceso aAWSrecursos, o si ya ha configurado su proveedorde identidad (IdP) para IAM, consultePermisos de usuario para el modo de autenticación deIAM (p. 29)para establecer permisos de usuario cuando utiliza el modo de autenticación deIAM para EMR Studio.

Uso de la federación de IAM para Amazon EMR Studio

Para utilizar la federación de IAM para Amazon EMR Studio, cree una relación de confianza entresuCuenta de AWSy su proveedor de identidades (IdP) y permitir a los usuarios federados acceder alAWSManagement Console. Los pasos que sigue para crear esta relación de confianza varían según el estándarde federación de su proveedor de identidad.

En general, se completan las siguientes tareas para configurar la federación con un IdP externo. Paraobtener instrucciones completas, consulteConcesión de acceso a la a los usuarios federados SAML

40

Page 49: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

2.0AWS Management ConsoleyHabilitación del acceso del agente de identidades personalizadas alAWSManagement Consoleen laAWS Identity and Access ManagementGuía del usuario de.

1. Recopile información de su IdP. Esto suele significar generar un documento de metadatos para validarlas solicitudes de autenticación SAML de su IdP.

2. Cree una entidad de IAM de proveedor de identidad para almacenar información sobre su IdP. Paraobtener instrucciones, consulteCreación de proveedores de identidad de IAM.

3. Cree uno o varios roles de IAM para su IdP. EMR Studio asigna un rol a un usuario federado cuandoinicia sesión. El rol permite al proveedor de identidades (IdP) solicitar credenciales de seguridadtemporales para obtener acceso aAWS. Para obtener instrucciones, consulteCreación de un rol paraun proveedor de identidades de terceros (federación). Las políticas de permisos que asignará al roldeterminan lo que pueden hacer los usuarios federados enAWSy en un estudio EMR. Para obtener másinformación, consulte Permisos de usuario para el modo de autenticación de IAM (p. 29).

4. (Para proveedores de SAML) Complete la confianza de SAML configurando su IdP con informaciónsobreAWSy los roles que desea que asuman los usuarios federados. Este proceso de configuracióncreaconfiando en la confianza del partidoentre el proveedor IdP yAWS. Para obtener más información,consulteConfiguración de una relación de confianza para usuario autenticado y agregación denotificaciones en el proveedor de identidades SAML 2.0.

Para configurar un EMR Studio como aplicación SAML en el portal de IdP

Puede configurar un EMR Studio concreto como aplicación SAML mediante un vínculo profundo al Studio.Al hacerlo, los usuarios pueden iniciar sesión en el portal de IdP e iniciar un Studio específico en lugar denavegar por la consola de Amazon EMR.

• Utilice el siguiente formato para configurar un vínculo profundo a EMR Studio como URL de aterrizajedespués de la verificación de afirmación de SAML.

https://console.aws.amazon.com/emr/home?region=<aws-region>#studio/<your-studio-id>/start

Configurar el modo de autenticación de SSO para Amazon EMR Studio

Para prepararAWS Single Sign-On(AWS SSO) para EMR Studio, debe configurar el origen de identidad yaprovisionar usuarios y grupos. El aprovisionamiento es el proceso de hacer que la información de usuarioy grupo esté disponible para su uso porAWS SSOy por aplicaciones que utilizanAWS SSO. Para obtenermás información, consulteAprovisionamiento de usuarios y grupos.

EMR Studio admite el uso de los siguientes proveedores de identidades paraAWS SSO:

• AWS Managed Microsoft ADy Active Directory autoadministrado: para obtener más información,consulteConnect al directorio de Microsoft AD.

• Proveedores basados en SAML— Para obtener una lista completa, consulteProveedores de identidadadmitidos.

• LaAWS Single Sign-Onalmacenar: para obtener más información, consulteAdministración de identidadesenAWS SSO.

Para configurarAWS SSOpara EMR Studio

1. Para configurarAWS SSOPara EMR Studio, necesita lo siguiente:

• Una cuenta de administración en tuAWSorganización si utiliza varias cuentas en su organización.

41

Page 50: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Note

Solo debe utilizar su cuenta de administración para habilitarAWSSSOyaprovisionarusuarios y grupos de. Después de configurarAWS SSO, utilice unacuenta de miembro para crear un EMR Studio yasignarusuarios y grupos de. Para obtenermás informaciónAWSterminología, consulteAWS OrganizationsTerminología y conceptosde.

• Si has habilitadoAWS SSOantes del 25 de noviembre de 2019, es posible que tenga que habilitaraplicaciones que utilizanAWS SSOpara las cuentas de tuAWSorganización. Para obtener másinformación, consulteHabilitarAWSAplicaciones integradas con SSO enAWScuentas.

• Asegúrese de que tiene los requisitos previos listados en laAWS SSORequisitos previos de(Se hacreado el certificado).

2. Siga las instrucciones enHabilitarAWS SSOpara habilitarAWS SSOen laAWSRegión en la que deseacrear el EMR Studio.

3. ConectarAWS SSOal proveedor de identidades y aprovisione los usuarios y grupos que desea asignaral Studio.

Si usa... Haga lo siguiente...

Directorio de Microsoft AD 1. Siga las instrucciones enConnect al directoriode Microsoft ADPara conectar Active Directoryautoadministrado oAWS Managed MicrosoftADdirectorio usandoAWS Directory Service.

2. Para aprovisionar usuarios y grupos paraAWSSSO, puedes sincronizar los datos deidentidad de tu AD de origen enAWS SSO.Puedes sincronizar las identidades de tuAD de origen de muchas formas. Una formaconsiste en asignar usuarios o grupos de ADa unAWScuenta de la organización. Paraobtener instrucciones, consulteInicio de sesiónúnico de.

La sincronización puede tardar hasta doshoras. Una vez completado este paso, losusuarios y grupos sincronizados aparecen ensuAWSalmacén de identidades.

Note

Los usuarios y los grupos noaparecen en elAWSalmacénde identidades hasta que sesincronice la información de usuarioy grupo o el uso just-in-time (JIT)aprovisionamiento de usuarios.Para obtener más información,consulteAprovisionamiento cuandolos usuarios proceden de ActiveDirectory.

3. (Opcional) Después de sincronizar usuariosy grupos de AD, puedes eliminar su accesoa tuAWScuenta que configuró en el pasoanterior. Para obtener instrucciones,consulteEliminación de acceso de usuarios.

42

Page 51: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Si usa... Haga lo siguiente...

Un proveedor de identidad externo Siga las instrucciones enConnect a su proveedorde identidad externo.

LaAWS Single Sign-Onalmacenar Al crear usuarios y grupos enAWS SSO, elaprovisionamiento es automático. Para obtenermás información, consulteAdministración deidentidades enAWS SSO.

Ahora puedes asignar usuarios y grupos desde tuAWSalmacén de identidades en EMR Studio. Paraobtener instrucciones, consulte Asignar un usuario o grupo a EMR Studio (p. 66).

Creación de un rol de servicio de EMR StudioAcerca del rol de servicio de EMR Studio

Cada Amazon EMR Studio utiliza un rol de IAM con permisos que permiten que Studio interactúe conotrosAWSServicios de . Este rol de servicio debe incluir permisos que permitan a EMR Studio establecerun canal de red seguro entre Workspaces y clústeres, para almacenar archivos de bloc de notasenAmazon S3 Control, y para acceder alAWS Secrets Manageral vincular un Workspace a un repositoriode Git.

Utilice el rol de servicio de Studio (en lugar de las políticas de sesión) para definir todos los permisos deacceso de Amazon S3 para almacenar archivos de bloc de notas y definirAWS Secrets Managerpermisosde acceso.

Cómo crear un rol de servicio para EMR Studio

1. Siga las instrucciones enCreación de un rol para delegar permisos a unAWSServicio depara crear elrol de servicio mediante la siguiente política de confianza.

Important

La siguiente política de confianza incluye elaws:SourceArnyaws:SourceAccountclavesde condición global para limitar los permisos que otorga a EMR Studio a recursos concretosde su cuenta. Hacerlo puede protegerte contrael problema del suplente confuso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>:<account-id>:*" } } } ]}

43

Page 52: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

2. Elimine los permisos de rol predeterminados. A continuación, incluya los permisos de la siguientepolítica de permisos de IAM de ejemplo. Como opción, puede crear una política personalizada queutilice laPermisos de rol de servicio de EMR Studio (p. 47).

Si procede, cambie"Resource":"*"en la siguiente política de para especificar el nombre de recursode Amazon (ARN) del recurso o recursos que cubre la instrucción para sus casos de uso.

Important

• Acceso aModifyNetworkInterfaceAttributeLa API debe permanecertal cual en la siguiente política debido a las limitaciones técnicas del control deacceso basado en etiquetas de Amazon EC2 y la forma en que EMR StudioutilizaModifyNetworkInterfaceAttribute.

• Las siguientes instrucciones deben permanecer sincambios para que EMR Studio funcione con el rol deservicio:AllowAddingEMRTagsDuringDefaultSecurityGroupCreationyAllowAddingTagsDuringEC2ENICreation.

• Para utilizar la política de ejemplo, debe etiquetar los siguientes recursos con laclave"for-use-with-amazon-emr-managed-policies"y el valor"true".• Amazon Virtual Private Cloud (VPC) para EMR Studio.• Cada subred que desee utilizar con Studio.• Cualquier grupo de seguridad personalizado de EMR Studio. Debe etiquetar los grupos

de seguridad que haya creado durante el período de vista previa de EMR Studio si deseaseguir usándolos.

• Secretos mantenidos enAWS Secrets Managerque los usuarios de Studio utilizan paravincular repositorios de Git a un espacio de trabajo.

Puede aplicar etiquetas a los recursos mediante laEtiquetasen la pantalla de recursoscorrespondiente de laAWS Management Console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRReadOnlyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Sid": "AllowEC2ENIActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, {

44

Page 53: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Sid": "AllowEC2ENIAttributeAction", "Effect": "Allow", "Action": [ "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowEC2SecurityGroupActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": {

45

Page 54: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true", "ec2:CreateAction": "CreateSecurityGroup" } } }, { "Sid": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsDuringEC2ENICreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" } } }, { "Sid": "AllowEC2ReadOnlyActions", "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow",

46

Page 55: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowWorkspaceCollaboration", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers" ], "Resource": "*" } ]}

3. Proporcione a su rol de servicio acceso de lectura y escritura a su ubicación de Amazon S3 para EMRStudio. Utilice el siguiente conjunto mínimo de permisos. Para obtener más información, consultelaAmazon S3: Permite el acceso de lectura y escritura a objetos en un bucket de S3, medianteprogramación y en la consolaEjemplo de de .

"s3:PutObject","s3:GetObject","s3:GetEncryptionConfiguration","s3:ListBucket","s3:DeleteObject"

Si encripta su bucket de Amazon S3, incluya los siguientes permisos paraAWS Key ManagementService.

"kms:Decrypt","kms:GenerateDataKey","kms:ReEncryptFrom","kms:ReEncryptTo","kms:DescribeKey"

Permisos de rol de servicio de EMR Studio

En la tabla siguiente se enumeran las operaciones que EMR Studio realiza mediante el rol de servicio,junto con las acciones de IAM necesarias para cada operación.

Operación Acciones

Establezca un canal de red seguro entreun espacio de trabajo y un clúster deEMR y realice las acciones de limpiezanecesarias.

"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute",

47

Page 56: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Operación Acciones"ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup","ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress","ec2:DescribeTags","ec2:DescribeInstances","ec2:DescribeSubnets","ec2:DescribeVpcs","elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"

Utilizar credenciales de Gitalmacenadas enAWS SecretsManagerpara vincular repositorios deGit a un espacio de trabajo.

"secretsmanager:GetSecretValue"

AplicarAWSetiquetas en la interfazde red y los grupos de seguridadpredeterminados que EMR Studiocrea al configurar el canal de redseguro. Para obtener más información,consulteEtiquetadoAWSrecursos.

"ec2:CreateTags"

Acceda o cargue archivos de bloc denotas y metadatos en Amazon S3. "s3:PutObject",

"s3:GetObject","s3:GetEncryptionConfiguration","s3:ListBucket","s3:DeleteObject"

Si utiliza un bucket de Amazon S3 cifrado, incluya lossiguientes permisos.

"kms:Decrypt","kms:GenerateDataKey","kms:ReEncryptFrom","kms:ReEncryptTo","kms:DescribeKey"

Habilite y configure la colaboración deWorkspace. "iam:GetUser",

"iam:GetRole","iam:ListUsers","iam:ListRoles","sso:GetManagedApplicationInstance","sso-directory:SearchUsers"

Configurar los permisos de usuario de EMR StudioDebe configurar las políticas de permisos de usuario para Amazon EMR Studio de modo que puedaestablecer permisos de usuario y grupo detallados. Para obtener información sobre cómo funcionanlos permisos de usuario en EMR Studio, consulteControl de acceso (p. 29)enCómo Amazon EMRStudio (p. 26).

48

Page 57: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Note

Los permisos que se tratan en esta sección no exigen el control de acceso a datos. Paraadministrar el acceso a los datasets de entrada, debe configurar los permisos para los clústeresque utiliza Studio. Para obtener más información, consulte Seguridad en Amazon EMR (p. 274).

Crear un rol de usuario de EMR Studio paraAWS SSOmode de autenticación

Debe crear un rol de usuario de EMR Studio cuando utiliceAWS SSOmode de autenticación.

Para crear un rol de usuario para EMR Studio

1. Siga las instrucciones enCreación de un rol para delegar permisos a unAWSServicio deen laAWSIdentity and Access ManagementGuía del usuario depara crear un rol de usuario.

Utilice la siguiente política de relaciones de confianza al crear el rol.

{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. Elimina los permisos y políticas de rol predeterminados.3. Adjunte las directivas de sesión de EMR Studio al rol de usuario antes de asignar usuarios y grupos a

Studio. Para obtener instrucciones sobre cómo crear políticas de sesión, consulteCreación de políticasde permisos para los usuarios de EMR Studio (p. 49).

Creación de políticas de permisos para los usuarios de EMR Studio

Siga los pasos que se describen a continuación para crear políticas de permisos para EMR Studio.

Note

Para configurar los permisos de acceso de Amazon S3 para almacenar archivos de bloc de notasyAWS Secrets Managerpermisos de acceso para leer secretos al vincular espacios de trabajo alos repositorios de Git, utilizar la función de servicio de EMR Studio.

1. Cree una o varias políticas de permisos de IAM que especifique qué acciones puede realizar unusuario en su Studio. Por ejemplo, puede crear tres políticas independientes para usuarios de Studiobásicos, intermedios y avanzados con las políticas de ejemplo de esta página.

LaAWS Identity and Access Managementpermisos para usuarios de EMR Studio (p. 51)desglosacada operación de Studio que un usuario puede realizar y enumera las acciones mínimas de IAMnecesarias para realizar esa operación. Para obtener instrucciones, consulteCrear políticas de IAM.

La política de permisos de debe incluir las siguientes declaraciones.

{ "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow",

49

Page 58: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*"},{ "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::*:role/<your-emr-studio-service-role>" ], "Effect": "Allow"}

Establecer la propiedad de la colaboración de Workspace

La colaboración en el espacio de trabajo permite que varios usuarios trabajen simultáneamente enel mismo espacio de trabajo y se puede configurar con elColaboraciónen la interfaz de usuario deWorkspace. Para ver y utilizar elColaboración, un usuario de debe tener los siguientes permisos.Cualquier usuario con estos permisos puede ver y utilizar elColaboraciónPanel.

"elasticmapreduce:UpdateEditor","elasticmapreduce:PutWorkspaceAccess","elasticmapreduce:DeleteWorkspaceAccess","elasticmapreduce:ListWorkspaceAccessIdentities"

Para restringir el acceso a laColaboración, puede utilizar control de acceso basado en etiquetas.Cuando un usuario crea un espacio de trabajo, EMR Studio aplica una etiqueta predeterminada conuna clave decreatorUserIdcuyo valor es el ID del usuario que crea el espacio de trabajo.

Note

EMR Studio no ha añadido elcreatorUserIdetiqueta a Workspaces que se crearon antesdel 16 de noviembre de 2021. Para restringir quién puede configurar la colaboración, lerecomendamos que agregue manualmente elcreatorUserIdetiquetar en el espacio detrabajo y, a continuación, utilizar el control de acceso basado en etiquetas en las políticas depermisos de usuario.

La siguiente instrucción de ejemplo permite a un usuario configurar la colaboración para cualquierespacio de trabajo con la clave de etiquetacreatorUserIdcuyo valor coincide con el ID del usuario(indicado por la variable de política)aws:userId). En otras palabras, la instrucción permite al usuarioconfigurar la colaboración para los espacios de trabajo que crea. Para obtener más información acercade las variables de política, consulteElementos de la política de IAM: Variables y etiquetas.

{ "Sid": "UserRolePermissionsForCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } }

2. Adjunte la política de permisos a tu identidad de IAM.

50

Page 59: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

En la tabla siguiente se resume a qué identidad de IAM adjunta una política de permisos, según elmodo de autenticación de EMR Studio. Para obtener instrucciones sobre cómo asociar una política,consulteAdición y eliminación de permisos de identidad de IAM.

Si usa... Asocie la política a...

IAM Authentication Sus identidades de IAM (usuarios, gruposde usuarios o roles de). Por ejemplo, puedeasociar una política de permisos a un usuario desuCuenta de AWS.

Federación de IAM con un proveedor deidentidad externo (IdP)

El rol o los roles de IAM que crea para su IdPexterno. Por ejemplo, una federación de IAMpara SAML 2.0.

EMR Studio utiliza los permisos que adjunta alos roles de IAM para los usuarios con accesofederado a Studio.

AWS SSO Su rol de usuario de Amazon EMR Studio.

AWS Identity and Access Managementpermisos para usuarios de EMR Studio

En la tabla siguiente se incluyen cada operación de Amazon EMR Studio que un usuario puede realizary enumera las acciones mínimas de IAM necesarias para realizar esa operación. Permite estas accionesen las políticas de permisos de IAM (cuando utiliza la autenticación de IAM) o en las políticas de sesión(cuando usaAWS SSOautenticación) para EMR Studio.

En la tabla también se muestran las operaciones permitidas en cada una de las políticas de permisos deejemplo para EMR Studio. Para obtener más información acerca de las políticas de permisos de ejemplo,consulteCreación de políticas de permisos para los usuarios de EMR Studio (p. 49).

Acción Básica Intermedio Advanced(Avanzado)

Acciones asociadas

Crear y eliminarespacios de trabajo

Sí Sí Sí"elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor","elasticmapreduce:ListEditors", "elasticmapreduce:DeleteEditor"

Vea el panelColaboración,habilite lacolaboraciónde Workspacey agreguecolaboradores.Para obtenermás información,consulteEstablecerla propiedad de lacolaboración deWorkspace (p. 50).

Sí Sí Sí"elasticmapreduce:UpdateEditor","elasticmapreduce:PutWorkspaceAccess","elasticmapreduce:DeleteWorkspaceAccess","elasticmapreduce:ListWorkspaceAccessIdentities"

51

Page 60: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Acción Básica Intermedio Advanced(Avanzado)

Acciones asociadas

Ver una listadeAmazon S3Controldepósitosde almacenamientoen la misma cuentaque Studio al crearun nuevo clústerde EMR y accedera los registrosde contenedorescuando se utilizauna IU webpara depuraraplicaciones

Sí Sí Sí"s3:ListAllMyBuckets","s3:ListBucket", "s3:GetBucketLocation","s3:GetObject"

Acceda aworkspaces

Sí Sí Sí"elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors","elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor","elasticmapreduce:OpenEditorInConsole"

Adjuntar o separarclústeres deAmazon EMRexistentesasociados alespacio de trabajo

Sí Sí Sí"elasticmapreduce:AttachEditor","elasticmapreduce:DetachEditor","elasticmapreduce:ListClusters","elasticmapreduce:DescribeCluster","elasticmapreduce:ListInstanceGroups","elasticmapreduce:ListBootstrapActions"

Adjuntar o separarAmazon EMR enclústeres de EKS

Sí Sí Sí"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor","emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster","emr-containers:ListManagedEndpoints","emr-containers:DescribeManagedEndpoint","emr-containers:CreateAccessTokenForManagedEndpoint"

Depuración deAmazon EMRen trabajos EC2con interfacesde usuario deaplicacionespersistentes

Sí Sí Sí"elasticmapreduce:CreatePersistentAppUI","elasticmapreduce:DescribePersistentAppUI","elasticmapreduce:GetPersistentAppUIPresignedURL","elasticmapreduce:ListClusters","elasticmapreduce:ListSteps","elasticmapreduce:DescribeCluster","s3:ListBucket","s3:GetObject"

52

Page 61: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Acción Básica Intermedio Advanced(Avanzado)

Acciones asociadas

Depuración deAmazon EMRen trabajos EC2con interfacesde usuario deaplicaciones enclúster

Sí Sí Sí"elasticmapreduce:GetOnClusterAppUIPresignedURL"

Depuración deAmazon EMR enlas ejecuciones detrabajos de EKSmediante SparkHistory Server

Sí Sí Sí"elasticmapreduce:CreatePersistentAppUI","elasticmapreduce:DescribePersistentAppUI","elasticmapreduce:GetPersistentAppUIPresignedURL","emr-containers:ListVirtualClusters","emr-containers:DescribeVirtualCluster","emr-containers:ListJobRuns","emr-containers:DescribeJobRun","s3:ListBucket","s3:GetObject"

Crear y eliminarrepositorios de Git

Sí Sí Sí"elasticmapreduce:CreateRepository", "elasticmapreduce:DeleteRepository","elasticmapreduce:ListRepositories","elasticmapreduce:DescribeRepository","secretsmanager:CreateSecret","secretsmanager:ListSecrets","secretsmanager:TagResource"

Vincule ydesvinculerepositorios de Git

Sí Sí Sí"elasticmapreduce:LinkRepository","elasticmapreduce:UnlinkRepository","elasticmapreduce:ListRepositories","elasticmapreduce:DescribeRepository"

Creación denuevos clústeres apartir de plantillasde clúster

No Sí Sí"servicecatalog:SearchProducts", "servicecatalog:DescribeProduct","servicecatalog:DescribeProductView","servicecatalog:DescribeProvisioningParameters","servicecatalog:ProvisionProduct","servicecatalog:UpdateProvisionedProduct","servicecatalog:ListProvisioningArtifacts", "servicecatalog:DescribeRecord","servicecatalog:ListLaunchPaths","cloudformation:DescribeStackResources", "elasticmapreduce:ListClusters","elasticmapreduce:DescribeCluster"

Cree nuevosclústeresproporcionandouna configuraciónde clúster

No No Sí"elasticmapreduce:RunJobFlow","iam:PassRole","elasticmapreduce:ListClusters","elasticmapreduce:DescribeCluster"

53

Page 62: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Acción Básica Intermedio Advanced(Avanzado)

Acciones asociadas

Asignar un usuarioa Studio cuandoutiliza el modo deautenticación deIAM. Para obtenermás información,consulte Asignarun usuario ogrupo a EMRStudio (p. 66).

No No No"elasticmapreduce:CreateStudioPresignedUrl"

Describir objetosde red.

Sí Sí Sí{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ]}

Enumera los rolesde IAM.

Sí Sí Sí{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ]}

Ejemplo: Política de usuario básica

La siguiente política de usuario básica permite la mayoría de las acciones de EMR Studio, pero no permitea un usuario crear nuevos clústeres de Amazon EMR.

54

Page 63: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Important

La política de ejemplo no incluye elCreateStudioPresignedUrlpermiso, que debe permitira un usuario cuando utiliza el modo de autenticación de IAM. Para obtener más información,consulte Asignar un usuario o grupo a EMR Studio (p. 66).

La política de ejemplo incluyeConditionelementos para aplicar el control de acceso basado en etiquetas(TBAC) de modo que pueda utilizar la política con el rol de servicio de ejemplo para EMR Studio. Paraobtener más información, consulte Creación de un rol de servicio de EMR Studio (p. 43).

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect":"Allow", "Action":[ "ec2:CreateSecurityGroup" ], "Resource":[ "arn:aws:ec2:*:*:vpc/*" ], "Condition":{ "StringEquals":{ "aws:ResourceTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect":"Allow", "Action":[ "ec2:CreateTags" ], "Resource":"arn:aws:ec2:*:*:security-group/*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true", "ec2:CreateAction":"CreateSecurityGroup" } } }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow",

55

Page 64: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>-<region>/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" } ]

56

Page 65: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

}

Ejemplo: Política de usuario intermedia

La siguiente política de usuario intermedia permite la mayoría de las acciones de EMR Studio y permite aun usuario crear nuevos clústeres de Amazon EMR mediante una plantilla de clúster.

Important

La política de ejemplo no incluye elCreateStudioPresignedUrlpermiso, que debe permitira un usuario cuando utiliza el modo de autenticación de IAM. Para obtener más información,consulte Asignar un usuario o grupo a EMR Studio (p. 66).

La política de ejemplo incluyeConditionelementos para aplicar el control de acceso basado en etiquetas(TBAC) de modo que pueda utilizar la política con el rol de servicio de ejemplo para EMR Studio. Paraobtener más información, consulte Creación de un rol de servicio de EMR Studio (p. 43).

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowEMRBasicActions", "Action":[ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRContainersBasicActions", "Action":[ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:CreateAccessTokenForManagedEndpoint", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource":"*",

57

Page 66: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Effect":"Allow" }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowClusterTemplateRelatedIntermediateActions", "Action":[ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject"

58

Page 67: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>-<region>/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" } ]}

Ejemplo: Política de usuario avanzada

La siguiente política de usuario intermedia permite todas las acciones de EMR Studio y permite a unusuario crear nuevos clústeres de Amazon EMR mediante una plantilla de clúster o proporcionando unaconfiguración de clúster.

Important

La política de ejemplo no incluye elCreateStudioPresignedUrlpermiso, que debe permitira un usuario cuando utiliza el modo de autenticación de IAM. Para obtener más información,consulte Asignar un usuario o grupo a EMR Studio (p. 66).

La política de ejemplo incluyeConditionelementos para aplicar el control de acceso basado en etiquetas(TBAC) de modo que pueda utilizar la política con el rol de servicio de ejemplo para EMR Studio. Paraobtener más información, consulte Creación de un rol de servicio de EMR Studio (p. 43).

{ "Version":"2012-10-17", "Statement":[ {

59

Page 68: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Sid":"AllowEMRBasicActions", "Action":[ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRContainersBasicActions", "Action":[ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:CreateAccessTokenForManagedEndpoint", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow",

60

Page 69: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowClusterTemplateRelatedIntermediateActions", "Action":[ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRCreateClusterAdvancedActions", "Action":[ "elasticmapreduce:RunJobFlow" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>", "arn:aws:iam::*:role/EMR_DefaultRole", "arn:aws:iam::*:role/EMR_EC2_DefaultRole" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>-<region>/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ],

61

Page 70: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

"Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" } ]}

Creación de un EMR StudioPuede crear un EMR Studio para su equipo mediante la consola de Amazon EMR o laAWS CLI. Lacreación de una instancia de Studio forma parte de la configuración de Amazon EMR Studio.

Requisitos previos

Antes de crear un Studio, asegúrese de haber completado las tareas anteriores enConfigurar un EMRStudio (p. 39).

Para crear un Studio mediante elAWS CLI, debería tener instalada la última versión. Para obtener másinformación, consulteInstalación o actualización de la versión más recienteAWS CLI.

Important

Desactivar herramientas de administración de proxy tales como FoxyProxy o SwitchyOmega en elnavegador antes de crear un Studio. Los proxies activos pueden generar unError de redmensajede error al elegirCrear Studio.

Console

Para crear un EMR Studio mediante la consola de EMR

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/home2. ElegirEMR Studiodesde el panel de navegación izquierdo.3. ElegirCrear Studiopara abrirCrear un Studio(Se ha creado el certificado).4. Escriba unNombre de Studioy un opcionalDescripción.5. Si utiliza la autenticación de IAM para Studio, puede elegirAñadir nueva etiquetapara añadir una

o varias etiquetas clave-valor de su elección al Studio. Se utilizan etiquetas para dar acceso a losusuarios especificados a Studio. Para obtener más información, consulte Asignar un usuario ogrupo a EMR Studio (p. 66).

62

Page 71: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

También puede añadir etiquetas que le ayudarán a administrar, identificar, organizar y filtrarestudios. Para obtener más información, consulteEtiquetadoAWSrecursos.

6. UNDERConexión, elija Amazon Virtual Private Cloud (VPC:) para Studio en la lista desplegable.7. UNDERSubredes, seleccione un máximo de cinco subredes en la VPC para asociarlas a Studio.

Tiene la opción de añadir más subredes después de crear Studio.8. ParaGrupos de seguridad, elija los grupos de seguridad predeterminados o los grupos de

seguridad personalizados. Para obtener más información, consulte Definir grupos de seguridadpara controlar el tráfico de red de EMR Studio (p. 75).

Si elige... Haga lo siguiente...

Los grupos de seguridad predeterminados deEMR Studio

Para habilitar la vinculación de repositoriosbasados en GIT para Studio, elijaHabilitarclústeres, puntos finales y repositorio de Git. Sino, eligeHabilitar clústeres o puntos finales.

Grupos de seguridad personalizados paraStudio

• UNDERGrupo de seguridad clúster/endpoint, seleccione el grupo de seguridaddel motor que ha configurado en la listadesplegable. Studio utiliza este grupo deseguridad para permitir el acceso entrantedesde espacios de trabajo conectados.

• UNDERGrupo de seguridad de Workspace,seleccione el grupo de seguridad delespacio de trabajo que configuró enla lista desplegable. Studio utiliza estegrupo de seguridad con Workspaces paraproporcionar acceso saliente a clústeres deAmazon EMR adjuntos y repositorios Gitalojados públicamente.

9. UNDERAutenticación, elija un modo de autenticación para Studio y proporcione informaciónsegún la tabla siguiente. Para obtener más información sobre la autenticación de EMR Studio,consulteElija un modo de autenticación para Amazon EMR Studio (p. 39).

Si usa... Haga lo siguiente...

Autentificación o federación de IAM Elija un método de inicio de sesión paraStudio.

Si desea que los usuarios federadosinicien sesión con la URL de Studio y lascredenciales de su proveedor de identidad(IdP), seleccione su proveedor de identidaden la lista desplegable e introduzca suURL deinicio de sesión del proveedor de identidad(IdP)yRelayStatenombre de parámetro.

Para obtener una lista de URL deautenticación de IdP y RelayState nombres,véaseProveedor de identidad RelayStateparámetros y URL de autenticación (p. 65).

A continuación, selecciona tu EMR StudioRolde serviciode la lista desplegable. Para

63

Page 72: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Si usa... Haga lo siguiente...obtener más información, consulte Creaciónde un rol de servicio de EMR Studio (p. 43).

AWS SSOauthentication Seleccione su EMR StudioRol de serviciodeyFunción de usuario. Para obtener másinformación, consulte Creación de un rol deservicio de EMR Studio (p. 43) y Crearun rol de usuario de EMR Studio paraAWSSSOmode de autenticación (p. 49).

10. UNDERWorkspace de almacenamiento, eligeExaminar S3para seleccionar su bucket de AmazonS3 para realizar copias de seguridad de Workspaces y archivos de bloc de notas.

Note

El rol de servicio de EMR Studio debe tener acceso de lectura y escritura al bucket queseleccione.

11. ElegirCrear Studiopara terminar y navegar hasta elStudios(Se ha creado el certificado). El nuevoStudio aparece en la lista con detalles comoNombre de Studio,Fecha de creación, yURL deacceso a Studio.

Después de crear un Studio, siga las instrucciones que se indican enAsignar un usuario o grupo aEMR Studio (p. 66).

CLI

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. Para Windows, quítelos o reemplácelospor un signo de intercalación (^).

Example Comando de CLI para crear un EMR Studio con modo de autenticación de IAM

El siguiente ejemploAWS CLIcrea un EMR Studio con modo de autenticación de IAM. Si usa laautenticación o la federación de IAM para Studio, no especificará una--user-role.

Para permitir que los usuarios federados inicien sesión con la URL de Studio y las credenciales de suproveedor de identidad (IdP), especifique su--idp-auth-urly--idp-relay-state-parameter-name. Para obtener una lista de URL de autenticación de IdP y RelayState nombres, véaseProveedorde identidad RelayState parámetros y URL de autenticación (p. 65).

aws emr create-studio \--name <example-studio-name> \--auth-mode IAM \--vpc-id <example-vpc-id> \--subnet-ids <subnet-id-1> <subnet-id-2>... <subnet-id-5> \--service-role <example-studio-service-role-name> \--workspace-security-group-id <example-workspace-sg-id> \--engine-security-group-id <example-engine-sg-id> \--default-s3-location <example-s3-location> \--idp-auth-url <https://EXAMPLE/login/> \--idp-relay-state-parameter-name <example-RelayState>

Example Comando CLI para crear un EMR Studio conAWS SSOmode de autenticación

Los siguientes ejemplos deAWS CLIcomando de ejemplo crea un EMR Studio que utilizaAWSSSOmode de autenticación. Cuando usaAWS SSOautenticación, debe especificar una--user-role.

64

Page 73: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Para obtener más información acerca deAWS SSOModo de autenticación, consulteConfigurar el modode autenticación de SSO para Amazon EMR Studio (p. 41).

aws emr create-studio \--name <example-studio-name> \--auth-mode SSO \--vpc-id <example-vpc-id> \--subnet-ids <subnet-id-1> <subnet-id-2>... <subnet-id-5> \--service-role <example-studio-service-role-name> \--user-role <example-studio-user-role-name> \--workspace-security-group-id <example-workspace-sg-id> \--engine-security-group-id <example-engine-sg-id> \--default-s3-location <example-s3-location>

Example Salida de la CLI paraaws emr create-studio

A continuación se muestra un ejemplo de la salida que aparece después de crear un Studio.

{ StudioId: "es-123XXXXXXXXX", Url: "https://es-123XXXXXXXXX.emrstudio-prod.us-east-1.amazonaws.com"}

Para obtener más información acerca decreate-studiocomando, consulteAWS CLIReferencia delos comandos.

Proveedor de identidad RelayState parámetros y URL de autenticación

Cuando utiliza la federación de IAM y desea que los usuarios inicien sesión con la URL y las credencialesde Studio para su proveedor de identidad (IdP), puede especificar suURL de inicio de sesión del proveedorde identidad (IdP)yRelayStatenombre de parámetro cuandoCreación de un EMR Studio (p. 62).

En la tabla siguiente, se muestra la URL de autenticación estándar y RelayState nombre de parámetropara algunos proveedores de identidad populares.

Proveedor de identidad Parámetro URL de autenticación

Auth0 RelayState https://<sub_domain>.auth0.com/samlp/<app_id>

Cuentas de Google RelayState https://accounts.google.com/o/saml2/initsso?idpid=<idp_id>&spid=<sp_id>&forceauthn=false

Microsoft Azure RelayState https://myapps.microsoft.com/signin/<app_name>/<app_id>?tenantId=<tenant_id>

Okta RelayState https://<sub_domain>.okta.com/app/<app_name>/<app_id>/sso/saml

PingFederate TargetResourcehttps://<host>/idp/<idp_id>/startSSO.ping?PartnerSpId=<sp_id>

PingOne TargetResourcehttps://sso.connect.pingidentity.com/sso/sp/initsso?saasid=<app_id>&idpid=<idp_id>

65

Page 74: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Asignar y administrar usuarios de EMR StudioDespués de crear un EMR Studio, puede asignarle usuarios y grupos. El método que utiliza para asignar,actualizar y quitar usuarios depende del modo de autenticación de Studio.

• Cuando utiliza el modo de autenticación de IAM, configura la asignación de usuarios de EMR Studio ylos permisos en IAM o con IAM y su proveedor de identidad.

• conAWS SSOmodo de autenticación, utiliza la consola de administración de Amazon EMR o laAWSCLIpara administrar usuarios.

Para obtener más información sobre la autenticación de Amazon EMR Studio, consulteElija un modo deautenticación para Amazon EMR Studio (p. 39).

Asignar un usuario o grupo a EMR Studio

IAM

Cuando usaConfigurar el modo de autenticación de IAM para Amazon EMR Studio (p. 40), debepermitir elCreateStudioPresignedUrlacción en la política de permisos de IAM de un usuarioy restringir al usuario a un Studio en particular. Puedes incluirCreateStudioPresignedUrlensuPermisos de usuario para el modo de autenticación de IAM (p. 29)o utilice una políticaindependiente.

Para restringir un usuario a un Studio (o a un conjunto de estudios), puede utilizar el control de accesobasado en atributos (ABAC) o especificar el nombre de recurso de Amazon (ARN) de un Studio enelResourceelemento de la política de permisos.

Example Asignación de un usuario a Studio mediante un ARN de Studio

En la siguiente política de ejemplo, el usuario accede a un EMR Studio concreto al permitirlaCreateStudioPresignedUrly especificar el nombre de recurso de Amazon (ARN) de Studio enlaResourceelemento.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateStudioPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "arn:aws:elasticmapreduce:<region>:<account-id>:studio/<studio-id>" } ]}

Example Asignación de un usuario a un estudio con ABAC para autenticación de IAM

Existen varias formas de configurar el control de acceso basado en atributos (ABAC) para un Studio.Por ejemplo, puede adjuntar una o más etiquetas a un EMR Studio y, a continuación, crear unapolítica de IAM que restrinja elCreateStudioPresignedUrlacción a un estudio concreto o conjuntode estudios con esas etiquetas.

Puede agregar etiquetas durante o después de la creación de Studio. Para agregar etiquetas a unStudio existente, puede utilizar laAWS CLIemr add-tagscomando. En el siguiente ejemplo seagrega una etiqueta junto con el par clave-valorTeam = Data Analyticsa un estudio EMR.

66

Page 75: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

aws emr add-tags --resource-id <example-studio-id> --tags team="Data Analytics"

La siguiente política de permisos de ejemplo permiteCreateStudioPresignedUrlacción para EMRStudios con el par clave-valor de etiquetaTeam = DataAnalytics. Para obtener más informaciónacerca del uso de etiquetas para controlar el acceso, consulteControl de acceso a usuarios y roles deIAM y para ellos mediante etiquetasoControl del acceso aAWSrecursos que utilizan etiquetas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateStudioPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "arn:aws:elasticmapreduce:<region>:<account-id>:studio/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/Team": "Data Analytics" } } } ]}

Example Asignar un usuario a Studio mediante la clave de condición globalAWS:SourceIdentity

Cuando utiliza la federación de IAM, puede usar la clave de condiciónglobalaws:SourceIdentityen una política de permisos para otorgar acceso a Studio a los usuarioscuando asumen su rol de IAM para federación.

Primero debe configurar su proveedor de identidad (IdP) para que devuelva una cadena deidentificación, como una dirección de correo electrónico o un nombre de usuario, cuando unusuario autentica y asume su rol de IAM para la federación. IAM establece la clave de condiciónglobalaws:SourceIdentitya la cadena de identificación devuelta por su IdP.

Para obtener más información, consulte laCómo relacionar la actividad de rol de IAM con la identidadcorporativaPublicación de blog en elAWSBlog de seguridad y elaws:SourceIdentityentrada en lareferencia de claves de condición globales.

La siguiente política de ejemplo permite elCreateStudioPresignedUrlacción y ofrece a losusuarios unaws:SourceIdentityque coincida con el<example-source-identity>acceso alEMR Studio especificado por<example-studio-arn>.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticmapreduce:CreateStudioPresignedUrl", "Resource": "<example-studio-arn>", "Condition": { "StringLike": { "aws:SourceIdentity": "<example-source-identity>" } } } ]

67

Page 76: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

}

AWS SSO

Cuando asigna un usuario o grupo a EMR Studio, especifica una política de sesión que definepermisos detallados, como la capacidad de crear un nuevo clúster de EMR, para ese usuario o grupo.Amazon EMR almacena estas asignaciones de políticas de sesión. Puede actualizar la política desesión de un usuario o grupo después de la asignación.

Note

Los permisos finales de un usuario o grupo son una intersección de los permisos definidosen su rol de usuario de EMR Studio y los permisos definidos en la política de sesión para eseusuario o grupo. Si un usuario pertenece a más de un grupo asignado a Studio, EMR Studioutiliza una unión de permisos para ese usuario.

Para asignar usuarios o grupos a EMR Studio mediante la consola de EMR

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirEMR Studiodesde el panel de navegación izquierdo.3. Elija el nombre de Studio de laStudioso seleccione Studio y elijaView details (Ver detalles)., para

abrir la página de detalles de Studio.4. ElegirAñadir usuariospara verUsuarios deyGroupstabla de búsqueda.5. SELECTUsuarios deoGroupse introduzca un término de búsqueda en la barra de búsqueda para

buscar un usuario o grupo.6. Seleccione uno o varios usuarios o grupos de la lista de resultados de búsqueda. Puede cambiar

de ida y vuelta entre elUsuarios dela pestaña yGroupspestaña.7. Después de seleccionar usuarios y grupos para añadirlos a Studio, elijaAñadir. Debería ver

que los usuarios y grupos se muestran en laUsuarios de Studiolista. La lista puede tardar unossegundos en actualizarse.

8. Siga las instrucciones enActualizar los permisos de un usuario o grupo asignados aStudio (p. 69)para refinar los permisos de Studio para un usuario o grupo.

Para asignar un usuario o un grupo a EMR Studio mediante laAWS CLI

Especifique sus propios valores para lo siguientecreate-studio-session-mappingArgumentos.Para obtener más información acerca decreate-studio-session-mapping, consulte laAWSCLIReferencia de los comandos.

• --studio-id— ID del Studio al que desea asignar el usuario o el grupo. Para obtenerinstrucciones sobre cómo recuperar un ID de Studio, consulteVer detalles del estudio (p. 71).

• --identity-name— El nombre del usuario o grupo delAWS SSOalmacén de identidades. Paraobtener más información, consulteUserNamepara usuarios yDisplayNamepara grupos en elAWSSSOReferencia de la API de Id.

• --identity-type— Utilice cualquiera de los dosUSERoGROUPpara especificar el tipo de identidad.• --session-policy-arn— El nombre de recurso de Amazon (ARN) de la política de

sesión que desea asociar al usuario o grupo. Por ejemplo, arn:aws:iam::<aws-account-id>:policy/EMRStudio_Advanced_User_Policy. Para obtener más información, consulteCreación de políticas de permisos para los usuarios de EMR Studio (p. 49).

aws emr create-studio-session-mapping \ --studio-id <example-studio-id> \ --identity-name <example-identity-name> \

68

Page 77: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

--identity-type <USER-or-GROUP> \ --session-policy-arn <example-session-policy-arn>

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. Para Windows, quítelos o reemplácelospor un signo de intercalación (^).

Usarget-studio-session-mappingpara verificar la nueva asignación. Reemplazar<example-identity-name>con el nombre de inicio de sesión único del usuario o grupo que ha actualizado.

aws emr get-studio-session-mapping \ --studio-id <example-studio-id> \ --identity-type <USER-or-GROUP> \ --identity-name <user-or-group-name> \

Actualizar los permisos de un usuario o grupo asignados a Studio

IAM

Para actualizar los permisos de usuario o grupo cuando utiliza el modo de autenticación de IAM, utiliceIAM para cambiar las políticas de permisos de IAM asociadas a sus identidades de IAM (usuarios,grupos o roles).

Para obtener más información, consulte Permisos de usuario para el modo de autenticación deIAM (p. 29).

AWS SSO

Para actualizar los permisos de EMR Studio para un usuario o grupo mediante la consola

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirEMR Studiodesde el panel de navegación izquierdo.3. Elija el nombre de Studio de laStudioso seleccione Studio y elijaView details (Ver detalles)., para

abrir la página de detalles de Studio.4. En el navegadorUsuarios de Studioen la página de detalles de Studio, busque el usuario o el

grupo que desea actualizar. Puede buscar por nombre o tipo de identidad.5. Seleccione el usuario o grupo que desea actualizar y elijaAsignar políticapara abrirPolítica de

sesióncuadro de diálogo.6. Seleccione una política para aplicarla al usuario o grupo que haya elegido en el paso 5 y

elijaAplicar política. LaUsuarios de Studiodebe mostrar el nombre de la política en elPolítica desesiónpara el usuario o grupo que ha actualizado.

Para actualizar los permisos de EMR Studio para un usuario o grupo mediante laAWS CLI

Especifique sus propios valores para lo siguienteupdate-studio-session-mappingsArgumentos.Para obtener más información acerca deupdate-studio-session-mappings, consulte laAWSCLIReferencia de los comandos.

aws emr update-studio-session-mapping \ --studio-id <example-studio-id> \ --identity-name <name-of-user-or-group-to-update> \ --session-policy-arn <new-session-policy-arn-to-apply> \ --identity-type <USER-or-GROUP> \

69

Page 78: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar un EMR Studio

Usarget-studio-session-mappingpara verificar la nueva asignación de directivas de sesión.Reemplazar<example-identity-name>con el nombre de inicio de sesión único del usuario o grupoque ha actualizado.

aws emr get-studio-session-mapping \ --studio-id <example-studio-id> \ --identity-type <USER-or-GROUP> \ --identity-name <user-or-group-name> \

Eliminar un usuario o un grupo de Studio

IAM

Para quitar un usuario o grupo de un EMR Studio cuando utiliza el modo de autenticación de IAM,debe revocar el acceso del usuario al Studio reconfigurando la política de permisos de IAM delusuario.

En la siguiente política de ejemplo, supongamos que tiene un EMR Studio con el par clave-valorde etiquetaTeam = Quality Assurance. Según la política, el usuario puede acceder a estudiosetiquetados con elTeamclave cuyo valor es igual aData AnalyticsoQuality Assurance.Para quitar al usuario del Studio etiquetado conTeam = Quality Assurance, quitarQualityAssurancede la lista de valores de etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateStudioPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "arn:aws:elasticmapreduce:<region>:<account-id>:studio/*", "Condition": { "StringEquals": { "emr:ResourceTag/Team": [ "Data Analytics", "Quality Assurance" ] } } } ]}

AWS SSO

Para eliminar un usuario o un grupo de un EMR Studio mediante la consola

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirEMR Studiodesde el panel de navegación izquierdo.3. Elija el nombre de Studio en elStudioso seleccione Studio y elijaView details (Ver detalles)., para

abrir la página de detalles de Studio.4. En el navegadorUsuarios de Studioen la página de detalles de Studio, busque el usuario o grupo

que desea quitar del Studio. Puede buscar por nombre o tipo de identidad.5. Seleccione el usuario o grupo que desea eliminar, seleccioneBorrary confirme. El usuario o grupo

que ha eliminado desaparece delUsuarios de Studiolista.

70

Page 79: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministrar un Studio

Para eliminar un usuario o un grupo de EMR Studio mediante laAWS CLI

Especifique sus propios valores para lo siguientedelete-studio-session-mappingArgumentos.Para obtener más información acerca dedelete-studio-session-mapping, consulte laAWSCLIReferencia de los comandos.

aws emr delete-studio-session-mapping \ --studio-id <example-studio-id> \ --identity-type <USER-or-GROUP> \ --identity-name <name-of-user-or-group-to-delete> \

Administración de Amazon EMR StudioEn esta sección se incluyen instrucciones para ayudarlo a supervisar, actualizar o eliminar un recurso deAmazon EMR Studio. Para obtener información acerca de la asignación de usuarios o la actualización depermisos de usuario, consulteAsignar y administrar usuarios de EMR Studio (p. 66).

Ver detalles del estudioConsole

Para ver detalles sobre EMR Studio mediante la consola

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirEMR Studiodesde el panel de navegación izquierdo.3. Seleccione el estudio en elStudiospara abrir la página de detalles de Studio. La página de detalles

de Studio incluyeConfiguración de Studioinformación, como StudioDescripción,VPC:, ySubredes.

CLI

Para recuperar los detalles de un ID de EMR Studio by Studio mediante elAWS CLI

Utilice lo siguientedescribe-studio AWS CLIpara obtener información detallada acerca de un EMRStudio en particular. Para obtener más información, consulte Referencia de comandos de la AWS CLI.

aws emr describe-studio \ --studio-id <id-of-studio-to-describe> \

Para recuperar una lista de EMR Studios mediante elAWS CLI

Utilice lo siguientelist-studios AWS CLIcomando. Para obtener más información, consulteReferencia de comandos de la AWS CLI.

aws emr list-studios

A continuación se muestra un ejemplo de un valor devuelto paralist-studiosen formato JSON.

{ "Studios": [ { "AuthMode": "IAM", "VpcId": "vpc-b21XXXXX", "Name": "example-studio-name",

71

Page 80: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministrar un Studio

"Url": "https://es-7HWP74SNGDXXXXXXXXXXXXXXX.emrstudio-prod.us-east-1.amazonaws.com", "CreationTime": 1605672582.781, "StudioId": "es-7HWP74SNGDXXXXXXXXXXXXXXX", "Description": "example studio description" } ]}

Supervisar las acciones de Amazon EMR StudioVer la actividad de Amazon EMR Studio y APIAmazon EMR Studio está integrado conAWS CloudTrail, un servicio que proporciona un registro de lasmedidas adoptadas por un usuario de IAM, un rol de IAM u otroAWSservicio en Amazon EMR Studio.CloudTrail captura las llamadas a la API de EMR Studio como eventos. Puede ver eventos mediante elCloudTrail Consola de enhttps://console.aws.amazon.com/cloudtrail/.

Los eventos de EMR Studio proporcionan información como qué usuario de Studio o IAM realiza unasolicitud y qué tipo de solicitud es.

Note

Las acciones del clúster, como la ejecución de trabajos de notebook, no se emitenAWSCloudTrail.

También puede crear un rastro para la entrega continua de EMR Studio CloudTrail eventos en un bucketde Amazon S3. Para obtener más información, consulte la Guía del usuario de AWS CloudTrail.

Ejemplo CloudTrail Evento: Un usuario de IAM llama a la API DescribeStudio

A continuación se muestra un ejemplo deAWS CloudTrailevento que se crea cuando un usuario deIAM,admin, llama aDescribir estudioAPI. CloudTrail registra el nombre de usuario comoadmin.

Note

Para proteger los detalles de Studio, el evento API de EMR Studio para DescribeStudio excluyeun valor pararesponseElements.

{ "eventVersion":"1.08", "userIdentity":{ "type":"IAMUser", "principalId":"AIDXXXXXXXXXXXXXXXXXX", "arn":"arn:aws:iam::653XXXXXXXXX:user/admin", "accountId":"653XXXXXXXXX", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"admin" }, "eventTime":"2021-01-07T19:13:58Z", "eventSource":"elasticmapreduce.amazonaws.com", "eventName":"DescribeStudio", "awsRegion":"us-east-1", "sourceIPAddress":"72.XX.XXX.XX", "userAgent":"aws-cli/1.18.188 Python/3.8.5 Darwin/18.7.0 botocore/1.19.28", "requestParameters":{ "studioId":"es-9O5XXXXXXXXXXXXXXXXXXXXXX" }, "responseElements":null, "requestID":"0fxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "eventID":"b0xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "readOnly":true,

72

Page 81: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministrar un Studio

"eventType":"AwsApiCall", "managementEvent":true, "eventCategory":"Management", "recipientAccountId":"653XXXXXXXXX"}

Ver la actividad de usuario y trabajo de SparkPara ver la actividad del trabajo de Spark de los usuarios de Amazon EMR Studio, puede configurar lasuplantación de usuarios en un clúster. Con la suplantación de usuario, cada trabajo de Spark que seenvía desde un espacio de trabajo se asocia al usuario de Studio que ejecutó el código.

Cuando se activa la suplantación de usuarios, Amazon EMR crea un directorio de usuarios de HDFS enel nodo principal del clúster para cada usuario que ejecuta código en el área de trabajo. Por ejemplo,si [email protected] código, puede conectarse al nodo principal y verquehadoop fs -ls /usertiene un directorio [email protected].

Para configurar la suplantación de usuario de Spark, establezca las siguientes propiedades en lassiguientes clasificaciones de configuración:

• core-site

• livy-conf

[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*" } }, { "Classification": "livy-conf", "Properties": { "livy.impersonation.enabled": "true" } }]

Para ver las páginas del servidor de historial, consulteDepuración de aplicaciones y trabajos con EMRStudio (p. 102). También puede conectarse al nodo principal del clúster utilizando SSH para ver lasinterfaces web de las aplicaciones. Para obtener más información, consulte Ver las interfaces web alojadasen clústeres de Amazon EMR (p. 524).

Actualización de Amazon EMR StudioDespués de crear un EMR Studio, puede actualizar los siguientes atributos mediante laAWS CLI:

• Nombre• Descripción• Ubicación predeterminada de S3• Subredes

Para actualizar un EMR Studio mediante elAWS CLI

Usarupdate-studio AWS CLIpara actualizar Amazon EMR Studio. Para obtener más información,consulte Referencia de comandos de la AWS CLI.

73

Page 82: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministrar un Studio

Note

Se puede asociar un Studio a un máximo de 5 subredes. Estas subredes deben pertenecer a lamisma VPC que Studio. La lista de ID de subred que envía a laupdate-studiopuede incluirnuevos ID de subred, pero también debe incluir todos los ID de subred que ya ha asociado aStudio. No se pueden eliminar subredes de un Studio.

aws emr update-studio \ --studio-id <example-studio-id-to-update> \ --name <example-new-studio-name> \ --subnet-ids <old-subnet-id-1 old-subnet-id-2 old-subnet-id-3 new-subnet-id> \

Para verificar los cambios, utilice eldescribe-studio AWS CLIy especifique su ID de Studio. Paraobtener más información, consulte Referencia de comandos de la AWS CLI.

aws emr describe-studio \ --studio-id <id-of-updated-studio> \

Eliminar un Amazon EMR Studio y WorkspacesAl eliminar un Studio, EMR Studio elimina todos losAWS SSOasignaciones de usuarios y grupos asociadasa Studio.

Note

Al eliminar un Studio, Amazon EMR lo hacenoeliminar los espacios de trabajo asociados a eseStudio. Debe eliminar los espacios de trabajo de su Studio por separado.

Eliminar workspaces

Console

Dado que cada espacio de trabajo de EMR Studio es una instancia de bloc de notas de EMR, puedeutilizar la consola de administración de Amazon EMR para eliminar Workspaces. Puede eliminarWorkspaces mediante la consola de Amazon EMR antes o después de eliminar Studio.

Para eliminar un espacio de trabajo mediante la consola de Amazon EMR

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirBloc de notas.3. Seleccione el o los espacios de trabajo que desea eliminar.4. ElegirBorrary, después,BorrarPara confirmar de nuevo.5. Siga las instrucciones deEliminación de objetosen laAmazon Simple Storage Service Guía del

usuario de la consolapara eliminar los archivos de bloc de notas asociados al espacio de trabajoeliminado de Amazon S3.

EMR Studio UI

Para eliminar un espacio de trabajo y sus archivos de copia de seguridad asociados de EMRStudio

1. Inicie sesión en EMR Studio con la URL de acceso de Studio y elijaWorkspacesdesde el panel denavegación izquierdo.

2. Busque su espacio de trabajo en la lista y, a continuación, seleccione la casilla de verificaciónsituada junto a su nombre. Puede seleccionar varios espacios de trabajo para eliminar al mismotiempo.

74

Page 83: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónControlar el tráfico de red de EMR Studio

3. ElegirBorraren la parte superior derecha delWorkspaceslista y confirme que desea eliminar losespacios de trabajo seleccionados. Elija Delete para confirmar.

4. Siga las instrucciones deEliminación de objetosen laAmazon Simple Storage Service Guía delusuario de la consolapara eliminar los archivos de bloc de notas asociados al espacio de trabajoeliminado de Amazon S3. Si no ha creado Studio, consulte al administrador de Studio paradeterminar la ubicación de copia de seguridad de Amazon S3 del espacio de trabajo eliminado.

Eliminar un EMR Studio

Console

Para eliminar un EMR Studio mediante la consola

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirEMR Studiodesde el panel de navegación izquierdo.3. Seleccione el estudio en elStudiosenumerar y elegirBorrar.

CLI

Para eliminar un EMR Studio mediante laAWS CLI

Usardelete-studio AWS CLIpara eliminar un Amazon EMR Studio. Para obtener más información,consulte Referencia de comandos de la AWS CLI.

aws emr delete-studio --studio-id <id-of-studio-to-delete>

Definir grupos de seguridad para controlar el tráfico dered de EMR StudioAcerca de los grupos de seguridad de EMR StudioAmazon EMR Studio utiliza dos grupos de seguridad para controlar el tráfico de red entre Workspaces enStudio y un clúster de Amazon EMR adjunto que se ejecuta en Amazon EC2:

• UnGrupo de seguridad de motoresque utiliza el puerto 18888 para comunicarse con un clúster deAmazon EMR conectado que se ejecuta en Amazon EC2.

• UNAGrupo de seguridad de Workspaceasociado a los espacios de trabajo de un estudio. Este grupo deseguridad incluye una regla HTTPS saliente para permitir que Workspace enrute el tráfico a Internet ydebe permitir el tráfico saliente a Internet en el puerto 443 para permitir la vinculación de repositorios Gita un espacio de trabajo.

EMR Studio utiliza estos grupos de seguridad además de los grupos de seguridad asociados a un clústerde EMR adjunto a un espacio de trabajo.

Debe crear estos grupos de seguridad cuando utilice elAWS CLIpara crear un Studio.Note

Puede personalizar los grupos de seguridad de EMR Studio con reglas adaptadas a su entorno,pero debe incluir las reglas indicadas en esta página. El grupo de seguridad de Workspace nopuede permitir ningún tráfico entrante y el grupo de seguridad del motor debe permitir el tráficoentrante del grupo de seguridad de Workspace.

75

Page 84: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónControlar el tráfico de red de EMR Studio

Uso de los grupos de seguridad predeterminados de EMR Studio

Si usa la consola de EMR, puede elegir los siguientes grupos de seguridad predeterminados. AmazonEMR Studio crea los grupos de seguridad predeterminados en su nombre e incluyen las reglas de entraday salida mínimas requeridas para Workspaces en un EMR Studio.

• DefaultEngineSecurityGroup

• DefaultWorkspaceSecurityGroupGit o DefaultWorkspaceSecurityGroupWithoutGit

Requisitos previosPara crear los grupos de seguridad de EMR Studio, necesita una Amazon Virtual Private Cloud (VPC) paraStudio. Elija esta VPC al crear los grupos de seguridad. Debe ser la misma VPC que especificó al crearStudio. Si planea utilizar Amazon EMR en EKS con EMR Studio, elija la VPC para los nodos de clústerworker de Amazon EKS.

InstruccionesSiga las instrucciones enCrear un grupo de seguridaden laGuía del usuario de Amazon EC2 parainstancias de Linuxpara crear un grupo de seguridad de motores y un grupo de seguridad de Workspaceen la VPC. Los grupos de seguridad deben incluir las reglas resumidas en las tablas siguientes.

Cuando cree grupos de seguridad para EMR Studio, anote los ID de ambos. Especifica cada grupo deseguridad por ID al crear un Studio.

Grupo de seguridad de motores

EMR Studio utiliza el puerto 18888 para comunicarse con un clúster conectado.

Reglas de entrada

Tipo Protocolo Puerto Destino Descripción

TCP TCP 18888 El grupo deseguridad deEMR StudioWorkspace.

Permite tráfico desdecualquier recurso delgrupo de seguridad delespacio de trabajo paraEMR Studio.

Grupo de seguridad de Workspace

Este grupo de seguridad está asociado a los espacios de trabajo de un estudio EMR.

Reglas de salida

Tipo Protocolo Puerto Destino Descripción

TCP TCP 18888 El grupo deseguridad delmotor de EMRStudio.

Permite tráfico acualquier recurso delgrupo de seguridad delmotor para EMR Studio.

HTTPS TCP 443 0.0.0.0/0 Permite que el tráficoa Internet vinculerepositorios Git alojadospúblicamente aWorkspaces.

76

Page 85: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR en EKS para EMR Studio

Configure Amazon EMR en EKS para Amazon EMRStudio

La característica Amazon EMR on EKS (punto de enlace administrado) de EKS está en versiónpreliminar y está sujeta a cambios. La función se proporciona como servicio de vista previa tal y como sedefine en elAWSCondiciones del servicio.

Acerca de Amazon EMR en clústeres de EKS para EMR StudioAmazon EMR Studio funciona con Amazon EMR en EKS para que los usuarios de Studio puedan enviarcódigo de bloc de notas a Amazon Elastic Kubernetes Service (EKS). Para proporcionar a los usuarios deStudio acceso a clústeres de EKS, primero debe crear un clúster virtual utilizando Amazon EMR en EKS.Después de crear un clúster virtual, debe crear uno varios puntos de enlace administrados a los que losusuarios de Studio puedan conectar un Workspace. Para obtener más información acerca de AmazonEMR en EKS, consulte laAmazon EMR on EKS Development Guide.

Los siguientes requisitos previos funcionan en conjunto para permitir que los usuarios de Studio envíentrabajos a Amazon EMR en EKS:

Amazon EMR en el clúster virtual de EKS

Un clúster virtual es un identificador registrado del espacio de nombres Kubernetes de un clúster deEKS y es administrado por Amazon EMR en EKS. El identificador permite a Amazon EMR utilizar elespacio de nombres Kubernetes como destino para ejecutar trabajos y puntos finales. La interfaz deusuario de EMR Studio hace referencia a los clústeres virtuales como EMR en clústeres EKS.

Amazon EMR en el punto de enlace administrado de EKS

Después de crear un clúster virtual para Amazon EMR en EKS, debe configurar uno o variosendpoints administrados de Jupyter Enterprise Gateway a los que los usuarios de Studio puedanconectar un espacio de trabajo. Se puede acceder a estos puntos finales HTTPS solo desde su EMRStudio y se crean en una subred privada de Amazon Virtual Private Cloud de su clúster de EKS.

Python y PySpark los kernels utilizan los permisos definidos en su función de ejecución de trabajosde Amazon EMR on EKS para invocar otroAWSServicios de . Todos los kernels y usuarios quese conectan al endpoint administrado utilizan este mismo rol. Recomendamos crear endpointsindependientes para distintos usuarios que no deberían compartir el mismo rol de IAM. Para obtenermás información, consulteActualización de la política de confianza en los roles de IAM para laejecución de trabajosen laAmazon EMR on EKS Developer Guide

Controlador del equilibrador de carga de AWS

LaAWSLoad Balancer Controller (anteriormente denominadoAWSALB Ingress Controller) crea unApplication Load Balancer (ALB) para cada punto de enlace administrado que cree. Un ALB equilibrael tráfico de aplicaciones entre los pods de Kubernetes. Cada ALB está habilitado para HTTPS yutiliza una dirección IP privada dentro de su VPC. Solo tiene que configurar unaAWSControlador deLoad Balancer por clúster EKS. Para obtener instrucciones y obtener más información acerca de lacreación de un ALB, consulteAWSControlador de Load Balancer. Para obtener más información sobreel balanceo de carga en general, consulteEquilibrio de carga de aplicaciones en Amazon EKS.

Cuando configura un endpoint administrado para EMR Studio, Amazon EMR en EKS crea dos gruposde seguridad predeterminados para controlar el tráfico entrante y ayudar a garantizar que solo EMRStudio pueda comunicarse con el ALB. Al eliminar un endpoint administrado, EMR en EKS elimina elALB y los grupos de seguridad predeterminados.

77

Page 86: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR en EKS para EMR Studio

Warning

Se acumulan cargos adicionales para el equilibrador de carga que Amazon EMR en EKSaprovisiona para cada endpoint administrado que cree.

AWS Certificate Manager(ACM)

Un certificado TLS utilizado por elAWSLoad Balancer Controller para habilitar la comunicación HTTPSsegura con el equilibrador de carga de aplicaciones de un endpoint. Este certificado se especifica alcrear un punto de enlace administrado.

Requisitos previosAntes de poder configurar Amazon EMR en EKS para Amazon EMR Studio, debe tener los siguientesartículos:

• UnAWS Certificate Manager(ACM) para EMR Studio. Puede especificar cualquier nombre de dominioal crear el certificado. Para obtener información sobre cómo crear un certificado, consulteEmisión yadministración de certificadosen laAWS Certificate ManagerGuía del usuario de. Anote el nombre derecurso de Amazon (ARN) del certificado. El ARN se utiliza para configurar los permisos de IAM ycuando crea un endpoint administrado.

• Asegúrese de que la entidad de IAM (usuario o rol) tenga los siguientes permisos de Amazon EC2.Estos permisos permiten a Amazon EMR en EKS crear, administrar y eliminar los grupos de seguridadque limitan el tráfico entrante al equilibrador de carga de su endpoint administrado.

"ec2:CreateSecurityGroup","ec2:DeleteSecurityGroup","ec2:AuthorizeSecurityGroupEgress","ec2:AuthorizeSecurityGroupIngress","ec2:RevokeSecurityGroupEgress","ec2:RevokeSecurityGroupIngress","ec2:DeleteSecurityGroup"

También debe permitir elacm:DescribeCertificateacción para que la entidad de IAM tenga permisopara recuperar el certificado ACM y sus metadatos. Reemplazararn:aws:cam:<region>:<account-id>:certificado/<certificate-id>en el siguiente ejemplo de instrucción de política de IAM conel ARN de su certificado ACM.

"Statement": [ {

"Effect": "Allow", "Action": "acm:DescribeCertificate", "Resource": "<arn:aws:acm:region:account-id:certificate/certificate-id>" }]

• Un clúster de Amazon EKS que registrará como clúster virtual con Amazon EMR en EKS. El clústerdebe estar en la misma Amazon Virtual Private Cloud que su Studio y debe tener al menos una subredprivada para habilitar endpoints administrados y vincular repositorios basados en GIT. Para obtener másinformación acerca de los clústeres de EKS, consulteCreación de un clúster de Amazon EKS.

Note

• Debe haberal menos una subred privada en comúnentre EMR Studio y el clúster de AmazonEKS que utiliza para registrar el clúster virtual. De lo contrario, el endpoint administrado noaparecerá como opción en los espacios de trabajo de Studio. Puede crear un clúster deAmazon EKS y asociarlo a las subredes que pertenecen a su Studio. También puede crearun Studio y especificar las subredes privadas del clúster de EKS.

78

Page 87: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR en EKS para EMR Studio

• AMI Arm de Amazon Linux optimizada para Amazon EKSno se admiten para EMR enendpoints administrados de EKS.

• EMR Studio no es compatible con Amazon EMR en EKS cuando utiliza unAWS Fargate-soloclúster de Amazon EKS.

• UnAWSLoad Balancer Controller para su clúster de Amazon EKS. Solo tiene que configurarunaAWSControlador de Load Balancer por clúster EKS.

• El nombre de recurso de Amazon (ARN) de la función de IAM de ejecución de trabajos para AmazonEMR en EKS. Para obtener más información, consulteActualización de la política de confianza en losroles de IAM para la ejecución de trabajos. Si nunca ha utilizado Amazon EMR en EKS, puede recuperarel ARN de la función de ejecución de trabajos enPaso 1: Cree un clúster virtual (p. 79).

Paso 1: Cree un clúster virtualDebe crear un clúster virtual mediante Amazon EMR en EKS antes de crear un endpoint administrado.

Si tienes... Haga lo siguiente...

Nunca se utilizó Amazon EMR en EKS Siga los pasos deConfiguración depara configurarAmazon EMR en EKS y crear un clúster virtual.Asegúrese de anotar el ARN de su rol de IAM deejecución de trabajos y su ID de clúster virtual.

Previamente configuró Amazon EMR en EKS Siga los pasos deCree un clúster virtualpararegistrar su clúster de Amazon EKS con EMR enEKS. Asegúrese de anotar el ID de clúster virtual.

Para obtener más información acerca de los clústeres virtuales, consulte laClúster virtual(Se ha creadoelAmazon EMR on EKS Development Guide.

Paso 2: Cree un endpoint administrado para su clúster virtualCree un endpoint administrado mediante elemr-containers create-managed-endpointcomando.Especifique valores para las opciones siguientes:

• --type— UsarJUPYTER_ENTERPRISE_GATEWAY.• --virtual-cluster-id— El identificador del clúster virtual que ha registrado en EMR en EKS.• --name: nombre descriptivo del endpoint administrado para ayudar a los usuarios de EMR Studio a

seleccionarlo de una lista.• --execution-role-arn— Nombre de recurso de Amazon (ARN) del rol de IAM de ejecución de

trabajos para EMR en EKS.• --release-label— La etiqueta de lanzamiento de la versión de Amazon EMR que se utilizará al

crear el endpoint. Amazon EMR en EKS admite actualmente la creación de endpoints administradosutilizando las siguientes etiquetas de versión de Amazon EMR: 5.32.0, emr-6.2.0-latest.

• --certificate-arn— El nombre de recurso de Amazon (ARN) delAWS CertificateManagercertificado que desea asociar al equilibrador de carga para habilitar la comunicación HTTPS.

aws emr-containers create-managed-endpoint \--type JUPYTER_ENTERPRISE_GATEWAY \--virtual-cluster-id <0b0qvauoy3ch1nqodxxxxxxxx> \--name <example-endpoint-name> \--execution-role-arn arn:aws:iam::<aws-account-id>:role/<EKSClusterRole> \--release-label <emr-6.2.0-latest> \

79

Page 88: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR en EKS para EMR Studio

--certificate-arn <arn:aws:acm:region:123xxxxxxxxx:certificate/12345678-xxxx-xxxx-xxxx-123456789012>

Note

emr-containerses el nombre utilizado para describir Amazon EMR en EKS dentro delAWSCLIcontexto.

Debería ver los siguientes datos de salida en el terminal. La salida incluye el nombre y el identificador delnuevo endpoint administrado.

{ "arn": "arn:aws:emr-containers:us-west-2:061xxxxxxxxx:/virtualclusters/0b0qvauoy3ch1nqodxxxxxxxx/endpoints/8gai4l4exxxxx", "name": "example-endpoint-name", "virtualClusterId": "0b0qvauoy3ch1nqodxxxxxxxx", "id": "8gai4l4exxxxx"}

Obtener detalles de endpoints administradosDespués de crear un endpoint administrado, puede recuperar sus detalles mediante eldescribe-managed-endpoint AWS CLIcomando. Inserta tus propios valores para<managed-endpoint-id>y<virtual-cluster-id>.

aws emr-containers describe-managed-endpoint --id <managed-endpoint-id> --virtual-cluster-id <virtual-cluster-id>

El comando devuelve detalles sobre el extremo especificado, como ARN, ID y nombre.

{ "endpoint": { "arn": "arn:aws:emr-containers:us-west-2:061xxxxxxxxx:/virtualclusters/0b0qvauoy3ch1nqodxxxxxxxx/endpoints/8gai4l4exxxxx", "certificateArn": "arn:aws:acm:region:123xxxxxxxxx:certificate/12345678-xxxx-xxxx-xxxx-123456789012", "configurationOverrides": { "applicationConfiguration": [ { "classification": "string", "configurations": [ "Configuration" ], "properties": { "string" : "string" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "string", "logStreamNamePrefix": "string" }, "persistentAppUI": "string", "s3MonitoringConfiguration": { "logUri": "string" } } }, "createdAt": number, "executionRoleArn": "string", "id": "8gai4l4exxxxx",

80

Page 89: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónActivar cargas de trabajo interactivas

"name": "example-endpoint-name", "releaseLabel": "emr-6.2.0", "securityGroup": "string", "serverUrl": "string", "state": "string", "subnetIds": [ "string" ], "tags": { "string" : "string" }, "type": "string", "virtualClusterId": "0b0qvauoy3ch1nqodxxxxxxxx" }}

Lista de todos los puntos de enlace administrados asociados a unclúster virtualUsarlist-managed-endpoints AWS CLIpara obtener una lista de todos los endpoints administradosasociados a un clúster virtual especificado. Reemplazar<virtual-cluster-id>con el ID del clústervirtual.

aws emr-containers list-managed-endpoints --virtual-cluster-id <virtual-cluster-id>

Eliminación de un punto de enlace administradoPara eliminar un endpoint administrado asociado a un Amazon EMR en un clúster virtual de EKS, utiliceeldelete-managed-endpoint AWS CLIcomando. Al eliminar un endpoint administrado, Amazon EMRen EKS elimina los grupos de seguridad predeterminados creados para ese endpoint. Especifique valorespara las opciones siguientes:

• --id— El ID del punto de enlace administrado que desea eliminar.• --virtual-cluster-id: ID del clúster virtual asociado al punto de enlace administrado que desea

eliminar. Es el mismo ID de clúster virtual que se especificó cuando se creó el endpoint administrado.

aws emr-containers delete-managed-endpoint --id <managed-endpoint-id> --virtual-cluster-id <virtual-cluster-id>

El comando devuelve un resultado similar al siguiente para confirmar que se ha eliminado el punto deenlace administrado.

{ "id":"8gai4l4exxxxx", "virtualClusterId":"0b0qvauoy3ch1nqodxxxxxxxx"}

Habilitar cargas de trabajo interactivas con AmazonEMR StudioAmazon EMR Serverless admite cargas de trabajo por lotes pero no admite cargas de trabajo interactivasde EMR Studio u otros servicios de portátiles. Esto significa que los estudios EMR creados a partirdeIntroducciónen la Guía del usuario sin servidor de EMR no están habilitadas actualmente para cargasde trabajo interactivas. Sin embargo, puede ejecutar cargas de trabajo interactivas desde EMR Studioen Amazon EMR o Amazon EMR en EKS. En esta sección, se explica cómo habilitar cargas de trabajointeractivas con EMR Studio.

81

Page 90: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCree plantillas de clúster

1. Edite EMR Studio para modificar la configuración.

a. Inicie sesión en la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/home.

b. En el panel de navegación, elijaStudios.c. Seleccione su Studio y elijaEditar.d. Complete lo siguiente en elEditar Studio(Se ha creado el certificado).

• En el navegadorRedes y seguridadespecifique la Nube virtual privada (VPC), las subredes yel grupo de seguridad que desea utilizar para EMR Studio. La VPC, las subredes y el grupo deseguridad que seleccione deben permitir la conectividad a Amazon EMR o Amazon EMR en losrecursos de EKS a los que desea que se conecte su Studio.

• En el navegadorFunciones de autenticación e IAM, especifique el rol de servicio de Studio. Paraobtener más información sobre cómo configurar un rol de servicio de Studio, consulteCreaciónde un rol de servicio de EMR Studio.

• En el navegadorWorkspace de almacenamiento, especifique la ubicación de Amazon S3 en laque EMR Studio puede hacer copias de seguridad de los archivos de Workspace.

e. ElegirGuarde los cambiospara guardar el estudio.2. Para asegurarse de que los usuarios tengan los permisos adecuados para iniciar WorkSpaces, revise

las funciones de IAM para sus usuarios. Para obtener más información sobre cómo configurar lospermisos correctos, consulteConfigurar los permisos de usuario de EMR Studio.

CrearAWS CloudFormationplantillas para AmazonEMR StudioAcerca de las plantillas de cluster de EMR StudioPuede crearAWS CloudFormationplantillas para ayudar a los usuarios de EMR Studio a lanzar nuevosclústeres de Amazon EMR en un espacio de trabajo. CloudFormation Las plantillas son archivos de textocon formato con formato de formato JSON o YAML. En una plantilla, describe una pila deAWSrecursos ycontar CloudFormation cómo aprovisionar dichos recursos para usted. Para EMR Studio, puede crear unao más plantillas que describan un clúster de Amazon EMR.

Organizas tus plantillas enAWS Service Catalog.AWS Service Catalogpermite crear y administrar serviciosde TI que se implementan habitualmente denominadosproductosenAWS. Recopilas tus plantillas comoproductos en unPortfolioque comparte con los usuarios de EMR Studio. Después de crear plantillas declúster, los usuarios de Studio pueden lanzar un nuevo clúster para un espacio de trabajo con una desus plantillas. Los usuarios deben tener permiso para crear clústeres nuevos a partir de plantillas. Puedeconfigurar permisos de usuario en suPolíticas de permisos de EMR Studio (p. 48).

Para obtener más información CloudFormation plantillas, consultePlantillasen laAWS CloudFormationGuíadel usuario de. Para obtener más información acerca de AWS Service Catalog, consulte ¿Qué es AWSService Catalog.

En el siguiente vídeo se explica cómo configurar plantillas de clúster enAWS Service Catalogpara AmazonEMR Studio. También puedes obtener más información en elCree un entorno de autoservicio para cadalínea de negocio mediante Amazon EMR yAWS Service CatalogEntrada de blog.

Parámetros de plantilla opcionalesPuede incluir opciones adicionales en elParameterssección de su plantilla. Parámetrospermite a losusuarios de Studio introducir o seleccionar valores personalizados para un clúster. Por ejemplo, podríaañadir un parámetro que permita a los usuarios seleccionar una versión de Amazon EMR en particular.Para obtener más información, consulte Parámetros en la Guía del usuario de AWS CloudFormation.

82

Page 91: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCree plantillas de clúster

El siguiente ejemploParametersdefine parámetros de entrada adicionales, talescomoClusterName,EmrReleaseversión, yClusterInstanceType.

Parameters: ClusterName: Type: "String" Default: "Cluster_Name_Placeholder" EmrRelease: Type: "String" Default: "emr-6.2.0" AllowedValues: - "emr-6.2.0" - "emr-5.32.0" ClusterInstanceType: Type: "String" Default: "m5.xlarge" AllowedValues: - "m5.xlarge" - "m5.2xlarge"

Al agregar parámetros, los usuarios de Studio ven opciones de formulario adicionales después deseleccionar una plantilla de clúster. En la siguiente imagen se muestran opciones de formulario adicionalesparaVersión EMRversión,ClusterName, yInstanceType.

Requisitos previosAntes de crear una plantilla de clúster, asegúrese de que tiene permisos de IAM para obtener accesoalAWS Service Catalogvista de consola de administrador. También necesita los permisos de IAM

83

Page 92: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCree plantillas de clúster

necesarios para realizarAWS Service Catalogtareas administrativas. Para obtener más información,consulteConceder permisos aAWS Service Catalogadministradores.

InstruccionesPara crear plantillas de clúster de EMR medianteAWS Service Catalog

1. Cree uno o varios CloudFormation plantillas. El lugar en el que almacenas tus plantillas dependede ti. Dado que las plantillas son archivos de texto con formato, puede cargarlas en Amazon S3 oconservarlas en el sistema de archivos local. Para obtener más información CloudFormation plantillas,consultePlantillasen laAWS CloudFormationGuía del usuario de.

Utilice las siguientes reglas para nombrar las plantillas o comprobar los nombres con el patrón[a-zA-Z0-9][a-zA-Z0-9._-]*.

• Los nombres de plantilla deben comenzar por una letra o un número.• Los nombres de plantillas solo pueden constar de letras, números, puntos (.), guiones bajos (_) y

guiones (-).

Cada plantilla de clúster que cree debe incluir las siguientes opciones:

Parámetros de entrada

• ClusterName: nombre del clúster para ayudar a los usuarios a identificarlo después deaprovisionarlo.

Salida

• ClusterId: ID del clúster EMR recién aprovisionado.

A continuación se muestra un ejemploAWS CloudFormationplantilla en formato YAML para un clústercon dos nodos. La plantilla de ejemplo incluye las opciones de plantilla necesarias y define parámetrosde entrada adicionales paraEmrReleaseyClusterInstanceType.

AWSTemplateFormatVersion: 2010-09-09

Parameters: ClusterName: Type: "String" Default: "Example_Two_Node_Cluster" EmrRelease: Type: "String" Default: "emr-6.2.0" AllowedValues: - "emr-6.2.0" - "emr-5.32.0" ClusterInstanceType: Type: "String" Default: "m5.xlarge" AllowedValues: - "m5.xlarge" - "m5.2xlarge"

Resources: EmrCluster: Type: AWS::EMR::Cluster Properties: Applications:

84

Page 93: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCree plantillas de clúster

- Name: Spark - Name: Livy - Name: JupyterEnterpriseGateway - Name: Hive EbsRootVolumeSize: '10' Name: !Ref ClusterName JobFlowRole: EMR_EC2_DefaultRole ServiceRole: EMR_DefaultRole ReleaseLabel: !Ref EmrRelease VisibleToAllUsers: true LogUri: Fn::Sub: 's3://aws-logs-${AWS::AccountId}-${AWS::Region}/elasticmapreduce/' Instances: TerminationProtected: false Ec2SubnetId: 'subnet-ab12345c' MasterInstanceGroup: InstanceCount: 1 InstanceType: !Ref ClusterInstanceType CoreInstanceGroup: InstanceCount: 1 InstanceType: !Ref ClusterInstanceType Market: ON_DEMAND Name: Core

Outputs: ClusterId: Value: Ref: EmrCluster Description: The ID of the EMR Cluster

2. Cree un portafolio para sus plantillas de clúster en la mismaAWScuenta como Studio.

a. Abra el iconoAWS Service CatalogConsola de enhttps://console.aws.amazon.com/servicecatalog/.b. ElegirCarterasen el menú de navegación izquierdo.c. Introduzca la información solicitada en elCree una cartera de(Se ha creado el certificado).d. ElegirCrear.AWS Service Catalogcrea la cartera y muestra los detalles de esta última.

3. Realice los siguientes pasos para añadir las plantillas de clústeres comoAWS ServiceCatalogProductos de .

a. Vaya a la .Productospágina debajoAdministraciónen laAWS Service Catalogconsola deadministración.

b. ElegirCargar nuevo producto.c. Escriba unNombre del productoyPropietario.d. Especifique el archivo de plantilla enDetalles de la versión.e. ElegirReview (Revisar)para revisar la configuración del producto y, a continuación, elijaCrear

producto.4. Siga los pasos que se describen a continuación para añadir sus productos a su cartera de productos.

a. Vaya a la .Productos(Se ha creado elAWS Service Catalogconsola de administración.b. Elige tu producto, eligeActionsy, después,Añadir producto a la cartera.c. Elige tu portafolio y luego eligeAñadir producto a la cartera.

5. Cree una restricción de lanzamiento para sus productos. Una restricción de lanzamiento es unrol de IAM que especifica los permisos de usuario para lanzar un producto. Puede adaptar lasrestricciones de lanzamiento, pero debe permitir permisos para utilizar CloudFormation, AmazonEMR yAWS Service Catalog. Para obtener más información e instrucciones, consulteAWS ServiceCatalogRestricciones de lanzamiento.

6. Aplica la restricción de lanzamiento a cada producto de tu cartera. Debe aplicar la restricción delanzamiento a cada producto individualmente.

85

Page 94: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAcceso y permisos para repositorios basados en GIT

a. Seleccione su portafolio de laCarteras(Se ha creado elAWS Service Catalogconsola deadministración.

b. Elija la pestaña Constraints (Restricciones) y elija Create constraint (Crear restricción).c. Elige tu producto y eligeLanzamientoUNDERConstraint type (Tipo de restricción). Elija Continue.d. Seleccione la función de restricción de lanzamiento en elRestricción de lanzamientosección y, a

continuación, elijaCrear.7. Conceder acceso a su cartera de productos.

a. Seleccione su portafolio de laCarterasenAWS Service Catalogconsola de administración.b. Expanda elGrupos, roles y usuariostab y luegoAgregar grupos, roles y usuarios.c. Busque su rol de EMR Studio IAM en elRoles depestaña, selecciona tu rol y eligeAñadir acceso.

Si usa... Otorgar acceso a...

IAM Authentication Sus usuarios nativos de IAM

Federación IAM Su función de IAM para federación

AWS SSOfederación SusFunción de usuario de EMRStudio (p. 49)

Establecer el acceso y los permisos para losrepositorios basados en GITEMR Studio admite los siguientes servicios basados en Git:

• AWS CodeCommit• GitHub• Bitbucket• GitLab

Para permitir que los usuarios de EMR Studio asocien un repositorio de Git a un espacio de trabajo,configure los siguientes requisitos de acceso y permisos. También puedes configurar los repositoriosbasados en GIT que alojas en una red privada siguiendo las instrucciones deConfigurar un repositorio Gitalojado de forma privada para EMR Studio (p. 87).

Acceso a Internet clúster

Los clústeres de Amazon EMR que se ejecutan en Amazon EC2 y Amazon EMR en clústeres deEKS conectados a Studio Workspaces deben estar en una subred privada que utilice una gatewayde traducción de direcciones de red (NAT) o deben poder obtener acceso a Internet a través de unagateway privada virtual. Para obtener más información, consulte Opciones de Amazon VPC (p. 225).

Los grupos de seguridad que utiliza con EMR Studio deben incluir también una regla de salida quepermita que Workspaces envía tráfico a Internet desde un clúster de EMR conectado. Para obtenermás información, consulte Definir grupos de seguridad para controlar el tráfico de red de EMRStudio (p. 75).

Important

Si la interfaz de red se encuentra en una subred pública, no podrá comunicarse con Internet através de una gateway de Internet (IGW).

86

Page 95: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAcceso y permisos para repositorios basados en GIT

Permisos de AWS Secrets Manager

Para permitir que los usuarios de EMR Studio accedan a los repositorios de Git con secretosalmacenados enAWS Secrets Manager, agregue una política de permisos a lafunción de servicio paraEMR Studio (p. 43)que permite elsecretsmanager:GetSecretValue.

Para obtener información sobre cómo vincular repositorios basados en GIT a Workspaces,consulteVincular repositorios basados en GIT a un espacio de trabajo de EMR Studio (p. 100).

Configurar un repositorio Git alojado de forma privada para EMRStudioSiga las instrucciones siguientes para configurar los repositorios alojados de forma privada para AmazonEMR Studio. Proporcione un archivo de configuración con información sobre sus servidores DNS y Git.EMR Studio utiliza esta información para configurar espacios de trabajo que pueden enrutar el tráfico a losrepositorios autoadministrados.

Requisitos previos

Antes de configurar un repositorio de Git alojado en privado para EMR Studio, necesita lo siguiente:

• Ubicación de almacenamiento de Amazon S3 en la que EMR Studio puede hacer copias de seguridadde los archivos de Workspaces y notebook en Studio. Utilice el mismo bucket de S3 que especifique alcrear un Studio.

Para configurar uno o varios repositorios Git alojados de forma privada para EMR Studio

1. Cree un archivo de configuración con la siguiente plantilla. Incluye los siguientes valores para cadaservidor Git que quieras especificar en la configuración:

• DnsServerIpV4- La dirección IPv4 del servidor DNS. Si proporciona valores paraambosDnsServerIpV4yGitServerIpV4List, el valor deDnsServerIpV4tiene prioridad y EMRStudio utilizaDnsServerIpV4para resolver suGitServerDnsName.

Note

Para utilizar repositorios Git alojados de forma privada, el servidor DNS debe permitir elacceso entrante desde EMR Studio. Le instamos a proteger su servidor DNS contra otrosaccesos no autorizados.

• GitServerDnsName- El nombre DNS de tu servidor Git. Por ejemplo, "git.example.com".• GitServerIpV4List- Lista de direcciones IPv4 que pertenecen a sus servidores Git.

[ { "Type": "PrivatelyHostedGitConfig", "Value": [ { "DnsServerIpV4": "<10.24.34.xxx>", "GitServerDnsName": "<enterprise.git.com>", "GitServerIpV4List": [ "<xxx.xxx.xxx.xxx>", "<xxx.xxx.xxx.xxx>" ] }, { "DnsServerIpV4": "<10.24.34.xxx>", "GitServerDnsName": "<git.example.com>",

87

Page 96: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónOptimizar trabajos de Spark

"GitServerIpV4List": [ "<xxx.xxx.xxx.xxx>", "<xxx.xxx.xxx.xxx>" ] } ] }]

2. Guarde el archivo de configuración comoconfiguration.json.3. Cargue el archivo de configuración en su ubicación de almacenamiento de Amazon S3 en una carpeta

denominadalife-cycle-configuration. Por ejemplo, si la ubicación predeterminada de S3ess3://DOC-EXAMPLE-BUCKET/studios, el archivo de configuración estaría ens3://DOC-EXAMPLE-BUCKET/studios/life-cycle-configuration/configuration.json.

Important

Le instamos a que restrinja el acceso a sulife-cycle-configurationcarpetaa los administradores de Studio y a su rol de servicio de EMR Studio, y queprotegeconfiguration.jsoncontra el acceso no autorizado. Para obtener instrucciones,consulteControlar el acceso a un bucket con las políticas de usuariooPrácticas recomendadasde seguridad para Amazon S3.

Para obtener instrucciones de subida, consulteCreación de una carpetayCarga de objetosen laGuíadel usuario de Amazon Simple Storage Service. Para aplicar la configuración a un espacio de trabajoexistente, cierre y reinicie el espacio de trabajo después de cargar el archivo de configuración enAmazon S3.

Optimizar los trabajos de Spark en EMR StudioAl ejecutar un trabajo de Spark mediante EMR Studio, hay algunos pasos que puede seguir para garantizarque está optimizando los recursos de clúster de Amazon EMR.

Prolongar tu sesión de LivySi utiliza Apache Livy junto con Spark en su clúster de Amazon EMR, le recomendamos que aumente eltiempo de espera de la sesión de Livy mediante una de las siguientes acciones:

• Al crear un clúster de Amazon EMR, establezca esta clasificación de configuración en elIntroducirconfiguración.

[ { "Classification": "livy-conf", "Properties": { "livy.server.session.timeout": "8h" } }]

• Para un clúster EMR que ya se está ejecutando, conéctese al clúster mediantesshy configura ellivy-confclasificación de configuración en/etc/livy/conf/livy.conf.

[ { "Classification": "livy-conf", "Properties": { "livy.server.session.timeout": "8h" }

88

Page 97: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUsar Amazon EMR Studio

}]

Es posible que tenga que reiniciar Livy después de cambiar la configuración.• Si no quieres que se agote el tiempo de espera de tu sesión de Livy, establece la

propiedadlivy.server.session.timeout-checkafalseen/etc/livy/conf/livy.conf.

Ejecutar Spark en modo clústerEn modo clúster, el controlador Spark se ejecuta en un nodo principal en lugar de en el nodo maestro, loque mejora la utilización de recursos en el nodo maestro.

Para ejecutar la aplicación Spark en modo clúster en lugar del modo cliente predeterminado,elijaRacimomodo cuando configurasModo de implementaciónmientras configuras el paso de Spark en tunuevo clúster de Amazon EMR. Para obtener más información, consulteInformación general sobre el mododeen la documentación de Apache Spark.

Aumentar la memoria del controlador SparkPara aumentar la memoria del controlador de Spark, configure la sesión de Spark mediante el%%configuremagic command en el bloc de notas EMR, como en el siguiente ejemplo.

%%configure -f{"driverMemory": "6000M"}

Usar Amazon EMR StudioEn esta sección, encontrará temas que ayudan a los usuarios que han iniciado sesión en Amazon EMRStudio a configurar e interactuar con el Studio.

En el siguiente vídeo se describe información práctica, como cómo crear un nuevo espacio de trabajo ycómo lanzar un nuevo clúster de Amazon EMR mediante una plantilla de clúster. El vídeo también muestrala ejecución de un bloc de notas de ejemplo.

En esta sección se describen los siguientes temas para ayudarle a trabajar en EMR Studio:• Más información sobre los aspectos básicos de Workspace (p. 89)• Configure la colaboración en Workspace (p. 94)• Examinar datos con SQL Explorer (p. 96)• Adjuntar un clúster a un espacio de trabajo (p. 97)• Vincular repositorios basados en GIT a un espacio de trabajo de EMR Studio (p. 100)• Depuración de aplicaciones y trabajos con EMR Studio (p. 102)• Instalación de kernels y bibliotecas en un espacio de trabajo de EMR Studio (p. 105)• Mejora los kernels con comandos mágicos (p. 106)• Utilizar cuadernos multilingües con los kernels de Spark (p. 111)

Más información sobre los aspectos básicos deWorkspaceCuando utiliza un Amazon EMR Studio, puede crear y configurar diferentesWorkspacesparaorganizar y ejecutar libretas. En esta sección se explica cómo crear y trabajar con Workspaces. Para

89

Page 98: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConceptos básicos de Workspace de

obtener información general conceptual, consulteWorkspaces (p. 30)en elCómo Amazon EMRStudio (p. 26)(Se ha creado el certificado).

En esta sección se describen los siguientes temas para ayudarle a utilizar EMR Studio Workspaces:• Creación de un espacio de trabajo de EMR Studio (p. 90)• Lanzar un Workspace (p. 90)• Comprender la interfaz de usuario de Workspace (p. 91)• Explore los ejemplos de notas (p. 92)• Guardar contenido de Workspace (p. 92)• Eliminar un espacio de trabajo y archivos de bloc de notas (p. 92)• Comprender el estado del Workspace (p. 93)• Solucionar problemas de conectividad de Workspace (p. 94)

Creación de un espacio de trabajo de EMR StudioPuede crear espacios de trabajo de EMR Studio para ejecutar código de bloc de notas mediante la interfazde EMR Studio.

Para crear un espacio de trabajo en un EMR Studio

1. Inicie sesión en EMR Studio.2. ElegirCrear Workspace.3. Escriba unNombre de Workspace dey unDescripción. Dar nombre a un espacio de trabajo le ayuda a

identificarlo en laWorkspaces(Se ha creado el certificado).4. (Opcional) Habilite la colaboración de Workspace si desea trabajar con otros usuarios de Studio en

este espacio de trabajo en tiempo real. Puede configurar colaboradores después de iniciar el espaciode trabajo.

5. (Opcional) Para adjuntar un clúster a un espacio de trabajo al crear el espacio de trabajo, expandalaConfiguración avanzadasección.

Note

El aprovisionamiento de un nuevo clúster requiere permisos de acceso del administrador.

Elija una de las opciones de clúster para el espacio de trabajo y adjunte el clúster. Para obtener másinformación sobre el aprovisionamiento de un clúster al crear un espacio de trabajo, consulteCreaciónde un nuevo clúster de EMR (p. 98).

6. ElegirCrear Workspaceen la parte inferior derecha de la página.

Después de crear un espacio de trabajo, EMR Studio abrirá elWorkspaces(Se ha creado el certificado).Verás un banner verde de éxito en la parte superior de la página y encontrarás el espacio de trabajo reciéncreado en la lista.

De forma predeterminada, un espacio de trabajo se comparte y todos los usuarios de Studio puedenverlo. No obstante, solo un usuario puede abrir un espacio de trabajo a la vez y trabajar en un espaciode trabajo. Para trabajar simultáneamente con otros usuarios, puedesConfigure la colaboración enWorkspace (p. 94)

Lanzar un WorkspacePara empezar a trabajar con archivos de bloc de notas, inicie un espacio de trabajo para acceder al editorde bloc de notas. LaWorkspacespágina de un Studio enumera todos los espacios de trabajo a los quetiene acceso con detalles, incluidosNombre,Estado,Creation time, yÚltima modificación.

90

Page 99: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConceptos básicos de Workspace de

Para lanzar un espacio de trabajo para editar y ejecutar blocs de notas

1. En la páginaWorkspacesde su Studio, busque el espacio de trabajo. Puede filtrar la lista por palabraclave o por valor de columna.

2. Elija el nombre del espacio de trabajo para iniciar el espacio de trabajo en una nueva pestaña delnavegador. El espacio de trabajo puede tardar unos minutos en abrirse si esOcioso.

Note

Solo un usuario puede abrir un espacio de trabajo a la vez y trabajar en un espacio detrabajo. Si selecciona un espacio de trabajo que ya está en uso, EMR Studio muestra unanotificación cuando intenta abrirlo. LaUsuarioen laWorkspacesmuestra al usuario que trabajaen el espacio de trabajo.

Comprender la interfaz de usuario de WorkspaceLa interfaz de usuario de EMR Studio Workspace se basa en laInterfaz de JupyterLabcon pestañasindicadas por el icono en la barra lateral izquierda. Al hacer una pausa sobre un icono, puede ver unadescripción emergente que muestra el nombre de la pestaña. Elija pestañas de la barra lateral izquierdapara acceder a los siguientes paneles.

• Navegador de archivos: muestra los archivos y directorios del espacio de trabajo, así como los archivosy directorios de los repositorios Git vinculados.

• Ejecución de núcleos y terminales: enumera todos los núcleos y terminales que se ejecutan en elespacio de trabajo. Para obtener más información, consulteAdministración de kernels y terminalesen ladocumentación oficial de JupyterLab.

• Cretino: proporciona una interfaz gráfica de usuario para ejecutar comandos en los repositorios deGit adjuntos al espacio de trabajo. Este panel es un JupyterLab extensión llamada jupyterlab-git. Paraobtener más información, consultejúpyterlab-git.

• Clústeres de EMR: permite adjuntar un clúster o separar un clúster del espacio de trabajo para ejecutarel código del bloc de notas. El panel de configuración del clúster de EMR también proporciona opcionesde configuración avanzadas para ayudarle a crear y adjuntar unnuevoclúster en el espacio de trabajo.Para obtener más información, consulte Creación de un nuevo clúster de EMR (p. 98).

• Repositorio Git de EMR— Le ayuda a vincular el espacio de trabajo con hasta tres repositorios de Git.Para obtener detalles e instrucciones, consulteVincular repositorios basados en GIT a un espacio detrabajo de EMR Studio (p. 100).

• Ejemplos de notas: proporciona una lista de ejemplos de bloc de notas que puede guardar en elespacio de trabajo. También puede obtener acceso a los ejemplos eligiendoEjemplos de notasenelLauncherpágina del espacio de trabajo.

• Comandos— Ofrece una forma basada en el teclado de buscar y ejecutar JupyterLab commands. Paraobtener más información, consulte laPaleta de comandos(Se ha creado el JupyterLab .

• Herramientas para blocs de notas: permite seleccionar y definir opciones como el tipo de diapositiva decelda y los metadatos. LaHerramientas para blocs de notasaparece en la barra lateral izquierda despuésde abrir un archivo de bloc de notas.

• Pestañas abiertas: enumera los documentos y actividades abiertos en el área de trabajo principalpara poder saltar a una pestaña abierta. Para obtener más información, consulte laModo de fichas ydocumento único(Se ha creado el JupyterLab .

• Colaboración: permite habilitar o deshabilitar la colaboración de Workspace y administrar colaboradores.Para verColaboración, debe tener los permisos necesarios. Para obtener más información,consulteEstablecer la propiedad de la colaboración de Workspace (p. 50).

91

Page 100: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConceptos básicos de Workspace de

Explore los ejemplos de notasCada espacio de trabajo de EMR Studio incluye un conjunto de ejemplos de bloc de notas que puedeutilizar para explorar las características de EMR Studio. Para editar o ejecutar un ejemplo de bloc de notas,puede guardarlo en el espacio de trabajo.

Para guardar un ejemplo de bloc de notas en un espacio de trabajo

1. En la barra lateral izquierda, elija laEjemplos de notaspara abrir elEjemplos de notasPanel. Tambiénpuede obtener acceso a los ejemplos eligiendoEjemplos de notasen elLauncherpágina del espacio detrabajo.

2. Elija un ejemplo de bloc de notas para previsualizarlo en el área de trabajo principal. El ejemplo es desolo lectura.

3. Para guardar el ejemplo del bloc de notas en el espacio de trabajo, elijaGuardar en Workspace. EMRStudio guarda el ejemplo en el directorio principal. Después de guardar un ejemplo de bloc de notasen el espacio de trabajo, puede cambiarlo, editarlo y ejecutarlo.

Para obtener más información acerca de los ejemplos de bloc de notas, consulte laEjemplos de Notebookde EMR Studio GitHub repository.

Guardar contenido de WorkspaceCuando trabaja en el editor de bloc de notas de un espacio de trabajo, EMR Studio guarda el contenidode las celdas y los resultados del bloc de notas en la ubicación de Amazon S3 asociada a Studio. Esteproceso de copia de seguridad conserva el trabajo entre sesiones.

También puede guardar un bloc de notas pulsandoCTRL+Sen la pestaña del bloc de notas abierto omediante una de las opciones de guardado enArchivo.

Otra forma de hacer copias de seguridad de los archivos del bloc de notas en un espacio de trabajo esasociar el espacio de trabajo a un repositorio basado en GIT y sincronizar los cambios con el repositorioremoto. Esto también le permite guardar y compartir libretas con los miembros del equipo que utilizan unWorkspace o Studio diferente. Para obtener instrucciones, consulte Vincular repositorios basados en GIT aun espacio de trabajo de EMR Studio (p. 100).

Eliminar un espacio de trabajo y archivos de bloc de notasAl eliminar un archivo de bloc de notas de un espacio de trabajo de EMR Studio, se elimina el archivodelNavegador de archivosy EMR Studio elimina su copia de copia de seguridad en Amazon S3. No tieneque tomar más medidas para evitar cargos por almacenamiento al eliminar un archivo de un espacio detrabajo.

Cuando eliminasun espacio de trabajo completo, EMR Studio no elimina los archivos y carpetas debloc de notas correspondientes en Amazon S3. Estos archivos permanecen en Amazon S3 y continúanacumulando cargos de almacenamiento. Para evitar cargos por almacenamiento, debe eliminar todos losarchivos y carpetas de copia de seguridad asociados a un espacio de trabajo eliminado de Amazon S3.

Para eliminar un archivo de bloc de notas de un espacio de trabajo de EMR Studio

1. SELECTNavegador de archivosdesde la barra lateral izquierda del espacio de trabajo.2. Seleccione el archivo o la carpeta que desea eliminar. Haga clic derecho en su selección y elijaBorrar.

El archivo desaparece de la lista y ya no se puede abrir. EMR Studio elimina el archivo o la carpeta deAmazon S3 por ti.

92

Page 101: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConceptos básicos de Workspace de

Para eliminar un espacio de trabajo y sus archivos de copia de seguridad asociados de EMRStudio

1. Inicie sesión en EMR Studio con la URL de acceso de Studio y elijaWorkspacesdesde el panel denavegación izquierdo.

2. Busque su espacio de trabajo en la lista y, a continuación, seleccione la casilla de verificación situadajunto a su nombre. Puede seleccionar varios espacios de trabajo para eliminar al mismo tiempo.

3. ElegirBorraren la parte superior derecha delWorkspaceslista y confirme que desea eliminar losespacios de trabajo seleccionados. Elija Delete para confirmar.

4. Siga las instrucciones deEliminación de objetosen laAmazon Simple Storage Service Guía del usuariode la consolapara eliminar los archivos de bloc de notas asociados al espacio de trabajo eliminado deAmazon S3. Si no ha creado Studio, consulte al administrador de Studio para determinar la ubicaciónde copia de seguridad de Amazon S3 del espacio de trabajo eliminado.

Comprender el estado del WorkspaceDespués de crear un espacio de trabajo de EMR Studio, aparece como una fila en elWorkspaceslista deStudio con su nombre, estado, hora de creación y marca de hora modificada por última vez. En la tablasiguiente se describen los estados del espacio de trabajo.

Estado Descripción

Starting El espacio de trabajo se está preparando, peroaún no está listo para usar. No se puede abrir unespacio de trabajo cuando su estado es Iniciando.

Ready Puede abrir Workspace para utilizar el editor debloc de notas, pero debe asociar el espacio detrabajo a un clúster de EMR para poder ejecutar elcódigo del bloc de notas.

Attachation El espacio de trabajo se está asociando a unclúster.

Attached (Asociado) El espacio de trabajo está conectado a un clústerde EMR y está listo para escribir y ejecutar códigode bloc de notas. Si el estado de un espacio detrabajo no esAttached (Asociado), debe adjuntarloa un clúster para poder ejecutar el código del blocde notas.

Ocioso El espacio de trabajo está detenido e inactivo.Para reactivar un espacio de trabajo inactivo,selecciónelo de la lista Espacios de trabajo. Elestado cambia deOciosoaStartingaReadycuandoselecciona el espacio de trabajo.

Stopping El espacio de trabajo se detiene y se configuraráenOcioso. EMR Studio detiene los portátiles quehan estado inactivos durante mucho tiempo.

Eliminando Al eliminar un espacio de trabajo, EMR Studiolo marca para eliminarlo e inicia el proceso deeliminación. Una vez finalizado el proceso deeliminación, el espacio de trabajo desaparece de lalista.

93

Page 102: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure la colaboración en Workspace

Solucionar problemas de conectividad de WorkspacePara resolver problemas de conectividad de Workspace, puede detener y reiniciar un espacio de trabajo.Al reiniciar un espacio de trabajo, EMR Studio inicia el espacio de trabajo en una zona de disponibilidaddiferente o en otra subred asociada a Studio.

Para detener y reiniciar un espacio de trabajo de EMR Studio

1. Cierre el espacio de trabajo en su navegador.2. Vaya a la .WorkSpacelista en la interfaz de usuario de EMR Studio.3. Seleccione el área de trabajo de la lista y elijaActions.4. Elegirdetieney espere a que cambie el estado del espacio de trabajo desdeStopping

(Deteniéndose)aOcioso.5. ElegirActionsy, a continuación, elijainiciapara reiniciar el espacio de trabajo.6. Espere a que cambie el estado del espacio de trabajo desdeStartingaReadyy, a continuación,

seleccione el nombre del espacio de trabajo para volver a abrirlo en una nueva pestaña delnavegador.

Configure la colaboración en WorkspaceLa colaboración en el espacio de trabajo le permite escribir y ejecutar código de bloc de notassimultáneamente con otros miembros de su equipo. Cuando trabajas en el mismo archivo de bloc de notas,verás cambios a medida que los hacen tus colaboradores. Puede habilitar la colaboración cuando crea unespacio de trabajo o activa y desactiva la colaboración en un espacio de trabajo existente.

Requisitos previos

Antes de configurar la colaboración para un espacio de trabajo, asegúrese de completar las siguientestareas:

• Asegúrese de que el administrador de EMR Studio le haya otorgado los permisos necesarios. Porejemplo, la siguiente instrucción permite a un usuario configurar la colaboración para cualquier espaciode trabajo con la clave de etiquetacreatorUserIdcuyo valor coincide con el ID del usuario (indicadopor la variable de política)aws:userId).

{ "Sid": "UserRolePermissionsForCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } }}

• Asegúrese de que el rol de servicio asociado a EMR Studio tenga los permisos necesarios para habilitary configurar la colaboración de Workspace, como en la siguiente instrucción de ejemplo.

{ "Sid": "AllowWorkspaceCollaboration",

94

Page 103: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure la colaboración en Workspace

"Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers" ], "Resource": "*"}

Para obtener más información, consulte Creación de un rol de servicio de EMR Studio (p. 43).

Para habilitar la colaboración de Workspace y agregar colaboradores

1. En tu espacio de trabajo, elige laColaboraciónen la pantalla del iniciador o en la parte inferior del panelizquierdo.

Note

No verás elColaboracióna menos que el administrador de Studio le haya dado permisopara configurar la colaboración para Workspace. Para obtener más información,consulteEstablecer la propiedad de la colaboración de Workspace (p. 50).

2. Asegúrese de quePermitir la colaboración en Workspacetoggle está en la posición activada. Cuandohabilita la colaboración, solo usted y los colaboradores que agregue pueden ver el espacio de trabajoen la lista del StudioWorkspaces(Se ha creado el certificado).

3. Escriba unNombre de colaborador. Su espacio de trabajo puede tener un máximo de cincocolaboradores, incluido usted mismo. Un colaborador puede ser cualquier usuario con acceso a EMRStudio. Si no ingresas a un colaborador, el espacio de trabajo es un espacio de trabajo privado al quesolo tienes acceso.

En la tabla siguiente se especifican los valores de colaborador aplicables que se deben introducir enfunción del tipo de identidad del propietario.

Note

Un propietario solo puede invitar a colaboradores con el mismo tipo de identidad. Porejemplo, un usuario de IAM solo puede agregar otros usuarios de IAM y un usuario de SSOsolo puede agregar otros usuarios de SSO.

Modo de autenticación Valor que se va a introducir paraNombre decolaborador

IAM Authentication Un nombre de usuario de IAM. Este es elnombre que ve un usuario al iniciar sesión enelAWS Management Console.

Federación IAM El nombre de un rol de IAM y un nombre desesión opcional.

Para agregar todos los usuarios federados queasumen el mismo rol de IAM, especifique elnombre de un rol de IAM para la federación.

Para agregar un solo usuario como colaborador,especifique un rol y un nombre de sesión. Porejemplo, MyRoleName:MySessionName.

95

Page 104: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónExaminar datos con SQL Explorer

Modo de autenticación Valor que se va a introducir paraNombre decolaborador

SSO UnAWS SSOnombre de [email protected].

4. Elija Add. El colaborador ahora puede ver el espacio de trabajo en su EMR StudioWorkspacese inicieWorkspace para utilizarlo en tiempo real con usted.

Note

Si deshabilita la colaboración de Workspace, Workspace vuelve a su estado compartido y todoslos usuarios de Studio pueden verlo. En estado compartido, solo un usuario de Studio puede abriry trabajar en el espacio de trabajo a la vez.

Examinar datos con SQL ExplorerEn este tema, se proporciona información que le ayudará a comenzar a utilizar el Explorador de SQL deAmazon EMR Studio. SQL Explorer es una herramienta de una sola página del espacio de trabajo que leayuda a comprender los orígenes de datos del catálogo de datos del clúster de EMR. Puede utilizar SQLExplorer para explorar los datos, ejecutar consultas SQL para recuperar datos y descargar los resultadosde las consultas.

SQL Explorer es compatible con Presto. Antes de utilizar SQL Explorer, asegúrese de tener un clúster deEMR que utilice la versión de Amazon EMR6.4.0 o later con Presto instalado.

Explorar el catálogo de datos de su clústerSQL Explorer proporciona una interfaz de explorador de catálogos que puede utilizar para explorar ycomprender cómo se organizan los datos. Por ejemplo, puede utilizar el explorador del catálogo de datospara verificar los nombres de tablas y columnas antes de escribir una consulta SQL.

Para explorar el catálogo de datos

1. Abra SQL Explorer en su espacio de trabajo.2. Asegúrese de que el espacio de trabajo esté conectado a un clúster de EMR que se ejecuta en

EC2 que utiliza Amazon EMR versión 6.4.0 o posterior con Presto instalado. Puede elegir un clústerexistente o crear uno nuevo. Para obtener más información, consulte Adjuntar un clúster a un espaciode trabajo (p. 97).

3. SELECTBase de datosen la lista desplegable para navegar.4. Expanda una tabla de la base de datos para ver los nombres de las columnas de la tabla. También

puede escribir una palabra clave en la barra de búsqueda para filtrar los resultados de la tabla.

Ejecute una consulta SQL para recuperar datosPara recuperar datos con una consulta SQL y descargar los resultados

1. Abra SQL Explorer en su espacio de trabajo.2. Asegúrese de que su espacio de trabajo esté conectado a un clúster de EMR que se ejecuta en EC2

con Presto y Spark instalados. Puede elegir un clúster existente o crear uno nuevo. Para obtener másinformación, consulte Adjuntar un clúster a un espacio de trabajo (p. 97).

3. SelectAbrir el editorpara abrir una nueva pestaña del editor en el espacio de trabajo.

96

Page 105: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdjuntar un clúster a un espacio de trabajo

4. Redacte la consulta SQL en la pestaña del editor.5. Elija Run (Ejecutar).6. Ver los resultados de la consulta enVista previa de resultados. SQL Explorer muestra los 100 primeros

resultados de forma predeterminada. Puede elegir un número diferente de resultados para mostrar(hasta 1000) mediante laVista previa de los 100 primeros resultados de consultaabatible.

7. ElegirDescargue los resultadospara descargar los resultados en formato CSV. Puede descargar hasta1000 filas de resultados.

Adjuntar un clúster a un espacio de trabajoAmazon EMR Studio ejecuta comandos de notebook mediante un núcleo de un clúster de EMR. Antes deseleccionar un kernel, debe adjuntar el espacio de trabajo a un clúster que utiliza instancias de AmazonEC2 o a un EMR en un clúster de EKS. EMR Studio le permite asociar espacios de trabajo a clústeresnuevos o existentes y le proporciona la flexibilidad de cambiar clústeres sin cerrar el espacio de trabajo.

En esta sección se tratan los siguientes temas para ayudarle a trabajar y aprovisionar clústeres para EMRStudio:

• Adjunta un clúster de (p. 97)• Usar Amazon EMR en clúster de EKS (p. 98)• Creación de un nuevo clúster de EMR (p. 98)• Desasociar un clúster (p. 100)

Adjunta un clúster dePuede adjuntar un clúster de EMR existente que se ejecuta en Amazon EC2 a un espacio de trabajocuando crea el espacio de trabajo o puede elegir un clúster desde la interfaz de usuario de Workspace. Sidesea crear y adjuntar unnuevoClúster, consulteCreación de un nuevo clúster de EMR (p. 98).

Create a Workspace dialog box

Para adjuntar un clúster en ejecución al crear un espacio de trabajo

1. En el navegadorCreación de un espacio de trabajo, asegúrese de que ya ha seleccionado unasubred para el nuevo espacio de trabajo. Expanda elConfiguración avanzadasección.

2. ElegirAdjuntar Workspace a un clúster de EMR.3. En el navegadorClúster de EMRlista desplegable, seleccione un clúster EMR existente para

adjuntarlo al espacio de trabajo.

Después de adjuntar un clúster, puede finalizar el proceso de creación del espacio de trabajo. Cuandoabra el nuevo espacio de trabajo por primera vez y elija laClústeres de EMR, debería ver que el clústerseleccionado está adjunto.

Workspace UI

Para adjuntar un clúster en ejecución desde la interfaz de usuario de Workspace

1. En el área de trabajo que desee asociar a un clúster, elija laClústeres de EMRicono de la barralateral izquierda para abrir elRacimoPanel.

2. UNDERClúster type, expanda el menú desplegable y seleccionaClúster de EMR en EC2.3. Elija un clúster en la lista desplegable. Es posible que deba separar primero un clúster existente

para habilitar la lista desplegable de selección de clúster.

97

Page 106: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdjuntar un clúster a un espacio de trabajo

4. Elija Attach (Adjuntar). Cuando se adjunta el clúster, debería ver que aparece un mensaje deéxito.

Usar Amazon EMR en clúster de EKSAdemás de utilizar clústeres de Amazon EMR que se ejecutan en Amazon EC2, puede adjuntar un espaciode trabajo a un clúster de Amazon EMR en EKS para ejecutar código de bloc de notas. Para obtener másinformación acerca de EMR en EKS, consulteQué es Amazon EMR en EKS.

Antes de poder conectar un espacio de trabajo a un EMR del clúster de EKS, el administrador de Studiodebe otorgarle permisos de acceso.

Create a Workspace dialog box

Para adjuntar un EMR en un clúster de EKS al crear un espacio de trabajo

1. En el navegadorCreación de un espacio de trabajo, expanda elConfiguración avanzadasección.2. ElegirAdjuntar Workspace a un EMR en un clúster de EKS.3. UNDEREMR en clúster de EKS, elija un clúster en la lista desplegable.4. UNDERSeleccione un endpoint, elija un endpoint administrado para asociarlo al espacio

de trabajo. Un endpoint administrado es una puerta de enlace que permite a EMR Studiocomunicarse con el clúster elegido.

5. ElegirCrear Workspacepara finalizar el proceso de creación del espacio de trabajo y adjuntar elclúster seleccionado.

Después de adjuntar un clúster, puede finalizar el proceso de creación del espacio de trabajo. Cuandoabra el nuevo espacio de trabajo por primera vez y elija laClústeres de EMR, debería ver que el clústerseleccionado está adjunto.

Workspace UI

Para adjuntar un EMR en un clúster de EKS desde la interfaz de usuario de Workspace

1. En el área de trabajo que desee asociar a un clúster, elija laClústeres de EMRicono de la barralateral izquierda para abrir elRacimoPanel.

2. Expanda elClúster typemenú desplegable y eligeClústeres de EMR en EKS.3. UNDERClúster de EMR en EKS, elija un clúster en la lista desplegable.4. UNDERPunto de enlace, elija un endpoint administrado para asociarlo al espacio de trabajo. Un

endpoint administrado es una puerta de enlace que permite a EMR Studio comunicarse con elclúster elegido.

5. Elija Attach (Adjuntar). Cuando se adjunta el clúster, debería ver que aparece un mensaje deéxito.

Creación de un nuevo clúster de EMRLos usuarios avanzados de EMR Studio pueden aprovisionar nuevos clústeres de EMR que se ejecutan enAmazon EC2 para utilizarlos con un espacio de trabajo. El nuevo clúster tiene todas las aplicaciones de bigdata necesarias para EMR Studio instaladas de forma predeterminada.

Para crear clústeres, el administrador de Studio debe otorgarle permiso primero mediante una política desesión. Para obtener más información, consulte Creación de políticas de permisos para los usuarios deEMR Studio (p. 49).

98

Page 107: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdjuntar un clúster a un espacio de trabajo

Puede crear un nuevo clúster en laCreación de un espacio de trabajocuadro de diálogo o desdeelRacimoen la interfaz de usuario de Workspace. En cualquier caso, tiene dos opciones de creación declúster:

1. Cree un clúster de EMR: cree un clúster de EMR eligiendo el tipo y recuento de instancias de AmazonEC2.

2. Utilice una plantilla de clúster: aprovisionar un clúster seleccionando una plantilla de clúster predefinida.Esta opción aparece si tiene permiso para utilizar plantillas de clúster.

Para crear un clúster de EMR proporcionando una configuración de clúster

1. Elija un punto de partida.

Para... Haga lo siguiente...

Cree el clúster cuando cree un espacio detrabajo con elCreación de un espacio detrabajoCuadro de diálogo.

Expanda elConfiguración avanzadaenlaCreación de un espacio de trabajocuadro dediálogo y seleccioneCree un clúster de EMR.

Cree el clúster desde el panel Cluster de EMRen la interfaz de usuario de Workspace despuésde crear un espacio de trabajo.

Elija el iconoClústeres de EMRen la barra lateralizquierda de un espacio de trabajo abierto,expanda laConfiguración avanzadasección, yelijaCrear un clúster.

2. Escriba unCluster name (Nombre del clúster). Dar nombre al clúster le ayuda a encontrarlo másadelante en la lista Clusters de EMR Studio.

3. ParaEMR release, Elija una versión de versión de EMR para el clúster.4. ParaEjemplo, seleccione el tipo y el número de instancias de Amazon EC2 del clúster. Para obtener

más información acerca de cómo seleccionar tipos de instancias, consulteConfiguración de instanciasde Amazon EC2 (p. 216). Una instancia se utilizará como nodo maestro.

5. SELECTSubreddonde EMR Studio puede lanzar el nuevo clúster. Cada opción de subred estáaprobada previamente por el administrador de Studio y el espacio de trabajo debería poder conectarsea un clúster de cualquier subred de la lista.

6. Elija unURI S3 para almacenamiento de registros.7. ElegirCrear clúster de EMRpara aprovisionar el clúster. Si utiliza elCreación de un espacio de trabajo,

elijaCrear Workspacepara crear el espacio de trabajo y aprovisionar el clúster. Después de que EMRStudio aprovisione el nuevo clúster, adjunta el clúster al espacio de trabajo.

Para crear un clúster mediante una plantilla de clúster

1. Elija un punto de partida.

Para... Haga lo siguiente...

Cree el clúster cuando cree un espacio detrabajo con elCreación de un espacio detrabajoCuadro de diálogo.

Expanda elConfiguración avanzadaenlaCreación de un espacio de trabajocuadrode diálogo y seleccioneUtilice una plantilla declúster.

Cree el clúster desde el panel Cluster de EMRen la interfaz de usuario de Workspace.

Elija el iconoClústeres de EMRen la barra lateralizquierda de un espacio de trabajo abierto,expanda laConfiguración avanzadasección y, acontinuación, elijaPlantilla de cluster.

99

Page 108: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVincular los repositorios Git

2. Seleccione una plantilla de clúster en la lista desplegable. Cada plantilla de clúster disponible incluyeuna breve descripción que le ayudará a realizar una selección.

3. La plantilla de clúster que elija puede tener parámetros adicionales, como la versión de la versiónde Amazon EMR o el nombre del clúster. Puede elegir o insertar valores o utilizar los valorespredeterminados que ha seleccionado el administrador.

4. SELECT UNSubreddonde EMR Studio puede lanzar el nuevo clúster. Cada opción de subred estáaprobada previamente por el administrador de Studio y el espacio de trabajo debería poder conectarsea un clúster de cualquier subred.

5. ElegirUtilizar plantilla de clúpara aprovisionar el clúster y asociarlo al espacio de trabajo. EMR Studiotarda unos minutos en crearse el clúster. Si utiliza elCreación de un espacio de trabajo, elijaCrearWorkspacepara crear el espacio de trabajo y aprovisionar el clúster. Después de que EMR Studioaprovisione el nuevo clúster, adjunta el clúster a su espacio de trabajo.

Desasociar un clústerPara intercambiar el clúster adjunto a un espacio de trabajo, puede separar un clúster de la IU deWorkspace.

Para desconectar un clúster de un Workspace

1. En el área de trabajo que desea separar de un clúster, elija laClústeres de EMRicono de la barralateral izquierda para abrir elRacimoPanel.

2. UNDERSeleccione clúster, eligeDesacoplary espere a que EMR Studio desconecte el clúster. Cuandoel clúster se desconecte, aparecerá un mensaje de éxito.

Vincular repositorios basados en GIT a un espacio detrabajo de EMR StudioAcerca de los repositorios de Git para EMR StudioPuede asociar un máximo de tres repositorios de Git a un espacio de trabajo de EMR Studio. De formapredeterminada, cada espacio de trabajo te permite elegir entre una lista de repositorios de Git asociadosal mismoAWScuenta como Studio. También puede crear un nuevo repositorio de Git como recurso para unespacio de trabajo.

Puede ejecutar comandos de Git como los siguientes mediante un comando de terminal mientras estáconectado al nodo maestro de un clúster.

!git pull origin <branch-name>

También puede utilizar la extensión jupyterlab-git. Ábrelo desde la barra lateral izquierda eligiendolaCretinoIcono . Para obtener información acerca de la extensión jupyterlab-git para JupyterLab,consultejúpyterlab-git.

Requisitos previos• Para asociar un repositorio de Git a un espacio de trabajo, Studio debe configurarse para permitir la

vinculación del repositorio de Git. El administrador de Studio debe tomar medidas paraEstablecer elacceso y los permisos para los repositorios basados en GIT (p. 86).

• Si utiliza un CodeCommit repositorio, debe usar credenciales de Git y HTTPS. Claves SSH y HTTPScon laAWS Command Line InterfaceNo se admite el ayudante de credenciales. CodeCommit tampoco

100

Page 109: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVincular los repositorios Git

admite tokens de acceso personal (PAT). Para obtener más información, consulteUtilizar IAM conCodeCommiten laIAM User GuideyConfiguración para usuarios HTTPS mediante credenciales de GitenlaAWS CodeCommitGuía del usuario de.

InstruccionesPara vincular un repositorio de Git asociado a un espacio de trabajo

1. Abra el espacio de trabajo que desea vincular a un repositorio desde elWorkspaceslista del Studio.2. En la barra lateral izquierda, elija laRepositorio Git de EMRicono para abrir elRepositorio GitPanel de

herramientas.3. UNDERRepositorios Git, expanda la lista desplegable y seleccione un máximo de tres repositorios

para vincular al espacio de trabajo. EMR Studio registra su selección y comienza a vincular cadarepositorio.

El proceso de vinculación puede tardar un poco en completarse. Puede ver el estado de cada repositorioseleccionado en laRepositorio GitPanel de herramientas. Después de que EMR Studio vincule unrepositorio a un espacio de trabajo, debería ver que los archivos que pertenecen a ese repositorioaparecen en elNavegador de archivosPanel.

Para agregar un nuevo repositorio de Git a un espacio de trabajo como recurso

1. Abra el espacio de trabajo que desea vincular a un repositorio desde la lista Espacios de trabajo deStudio.

2. En la barra lateral izquierda, elija laRepositorio Git de EMRicono para abrir elRepositorio GitPanel deherramientas.

3. ElegirAñadir un nuevo repositorio Git.4. ParaNombre del repositorio, escriba un nombre descriptivo para el repositorio de EMR Studio. Los

nombres solo pueden contener caracteres alfanuméricos, guiones y guiones bajos.5. En Git repository URL (URL del repositorio de Git), escriba la URL del repositorio. Cuando usa un

CodeCommit repositorio de, esta es la URL que se copia cuando eligeClonación de URLy luegoCloneHTTPS. Por ejemplo, https://git-codecommit.us-west-2.amazonaws.com/v1/repos/[MyCodeCommitRepoName].

6. ParaRama, escriba el nombre de una rama existente que desea retirar.7. Para las credenciales de Git, elija una opción de acuerdo con las siguientes pautas. EMR Studio

accede a sus credenciales de Git mediante secretos almacenados en Secrets Manager.

Note

Si utiliza un GitHub repositorio, le recomendamos que utilice un token de acceso personal(PAT) para autenticarse. A partir del 13 de agosto de 2021, GitHub requerirá autenticaciónbasada en tokens y ya no aceptará contraseñas al autenticar las operaciones de Git. Paraobtener más información, consulte laRequisitos de autenticación de token para operacionesde Gitpost enLa GitHub Blog.

Opción Descripción

Crear un nuevo secreto Elija esta opción para asociar las credencialesde Git existentes con un nuevo secreto quese creará enAWS Secrets Managerpara ti.Realice una de las siguientes acciones basadasen las credenciales de Git que utilice para elrepositorio.

101

Page 110: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónDepuración de aplicaciones y trabajos

Opción DescripciónSi utiliza un nombre de usuario y unacontraseña de Git para acceder al repositorio,seleccioneNombre de usuario y contraseña,introduzca elNombre del secretopara usaren Secrets Manager y, a continuación,introduzca laUsername (Nombre deusuario):yContraseñapara asociarse con elsecreto.

–O BIEN–

Si utiliza un token de acceso personal paraacceder al repositorio, seleccioneToken deacceso personal (PAT), introduzca elNombredel secretopara usar en Secrets Manager y,a continuación, introduzca sutoken de accesopersonal. Para obtener más información,consulteCreating a personal access token forthe command line for GitHubyTokens de accesopersonal para Bitbucket. CodeCommit Losrepositorios no admiten esta opción.

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

Usar un existenteAWSsecreta Elija esta opción si ya ha guardado suscredenciales como un secreto en SecretsManager y, a continuación, seleccione el nombredel secreto de 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"}.

8. ElegirAgregar repositoriopara crear el nuevo repositorio. Después de que EMR Studio cree elnuevo repositorio, verá un mensaje de éxito. El nuevo repositorio aparece en la lista desplegabledeRepositorios Git.

9. Para vincular el nuevo repositorio a tu espacio de trabajo, selecciónalo en la lista desplegabledeRepositorios Git.

El proceso de vinculación puede tardar un poco en completarse. Después de que EMR Studio vinculeel nuevo repositorio al espacio de trabajo, debería ver una nueva carpeta con el mismo nombre que surepositorio aparece en elNavegador de archivosPanel.

Para abrir otro repositorio vinculado, navegue a su carpeta en elNavegador de archivos.

Depuración de aplicaciones y trabajos con EMRStudioCon Amazon EMR Studio, puede lanzar interfaces de aplicaciones de datos para analizar las aplicacionesy las ejecuciones de trabajos en el navegador.

102

Page 111: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónDepuración de aplicaciones y trabajos

También puede lanzar las interfaces de usuario persistentes fuera del clúster para Amazon EMR que seejecutan en clústeres EC2 desde la consola de Amazon EMR. Para obtener más información, consulte Verinterfaces de usuario de aplicaciones persistentes (p. 481).

Note

Según la configuración de tu navegador, es posible que tengas que habilitar las ventanasemergentes para que se abra la IU de una aplicación.

Para obtener información sobre cómo configurar y utilizar las interfaces de aplicación, consulteEl servidorde cronología de YARN,Monitoreo e instrumentación, o bienInformación general de la interfaz de usuario.

Depurar Amazon EMR que se ejecuta en trabajos de AmazonEC2Workspace UI

Iniciar una interfaz de usuario en clúster desde un archivo de notebook

Cuando utiliza las versiones 5.33.0 y posteriores de Amazon EMR, puede iniciar la interfaz de usuarioweb de Spark (la interfaz de usuario de Spark o el servidor de historial de Spark) desde un bloc denotas de su Workspace.

Las IU del clúster funcionan con los kernels PySpark, Spark o SparkR. El tamaño máximo de archivovisible para los registros de eventos de Spark o los registros de contenedores es de 10 MB. Si losarchivos de registro superan los 10 MB, le recomendamos que utilice el servidor de historial de Sparkpersistente en lugar de la interfaz de usuario de Spark en el clúster para depurar trabajos.

Important

Para que Amazon EMR Studio lance interfaces de usuario de aplicaciones en clúster desdeun espacio de trabajo, un clúster debe poder comunicarse con Amazon API Gateway. Debeconfigurar el clúster de EMR para permitir el tráfico de red saliente a Amazon API Gateway yasegurarse de que Amazon API Gateway sea accesible desde el clúster.La interfaz de usuario de Spark accede a los registros de contenedores resolviendo nombresde host. Si utiliza un nombre de dominio personalizado, debe asegurarse de que AmazonDNS o el servidor DNS que especifique puedan resolver los nombres de host de los nodosde clúster. Para ello, establezca las opciones del Protocolo de configuración dinámica dehost (DHCP) para Amazon Virtual Private Cloud (VPC) asociada a su clúster. Para obtenermás información sobre las opciones de DHCP, consulteConjunto de opciones de DHCPenlaAmazon Virtual Private Cloud Guía del usuario de .

1. En EMR Studio, abra el espacio de trabajo que desea utilizar y asegúrese de que está conectadoa un clúster de Amazon EMR que se ejecuta en EC2. Para obtener instrucciones, consulteAdjuntar un clúster a un espacio de trabajo (p. 97).

2. Abra un archivo de bloc de notas y utilice el núcleo de PySpark, Spark o SparkR. Para seleccionarun núcleo, elija el nombre del núcleo en la parte superior derecha de la barra de herramientasdel bloc de notas para abrir elSeleccionar kernelCuadro de diálogo. El nombre aparece comoSinkernel.si no se ha seleccionado ningún núcleo.

3. Ejecuta el código de tu portátil. Lo siguiente aparece como salida en el bloc de notas cuando iniciael contexto de Spark. Puede que tarde unos segundos en aparecer. Si has iniciado el contexto deSpark, puedes ejecutar la%%infopara acceder a un enlace a la interfaz de usuario de Spark encualquier momento.

Note

Si los enlaces de la interfaz de usuario de Spark no funcionan o no aparecen despuésde unos segundos, cree una nueva celda de bloc de notas y ejecute la%%infopararegenerar los vínculos.

103

Page 112: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónDepuración de aplicaciones y trabajos

4. Para iniciar la interfaz de usuario de Spark, elijaVínculoUNDERInterfaz de usuario de Spark. Sila aplicación Spark se está ejecutando, la interfaz de usuario de Spark se abre en una nuevapestaña. Si la aplicación se ha completado, se abre el servidor de historial de Spark en su lugar.

Después de iniciar la interfaz de usuario de Spark, puede modificar la URL en el navegador paraabrir el YARN ResourceManager o el servidor de línea de tiempo de Yarn. Añada una de lassiguientes rutas después deamazonaws.com.

IU web Ruta URL modificada de ejemplo

YARNResourceManager

/rm https://j ejemplobby 5ij.emrappui-prod.eu-west-1.amazonaws.com/rm

Yarn TimelineServer

/yts https://j ejemplobby 5ij.emrappui-prod.eu-west-1.amazonaws.com/yts

Servidor de historialde Spark

/shs https://j ejemplobby 5ij.emrappui-prod.eu-west-1.amazonaws.com/shs

Studio UI

Inicie el servidor YARN Timeline Server, el servidor de historial de Spark o la interfaz deusuario de Tez desde la interfaz de usuario de EMR Studio

1. En tu EMR Studio, seleccionaEMR en EC2en el lado izquierdo de la página para abrir elEMR enEC2lista de clústeres.

2. Filtrar la lista de clústeres pornombre,state, o bienIDescribiendo valores en el cuadro debúsqueda. También puede buscar por creaciónRango de tiempo.

3. Seleccione un clúster y después elijaIniciar las UI de aplicacionespara seleccionar una interfaz deusuario de una aplicación. La interfaz de usuario de la aplicación se abre en una nueva pestañadel navegador y puede tardar algún tiempo en cargarse.

Depuración de Amazon EMR en las ejecuciones de trabajos deEKS con Spark History ServerCuando envía un trabajo ejecutado a un clúster de Amazon EMR en el clúster de EKS, puede acceder alos registros de ese trabajo ejecutado mediante Spark History Server. Spark History Server proporcionaherramientas para supervisar las aplicaciones de Spark, como una lista de etapas y tareas delprogramador, un resumen de los tamaños de RDD y el uso de la memoria e información ambiental. Puedelanzar Spark History Server for Amazon EMR en trabajos de EKS que se ejecutan de las siguientesformas:

104

Page 113: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónInstalación de kernels y bibliotecas

• Cuando envía un trabajo ejecutado mediante Amazon EMR Studio con Amazon EMR en el endpointadministrado de EKS, puede iniciar Spark History Server desde un archivo de bloc de notas en suespacio de trabajo.

• Cuando envía un trabajo ejecutado mediante elAWS CLIoAWSSDK para Amazon EMR en EKS, puedeiniciar Spark History Server desde la interfaz de usuario de EMR Studio.

Para obtener información acerca de cómo utilizar el servidor de historial de Spark, consulteMonitoreoe instrumentaciónen la documentación de Apache Spark. Para obtener más información acerca de lasejecuciones de los trabajos, consulteConceptos y componentesen laAmazon EMR on EKS DevelopmentGuide.

Para iniciar Spark History Server desde un archivo de bloc de notas en el espacio de trabajo deEMR Studio

1. Abra un espacio de trabajo que esté conectado a un Amazon EMR en un clúster de EKS.2. Seleccione y abra el archivo de bloc de notas en el espacio de trabajo.3. ElegirInterfaz de usuario de Sparken la parte superior del archivo de bloc de notas para abrir el

servidor de historial de Spark persistente en una nueva pestaña.

Para iniciar Spark History Server desde la interfaz de usuario de EMR Studio

Note

LaTrabajosen la interfaz de usuario de EMR Studio solo muestra las ejecuciones de trabajo queenvía mediante elAWS CLIoAWSSDK para Amazon EMR en EKS.

1. En tu EMR Studio, seleccionaEMR en EKSen el lado izquierdo de la página.2. Busque Amazon EMR en el clúster virtual de EKS que utilizó para ejecutar su trabajo. Puede filtrar la

lista de clústeres porstatusoIDescribiendo valores en el cuadro de búsqueda.3. Seleccione el clúster para abrir su página de detalles. La página de detalles muestra información sobre

el clúster, como ID, espacio de nombres y estado. La página también muestra una lista de todas lasejecuciones de trabajo enviadas a ese clúster.

4. En la página de detalles del clúster, seleccione un trabajo ejecutado para depurar.5. En la parte superior derecha delTrabajoslista, elijaLanzamiento del servidor de historial de Sparkpara

abrir la interfaz de aplicación en una nueva pestaña del navegador.

Instalación de kernels y bibliotecas en un espacio detrabajo de EMR StudioCada Amazon EMR Studio Workspace viene con un conjunto de bibliotecas y kernels preinstalados.También puede personalizar el entorno de EMR Studio de las siguientes formas cuando utiliza clústeres deEMR que se ejecutan en Amazon EC2:

• Instale los kernels de Jupyter Notebook y las bibliotecas Python en un nodo maestro de clúster— Alinstalar bibliotecas mediante esta opción, todos los espacios de trabajo conectados al mismo clústercomparten esas bibliotecas. Puede instalar kernels o bibliotecas desde una celda de notebook omientras está conectado mediante SSH al nodo maestro de un clúster.

• Usar bibliotecas orientadas al bloc de notas: cuando los usuarios de Workspace instalan y utilizanbibliotecas desde una celda de notebook, esas bibliotecas solo están disponibles para ese bloc denotas. Esta opción permite que los distintos blocs de notas que utilizan el mismo clúster funcionen sinpreocuparse por las versiones de biblioteca conflictivas.

105

Page 114: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónMejora los kernels con comandos mágicos

Los espacios de trabajo de EMR Studio tienen la misma arquitectura subyacente que los portátiles EMR.Puede instalar y utilizar los kernels de Jupyter Notebook y las bibliotecas de Python con EMR Studio delmismo modo que lo haría con los portátiles EMR. Para obtener instrucciones, consulte Instalación y uso dekernels y bibliotecas (p. 131).

Kernels y bibliotecas en Amazon EMR en clústeres de EKSAmazon EMR en clústeres de EKS incluyen el PySpark y los kernels de Python 3.7 con un conjuntode bibliotecas preinstaladas. Amazon EMR en EKS no admite la instalación de bibliotecas o clústeresadicionales.

Cada clúster de Amazon EMR en EKS viene con las siguientes Python y PySpark bibliotecas instaladas:

• Python— boto3, cffi, future, ggplot, jupyter, kubernetes, matplotlib, numpy, pandas, plotly,pycryptodomex, py4j, solicitudes, scikit-learn, scipy, seaborn

• PySpark— ggplot, jupyter, matplotlib, numpy, pandas, plotly, pycryptodomex, py4j, solicitudes, scikit-learn, scipy, seaborn

Mejora los kernels con comandos mágicosLos portátiles EMR Studio y EMR admiten comandos mágicos, que son mejoras proporcionadas por elkernel IPython para ayudar a ejecutar y analizar datos. IPython es un entorno de shell interactivo creadocon Python.

Amazon EMR también admite Sparkmagic, un paquete que proporciona a los kernels relacionados conSpark (kernels PySpark, SparkR y Scala) comandos mágicos específicos y que utiliza Livy en el clústerpara enviar trabajos de Spark.

Puedes usar comandos mágicos siempre que tengas un kernel de Python en tu bloc de notas de EMR. Delmismo modo, cualquier núcleo relacionado con Spark admite comandos de Sparkmagic.

Comandos mágicos, también llamadosmagia, vienen en dos variedades:

• Mágica de línea— Estos comandos mágicos se indican con un solo prefijo de porcentaje y funcionan enuna sola línea de código

• Magia celular— Estos comandos mágicos se indican con un prefijo doble%% y funcionan en variaslíneas de código

Puede encontrar una lista completa de comandos mágicos en elSitio web de IPython. Para obtener másinformación sobre los comandos de Sparkmagic, consulteSparkmagicen el sitio web de GitHub.

Condiciones y limitacionesAmazon EMR en clústeres EKS no admite los comandos de Sparkmagic para EMR Studio. Esto sedebe a que los kernels de Spark utilizados con endpoints administrados están integrados en Kubernetesy Sparkmagic y Livy no admiten. Puede configurar la configuración de Spark directamente en elSparkContext objeto como solución alternativa, como se demuestra en el siguiente ejemplo.

spark.conf.set("spark.driver.maxResultSize", '6g')

AWSno permite los siguientes comandos mágicos debido a problemas de seguridad:

• %alias

• %alias_magic

106

Page 115: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónMejora los kernels con comandos mágicos

• %automagic

• %macro

• Modificación deproxy_usercon%configure• Modificación deKERNEL_USERNAMEcon%envo%set_env

Lista de comandos de magia y SparkmagicUtilice los comandos siguientes para enumerar los comandos mágicos disponibles:

• %lsmagicenumera todas las funciones mágicas disponibles actualmente• %%helpenumera las funciones mágicas relacionadas con Spark disponibles actualmente proporcionadas

por el paquete Sparkmagic

Configure Spark con%%configureUno de los comandos de Sparkmagic más útiles es%%configure, que configura los parámetros decreación de sesión. Uso deconf, puede configurar cualquier configuración de Spark mencionadaenDocumentación de configuración de Spark.

Example Agregar un archivo JAR externo a los EMR Notebooks desde el repositorio de Maven oAmazon S3

Puede utilizar el siguiente método para agregar una dependencia de archivo JAR externa a cualquiernúcleo relacionado con Spark compatible con Sparkmagic.

%%configure -f{"conf": { "spark.jars.packages": "com.jsuereth:scala-arm_2.11:2.0,ml.combust.bundle:bundle-ml_2.11:0.13.0,com.databricks:dbutils-api_2.11:0.0.3", "spark.jars": "s3://DOC-EXAMPLE-BUCKET/my-jar.jar" }}

Example : Configurar Hudi

Puede utilizar el editor de bloc de notas para configurar su bloc de notas EMR de modo que utilice Hudi.

%%configure{ "conf": { "spark.jars": "hdfs://apps/hudi/lib/hudi-spark-bundle.jar,hdfs:///apps/hudi/lib/spark-spark-avro.jar", "spark.serializer": "org.apache.spark.serializer.KryoSerializer", "spark.sql.hive.convertMetastoreParquet":"false" }}

Ejecutar envío de Spark usando%%shLa%%shmagic ejecuta comandos shell en un subproceso de una instancia del clúster adjunto.Normalmente, utilizaría uno de los kernels relacionados con Spark para ejecutar aplicaciones de Sparken el clúster adjunto. Sin embargo, si quieres usar un kernel de Python para enviar una aplicación Spark,puedes usar la siguiente magia, reemplazando el nombre del depósito por el nombre del depósito enminúsculas.

107

Page 116: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónMejora los kernels con comandos mágicos

%%shspark-submit --master yarn --deploy-mode cluster s3://DOC-EXAMPLE-BUCKET/test.py

En este ejemplo, el clúster necesita acceso a la ubicación des3://DOC-EXAMPLE-BUCKET/test.py, oel comando fallará.

Puede utilizar cualquier comando de Linux con el%%shmagia. Si desea ejecutar algún comando de Spark oYARN, utilice una de las siguientes opciones para crear unemr-notebookUsuario de Hadoop y concederpermisos al usuario para ejecutar los comandos:

• Puede crear explícitamente un nuevo usuario ejecutando los siguientes comandos.

hadoop fs -mkdir /user/emr-notebookhadoop fs -chown emr-notebook /user/emr-notebook

• Puede activar la suplantación de usuario en Livy, que crea automáticamente al usuario. Para obtenermás información, consulte Habilitar la suplantación de usuarios para supervisar la actividad del usuario ydel trabajo de Spark (p. 128).

Visualice los marcos de datos de Spark mediante%%displayLa%%displaymagic te permite visualizar rápidamente un marco de datos. Para utilizar esta magia, ejecuteel siguiente comando.

%%display df

Puede elegir si desea ver los resultados en un formato de tabla, tal y como se muestra en la imagensiguiente.

También puede elegir visualizar los datos con cinco tipos de gráficos. Sus opciones incluyen gráficoscirculares, de dispersión, de líneas, de área y de barras.

108

Page 117: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónMejora los kernels con comandos mágicos

Usar las mágicas de EMR NotebooksAmazon EMR proporciona las siguientes mágicas de EMR Notebooks que puede utilizar con los kernelsbasados en Python3 y Spark:

• %mount_workspace_dir- Monta el directorio de Workspace en el clúster para poder importar yejecutar código desde otros archivos del espacio de trabajo

Note

con%mount_workspace_dir, solo el kernel de Python 3 puede acceder a sus sistemas dearchivos locales. Los ejecutores de Spark no tendrán acceso al directorio montado con estenúcleo.

• %umount_workspace_dir- Desmonta el directorio de Workspace del clúster• %generate_s3_download_url- Genera un enlace de descarga temporal en la salida del bloc de

notas para un objeto de Amazon S3

Requisitos previos

Antes de instalar la magia de los EMR Notebooks, realice las tareas siguientes:

• Asegúrese de que suFunción de servicio para instancias EC2 de clúster(perfil de instancia EC2) (p. 322)tiene acceso de lectura para Amazon S3.LaEMR_EC2_DefaultRoleconAmazonElasticMapReduceforEC2Rolela política administradacumple este requisito. Si utiliza un rol o una política personalizados, asegúrese de que tiene los permisosde S3 necesarios.

Note

La magia de los EMR Notebooks se ejecuta en un clúster como usuario de notebook y utilizael perfil de instancia de EC2 para interactuar con Amazon S3. Cuando monta un directorio deWorkspace en un clúster de EMR, todos los blocs de notas de Workspaces y EMR con permisopara asociarse a ese clúster pueden acceder al directorio montado.Los directorios se montan como de solo lectura de forma predeterminada. Mientras ques3fs-fuseygoofyspermitir montajes de lectura-escritura, recomendamos encarecidamente que nomodifique los parámetros de montaje para montar directorios en modo de lectura-escritura. Sipermite el acceso de escritura, los cambios realizados en el directorio se escriben en el bucketde S3. Para evitar la eliminación o la sobrescritura accidentales, puede habilitar el control deversiones para su bucket de S3. Para obtener más información, consulteUsar el control deversiones en buckets de S3.

109

Page 118: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónMejora los kernels con comandos mágicos

• Ejecute uno de los siguientes scripts en el clúster para instalar las dependencias de la magia de los EMRNotebooks. Para ejecutar un guión, puedesUtilizar acciones de arranque personalizadas (p. 212)o sigalas instrucciones enEjecución de comandos y scripts en un clúster de Amazon EMRcuando ya tiene unclúster en ejecución.

Puede elegir qué dependencia desea instalar. Ambosfusible s3fs-ybobacososson herramientas FUSE(sistema de archivos en el espacio de usuario) que le permiten montar un bucket de Amazon S3como sistema de archivos local en un clúster. Las3fsproporciona una experiencia similar a POSIX.Lagoofyses una buena opción cuando prefiere el rendimiento en lugar de un sistema de archivoscompatible con POSIX.

#!/bin/sh

# Install the s3fs dependency for EMR Notebooks magicssudo amazon-linux-extras install epel -ysudo yum install s3fs-fuse -y

O BIEN

#!/bin/sh

# Install the goofys dependency for EMR Notebooks magicssudo wget https://github.com/kahing/goofys/releases/latest/download/goofys -P /usr/bin/sudo chmod ugo+x /usr/bin/goofys

Instale las magias EMR Notebooks blocs de notas de

Complete los pasos que se describen a continuación para instalar la magia de EMR Notebooks.

1. En el bloc de notas, ejecute el siguiente comando para instalar elemr-notebooks-magicspaquete.

%pip install emr-notebooks-magics

2. Reinicia el kernel para cargar la magia de los EMR Notebooks.3. Verifique la instalación con el siguiente comando, que debería mostrar el texto de ayuda de salida

para%mount_workspace_dir.

%mount_workspace_dir?

Montar un directorio de espacio de trabajo con%mount_workspace_dir

La%mount_workspace_dirmagic le permite montar el directorio de Workspace en el clúster de EMRpara que pueda importar y ejecutar otros archivos, módulos o paquetes almacenados en el directorio.

En el siguiente ejemplo se monta todo el directorio Workspace en un clúster y se especifica la opción<--fuse-type>para utilizar goofys para montar el directorio.

%mount_workspace_dir . <--fuse-type goofys>

Para comprobar que el directorio de Workspace está montado, utilice el siguiente ejemplo para mostrar eldirectorio de trabajo actual con ellscomando. La salida debe mostrar todos los archivos de su espacio detrabajo.

%%sh

110

Page 119: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUtilizar cuadernos multilingües con los kernels de Spark

ls

Cuando haya terminado de realizar cambios en el espacio de trabajo, puede desmontar el directorioWorkspace con el siguiente comando.

Note

El directorio de Workspace permanece montado en el clúster incluso cuando el espacio de trabajoestá detenido o desconectado. Debe desmontar explícitamente el directorio de Workspace.

%umount_workspace_dir

Descargue un objeto de Amazon S3 con%generate_s3_download_url

Lagenerate_s3_download_urlcrea una URL prefirmada para un objeto almacenado en AmazonS3. Puede utilizar la URL prefirmada para descargar el objeto en el equipo local. Por ejemplo, podríaejecutargenerate_s3_download_urlpara descargar el resultado de una consulta SQL que el códigoescribe en Amazon S3.

La URL prefirmada es válida durante 60 minutos de forma predeterminada. Puede cambiar el tiempo decaducidad especificando varios segundos para el--expires-inbandera. Por ejemplo,--expires-in1800crea una URL válida durante 30 minutos.

En el ejemplo siguiente se genera un enlace de descarga para un objeto especificando la ruta completa deAmazon S3:s3://EXAMPLE-DOC-BUCKET/path/to/my/object.

%generate_s3_download_url s3://EXAMPLE-DOC-BUCKET/path/to/my/object

Para obtener más información sobre el uso degenerate_s3_download_url, ejecute el siguientecomando para mostrar el texto de ayuda.

%generate_s3_download_url?

Utilizar cuadernos multilingües con los kernels deSparkCada kernel de cuaderno Jupyter tiene un idioma predeterminado. Por ejemplo, el idioma predeterminadodel kernel de Spark es Scala y PySpark el lenguaje predeterminado de kernels es Python. Con AmazonEMR 6.4.0 y versiones posteriores, EMR Studio admite portátiles multilingües. Esto significa que cadanúcleo de EMR Studio puede admitir los siguientes idiomas además del idioma predeterminado: Python,Spark, R y Spark SQL.

Para activar esta función, especifique uno de los siguientes comandos mágicos al principio de cualquiercelda.

Lenguaje Comando

Python %%pyspark

Scala %%scalaspark

R %%rspark

Spark SQL %%sql

111

Page 120: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUtilizar cuadernos multilingües con los kernels de Spark

Cuando se invocan, estos comandos ejecutan toda la celda dentro de la misma sesión de Spark utilizandoel intérprete del idioma correspondiente.

La%%pysparkcell magic permite a los usuarios escribir PySpark código en todos los kernels de Spark.

%%pysparka = 1

La%%sqlcell magic permite a los usuarios ejecutar código Spark-SQL en todos los kernels de Spark.

%%sqlSHOW TABLES

La%%rsparkcell magic permite a los usuarios ejecutar código SparkR en todos los kernels de Spark.

%%rsparka <- 1

La%%scalasparkcell magic permite a los usuarios ejecutar código Spark Scala en todos los kernels deSpark.

%%scalasparkval a = 1

Compartir datos entre intérpretes de idiomas con tablastemporalesTambién puede compartir datos entre intérpretes de idiomas mediante tablas temporales. El siguienteejemplo utiliza%%pysparken una celda para crear una tabla temporal en Python y utiliza%%scalasparkenla siguiente celda para leer datos de esa tabla en Scala.

%%pysparkdf=spark.sql("SELECT * from nyc_top_trips_report LIMIT 20")# create a temporary table called nyc_top_trips_report_view in pythondf.createOrReplaceTempView("nyc_top_trips_report_view")

%%scalaspark// read the temp table in scalaval df=spark.sql("SELECT * from nyc_top_trips_report_view")df.show(5)

112

Page 121: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConsideraciones

Cuadernos de EMRPuede utilizar los portátiles de Amazon EMR junto con clústeres de Amazon EMR en ejecuciónApacheSparkcrear y abrirJupyterInterfaces Notebook y JupyterLab dentro de la consola de Amazon EMR. Un blocde notas de EMR es un bloc de notas «sin servidor» que puede utilizar para ejecutar consultas y código.A diferencia de un bloc de notas tradicional, el contenido de un bloc de notas de EMR (las ecuaciones,las consultas, los modelos, el código y el texto narrativo de las celdas del bloc de notas) se ejecutan enun cliente. 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 por separado de los datos del clúster para mayor durabilidad yflexibilidad en la reutilización

Puede iniciar un clúster, asociar un bloc de notas de EMR para análisis y, a continuación, terminar elclú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.

También puede ejecutar un portátil EMR mediante programación mediante la API de EMR, sin necesidadde interactuar con la consola de EMR («ejecución sin cabeza»). Debe incluir una celda en el bloc denotas de EMR que tenga una etiqueta de parámetros. Esta celda permite que un script pase nuevosvalores de entrada al bloc de notas. Los cuadernos parametrizados se pueden reutilizar con distintosconjuntos de valores de entrada. No es necesario hacer copias del mismo bloc de notas para editar yejecutar con nuevos valores de entrada. EMR crea y guarda el bloc de notas de salida en S3 para cadaejecución del bloc de notas parametrizado. Para obtener ejemplos de código de API de blocs de notas deEMRComandos de ejemplo para ejecutar EMR Notebooks mediante programación (p. 121).

Important

EMR Notebooks son compatibles con clústeres creados con Amazon EMR 5.18.0 y versionesposteriores. Recomendamos encarecidamente que utilice EMR Notebooks con clústerescreados con la última versión de Amazon EMR, en particular, en las versiones 5.30.0, 5.32.0 yposterior, o 6.2.0 y posterior. Con estas versiones, 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 de capacidades por versión declúster (p. 114).

Se aplican cargos aplicables al almacenamiento de Amazon S3 y a los clústeres de Amazon EMR.

Consideraciones acerca del uso de los EMRNotebooks

Tenga en cuenta los siguientes requisitos al crear clústeres y desarrollar soluciones con el bloc de notas deEMR.

Requisitos de• Habilitar 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 autorizados puedan acceder al clúster.

113

Page 122: Amazon EMR - Guía de administración

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

Recomendamos encarecidamente que deje habilitado el acceso público de bloqueo y que limite el tráficoSSH entrante solo a fuentes de confianza. Para obtener más información, consulte Usar Amazon EMRbloquear el acceso público (p. 465) y Controlar el tráfico de red con grupos de seguridad (p. 453).

• Utilizar un clúster compatible— Un clúster asociado a un bloc de notas debe cumplir los requisitossiguientes:• Solo se admiten los clústeres creados con Amazon EMR. Puede crear un clúster de forma

independiente dentro de Amazon EMR y, a continuación asociar un bloc de notas de EMR o puedecrear un clúster compatible al crear un bloc de notas de EMR.

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

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

• Los EMR Notebooks solo funcionan con clústeres creados conVisibleToAllUsersestablecidoentrue.VisibleToAllUsersestruede forma predeterminada.

• 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 los EMR Notebooks solo admiten actualmente clústeres Spark.

Important

Para las versiones 5.32.0 y posteriores de EMR, o 6.2.0 y posteriores, el clúster tambiéndebe ejecutar la aplicación Jupyter Enterprise Gateway para poder trabajar con los EMRNotebooks.

• 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.• Clústeres que utilizan instancias de Amazon EC2 basados enAWSGraviton2 no se admite.

Diferencias de capacidades por versión de clústerRecomendamos encarecidamente que utilice EMR Notebooks de notas de EMR con clústeres creadoscon versiones 5.30.0, 5.32.0 o posterior, o 6.2.0 o posterior. Con estas versiones, los EMR Notebooksejecutan 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 EMR Notebooks con estas versiones de clústertiene las siguientes ventajas:

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

• Posibilidad de añadir y personalizar kernels— Puede conectarse al clúster para instalar paquetesde kernel mediantecondaypip. 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 Python en un nodo maestro de clúster (p. 131).

• Posibilidad de instalar bibliotecas Python— Puedeinstalar bibliotecas Python en el nodo maestrodel clúster (p. 131)concondaypip. Recomendamos utilizar conda. Con versiones anteriores,solobibliotecas adaptadas al bloc de notas (p. 133)para PySpark Compatible con.

114

Page 123: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLímites para los EMR Notebooks

conectados simultáneamente

Funciones de EMR Notebooks compatibles por 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 Los EMR Notebooks no son compatibles

5.18.0—5.25.0 No No No

5.26.0—5.29.0 Sí (p. 133) No No

5.30.0 Sí (p. 133) Sí (p. 131) Sí (p. 131)

6.0.0 No No No

5.32.0 y posteriores, y6.2.0 y posteriores

Sí (p. 133) Sí (p. 131) Sí (p. 131)

Límites para los EMR Notebooks conectadossimultáneamenteCuando 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 de nodo maestro Número de EMR Notebooks

*.medium 2

*.large 4

*.xlarge 8

*.2xlarge 16

*.4xlarge 24

*.8xlarge 24

*.16xlarge 24

Versión de blocs de notas de Jupyter y PythonEMR Notebooks se ejecutaJupyter Notebook versión 6.0.2y Python 3.6.5 independientemente de la versiónde Amazon EMR del clúster asociado.

Si especifica una ubicación cifrada en Amazon S3 para almacenar archivos de bloc de notas, debeconfigurar laFunción de servicio para los EMR Notebooks (p. 327)como usuario clave. El rol deservicio predeterminado es EMR_Notebooks_DefaultRole. Si utiliza unAWS KMSclave paracifrado, consulteUso de políticas de claves enAWSKMSen laAWS Key Management ServiceGuía paradesarrolladores deartículo de soporte para agregar usuarios clave.

115

Page 124: Amazon EMR - Guía de administración

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

Creación de un bloc de notasPuede crear un bloc de notas EMR mediante la consola de Amazon EMR. Creación de blocs de notasmediante elAWS CLIo no se admite la API de Amazon EMR.

Para crear un bloc de notas de EMR

1. Abra la consola de Amazon EMR enhttps://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 al que desea asociar el bloc de notas, deje el valor predeterminadoElija un

clúster existenteseleccionado, haga clic enElegir, seleccione un clúster en la lista y, a continuación,haga clic enSeleccionar clúster. Para obtener información sobre los requisitos de clúster para los EMRNotebooks, consulteConsideraciones acerca del uso de los EMR Notebooks (p. 113).

—o bien—

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 última versión de Amazon EMR (5.36.0).

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 seutiliza para el nodo maestro. El resto se utilizapara nodos principales. El tipo de instanciadetermina el número de blocs de notas que sepueden asociar simultáneamente al clúster.Para obtener más información, consulteLímites para los EMR Notebooks conectadossimultáneamente (p. 115).

Rol de EMR Deje el valor predeterminado o elija el enlacepara especificar un rol de servicio personalizadopara Amazon EMR. Para obtener másinformación, consulte Función de servicio paraAmazon EMR (rol EMR) (p. 316).

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 Función de servicio parainstancias EC2 de clúster (perfil de instanciaEC2) (p. 322).

116

Page 125: Amazon EMR - Guía de administración

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

Opción Descripción

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 Connect al nodomaestro utilizando SSH (p. 519).

Terminación automática La terminación automática es compatiblecon Amazon EMR versiones 5.30.0 y 6.1.0 yposteriores.

Active la casilla de verificación para habilitarla terminación automática y, a continuación,especifique la cantidad de tiempo deinactividad tras el cual el clúster debeapagarse automáticamente. Para obtener másinformación, consulte Uso de una política determinación automática (p. 188).

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 para los EMR Notebooks” (p. 463).

6. ParaAWSRol de servicio de, deje el valor predeterminado o elija un rol personalizado en la lista. Lainstancia de cliente para el bloc de notas utiliza este rol. Para obtener más información, consulteFunción de servicio para los EMR Notebooks (p. 327).

7. ParaUbicación del blocelija la ubicación de Amazon S3 en la que se guarda el archivo del bloc denotas o especifique su propia ubicación. Si el bucket y la carpeta no existen, Amazon EMR los crea.

Amazon EMR crea una carpeta con elID de bloccomo nombre de carpeta y guarda el bloc de notas enun archivo denominadoNotebookName.ipynb. Por ejemplo, si especifica la ubicación de AmazonS3s3://MyBucket/MyNotebookspara un bloc de notas llamadoMyFirstEMRManagedNotebook,el archivo de bloc de notas se guarda ens3://MyBucket/MyNotebooks/NotebookID/MyFirstEMRManagedNotebook.ipynb.

Si especifica una ubicación cifrada en Amazon S3, debe configurar elFunción de serviciopara los EMR Notebooks (p. 327)como usuario clave. El rol de servicio predeterminado esEMR_Notebooks_DefaultRole. Si utiliza unAWS KMSclave para cifrado, consulteUso de políticasde claves enAWSKMSen laAWS Key Management ServiceGuía para desarrolladores deartículo desoporte para agregar usuarios clave.

8. Opcionalmente, si ha agregado un repositorio basado en GIT a Amazon EMR que desea asociar coneste bloc de notas, elijaRepositorio Git, seleccioneElija un repositorioy, a continuación, seleccione unrepositorio de la lista. Para obtener más información, consulte Asociación de repositorios basados enGit con EMR Notebooks (p. 134).

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 Uso de etiquetas de clústery Notebook con políticas de IAM para control de acceso (p. 311).

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

117

Page 126: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de los EMR Notebooks

Uso de los EMR NotebooksDespués de crear un bloc de notas 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 del estado del blocUn bloc de notas de EMR puede tener los siguientesEstadoen laBloc de notaslista.

Estado Significado

Ready 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 El bloc de notas se está creando y asociando alclúster. Mientras se inicia un bloc de notas, no sepuede abrir el editor de blocs de notas, detenerlo,eliminarlo ni cambiar de clúster.

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 listade clústeres disponibles. El archivo denotebook,NotebookName.ipynb permanece enAmazon S3 y continúa acumulando los cargos dealmacenamiento correspondientes.

118

Page 127: Amazon EMR - Guía de administración

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

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

Con los blocs de notas EMR, el editor de blocs de notas al que se obtiene acceso desde la consola deAmazon EMR es el conocido editor de blocs de notas de Jupyter de código abierto o JupyterLab. Dadoque el editor de blocs de notas se inicia en la consola de Amazon EMR, resulta más eficaz configurar elacceso que con 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 bloc de notas EMR a la vez desde Amazon EMR. Si otro usuario intentaabrir un bloc de notas 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, quees válida únicamente durante un breve período. Le recomendamos que no comparten la URL deleditor de bloc de notas. De hacerlo se crea un riesgo de seguridad ya que los destinatarios dela URL adoptan sus permisos para editar el bloc de notas y ejecutar el código del bloc de notasdurante la vida útil de la URL. Si otras personas necesitan acceso a un bloc de notas, proporcionepermisos a su usuario de IAM mediante políticas de permisos y asegúrese de que la función deservicio de los EMR Notebooks tenga acceso a la ubicación de Amazon S3. Para obtener másinformación, consulte the section called “Seguridad” (p. 130) y Función de servicio para los EMRNotebooks (p. 327).

Para abrir el editor de blocs de notas 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).

La pestaña nueva del navegador se abre en JupyterLab o editor de cuadernos Jupyter.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.

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. Desde elArchivomenú, elijaGuardar y punto decomprobacióno presione CTRL+S. Esto crea un archivo denominadoNotebookName.ipynbenunpuntos de controlcarpeta dentro de la carpeta del bloc de notas en Amazon S3. Por ejemplo,s3://MyBucket/MyNotebookFolder/NotebookID/checkpoints/NotebookName.ipynb. En estaubicación, solo se guarda el archivo de punto de comprobación más reciente.

119

Page 128: Amazon EMR - Guía de administración

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

Cambio de clústerPuede cambiar el clúster al que está asociado un bloc de notas de EMR sin cambiar el contenido delpropio bloc 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 bloc de notas 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 de (p. 113).

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).

Eliminación de blocs de notas y archivos de blocsAl eliminar un bloc de notas de EMR mediante la consola de Amazon EMR, se elimina el bloc de notas dela lista de blocs de notas disponibles. Sin embargo, los archivos de blocs de notas permanecen en AmazonS3 y continúan acumulando cargos de almacenamiento.

Para eliminar un bloc de notas y sus archivos asociados

1. Abra la consola de Amazon EMR enhttps://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 Eliminar (Delete).

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

usuario de Amazon Simple Storage Service. Vaya al bucket y la carpeta del paso 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 elAWS CLIse configura con las claves de acceso de un usuario que tenga permisospara eliminar la ubicación de Amazon S3. Para obtener más información, consulte Configuración deAWS CLI en la Guía del usuario de AWS Command Line Interface.

aws s3 rm s3://MyNotebookLocationPath/NotebookID

120

Page 129: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso compartido de archivos de bloc

Uso compartido de archivos de blocCada bloc de notas EMR se guarda en Amazon S3 como un archivo denominadoNotebookName.ipynb.Siempre que un archivo de bloc de notas sea compatible con la misma versión de Jupyter Notebook en laque se basa el bloc de EMR Notebooks, puede abrir el bloc de notas como un bloc de notas de EMR.

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

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 bloc de notas 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 bloc de notas de EMR.

2. Cree un bloc de notas de EMR e introduzca un nombre para él. El nombre que escriba para el bloc denotas será el nombre del archivo que necesita reemplazar. El nombre de archivo nuevo debe coincidirexactamente con el nombre de este archivo.

3. Anote la ubicación en Amazon S3 que elija para el bloc de notas. El archivo que va a sustituirestá 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.

Los siguientes ejemplos deAWS CLIpara Amazon S3 reemplaza un archivo guardado enun equipo local denominadoSharedNotebook.ipynbpara un bloc de notas EMR con elnombreMyNotebook, un ID dee-12A3BCDEFJHIJKLMNO45PQRST, y creado conMyBucket/MyNotebooksFolderespecificado en Amazon S3. Para obtener información sobre cómo utilizar laconsola de Amazon S3 para copiar y reemplazar archivos, consulteCargar, descargar y administrarobjetos.en laGuía del usuario de Amazon Simple Storage Service.

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

Comandos de ejemplo para ejecutar EMRNotebooks mediante programación

Las API de ejecución de EMC Notebook están disponibles para ejecutar blocs de notas EMR medianteun script o una línea de comandos. La capacidad de iniciar, detener, enumerar y describir las ejecucionesde bloc de notas EMR sin elAWSconsole le permite controlar mediante programación un bloc de notasEMR. Mediante una celda de bloc de notas parametrizada, puede pasar distintos valores de parámetros aun bloc de notas sin tener que crear una copia del bloc de notas para cada nuevo conjunto de valores deparámetros. ConsulteAcciones de API de EMR.

La ejecución del bloc de notas de EMR se puede programar o agrupar por lotes CloudWatch eventosyAWS Lambda. ConsulteUso deAWS Lambdacon Amazon CloudWatch Eventos

En esta sección se proporcionan varios ejemplos de ejecución programática de bloc de notas EMRmediante elAWS CLI, SDK de Boto3 (Python) y Ruby.

121

Page 130: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de comandos de la CLI

Ejemplos de comandos de CLI de ejecución de portátiles (p. 122)

Ejemplos de Python de ejecución de notebook (p. 125)

Ejecución de portátiles Muestras Ruby (p. 127)

También puede ejecutar notebooks parametrizados como parte de flujos de trabajo programados medianteuna herramienta de orquestación como Apache Airflow o Amazon Managed Workflows for Apache Airflow.Para obtener más información, consulteOrquestación de trabajos de análisis en EMR Notebooks medianteMWAAen laAWSBlog de Big Data.

Limitaciones:

• Se permite un máximo de 100 ejecuciones simultáneas por región y cuenta.• Una ejecución finaliza si se ejecuta durante más de 30 días.

Ejemplos de comandos de CLI de ejecución deportátilesA continuación se muestra un ejemplo de la demostración del cuaderno EMR visto desde la consolade portátiles de EMR. El bloc de notas que se va a ejecutar se encuentra utilizando la ruta de archivorelativa al directorio principal. En este ejemplo, hay dos archivos de bloc de notas que se pueden ejecutar:demo_pyspark.ipynb y my_folder/python3.ipynb.

La ruta relativa del archivodemo_pyspark.ipynbesdemo_pyspark.ipynb, que se muestra acontinuación.

La ruta relativa depython3.ipynbesmy_folder/python3.ipynb, que se muestra a continuación.

Para obtener más información acerca de la API de EMR NotebookExecution acciones, consulte Accionesde la API de EMR.

Ejecutar un cuadernoPuede utilizar elAWS CLIpara ejecutar el bloc de notas utilizando elstart-notebook-executionacción,como demuestra el siguiente ejemplo.

aws emr --region us-east-1 \start-notebook-execution \--editor-id e-BKTM2DIHXBEDRU44ANWRKIU8N \--notebook-params '{"input_param":"my-value", "good_superhero":["superman", "batman"]}' \--relative-path test.ipynb \--notebook-execution-name my-execution \

122

Page 131: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de comandos de la CLI

--execution-engine '{"Id" : "j-2QMOV6JAX1TS2"}' \--service-role EMR_Notebooks_DefaultRole { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE"}

Salida de bloc de notasEsta es la salida de un bloc de notas de ejemplo. La celda [3] muestra los valores de los parámetros reciéninyectados.

Describir un blocPuede utilizar eldescribe-notebook-executionacción para acceder a la información sobre laejecución de un bloc de notas específico.

aws emr --region us-east-1 \describe-notebook-execution --notebook-execution-id ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE { "NotebookExecution": { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "ExecutionEngine": { "Id": "j-2QMOV6JAX1TS2", "Type": "EMR", "MasterInstanceSecurityGroupId": "sg-05ce12e58cd4f715e" }, "NotebookExecutionName": "my-execution", "NotebookParams": "{\"input_param\":\"my-value\", \"good_superhero\":[\"superman\", \"batman\"]}", "Status": "FINISHED", "StartTime": 1593490857.009, "Arn": "arn:aws:elasticmapreduce:us-east-1:123456789012:notebook-execution/ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "LastStateChangeReason": "Execution is finished for cluster j-2QMOV6JAX1TS2.", "NotebookInstanceSecurityGroupId": "sg-0683b0a39966d4a6a", "Tags": []

123

Page 132: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de comandos de la CLI

}}

Cómo detener un cuadernoSi el bloc de notas ejecuta una ejecución que le gustaría detener, puede hacerlo con lastop-notebook-executioncomando.

# stop a running executionaws emr --region us-east-1 \stop-notebook-execution --notebook-execution-id ex-IZWZX78UVPAATC8LHJR129B1RBN4T # describe itaws emr --region us-east-1 \describe-notebook-execution --notebook-execution-id ex-IZWZX78UVPAATC8LHJR129B1RBN4T { "NotebookExecution": { "NotebookExecutionId": "ex-IZWZX78UVPAATC8LHJR129B1RBN4T", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "ExecutionEngine": { "Id": "j-2QMOV6JAX1TS2", "Type": "EMR" }, "NotebookExecutionName": "my-execution", "NotebookParams": "{\"input_param\":\"my-value\", \"good_superhero\":[\"superman\", \"batman\"]}", "Status": "STOPPED", "StartTime": 1593490876.241, "Arn": "arn:aws:elasticmapreduce:us-east-1:123456789012:editor-execution/ex-IZWZX78UVPAATC8LHJR129B1RBN4T", "LastStateChangeReason": "Execution is stopped for cluster j-2QMOV6JAX1TS2. Internal error", "Tags": [] }}

Listar las ejecuciones de un bloc de notas por hora de inicioPuedes pasar un--fromparámetro alist-notebook-executionspara enumerar las ejecuciones de subloc de notas por hora de inicio.

# filter by start time aws emr --region us-east-1 \ list-notebook-executions --from 1593400000.000 { "NotebookExecutions": [ { "NotebookExecutionId": "ex-IZWZX78UVPAATC8LHJR129B1RBN4T", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "STOPPED", "StartTime": 1593490876.241 }, { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "RUNNING", "StartTime": 1593490857.009

124

Page 133: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónScript de ejemplo del SDK de Boto3

}, { "NotebookExecutionId": "ex-IZWZYRS0M14L5V95WZ9OQ399SKMNW", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "STOPPED", "StartTime": 1593490292.995 }, { "NotebookExecutionId": "ex-IZX009ZK83IVY5E33VH8MDMELVK8K", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FINISHED", "StartTime": 1593489834.765 }, { "NotebookExecutionId": "ex-IZWZXOZF88JWDF9J09GJ91R57VI0N", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FAILED", "StartTime": 1593488934.688 } ]}

Enumerar las ejecuciones de un bloc de notas por hora de inicioy estadoLalist-notebook-executionstambién puede tomar un--statusparámetro para filtrar los resultados.

# filter by start time and status aws emr --region us-east-1 \ list-notebook-executions --from 1593400000.000 --status FINISHED{ "NotebookExecutions": [ { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FINISHED", "StartTime": 1593490857.009 }, { "NotebookExecutionId": "ex-IZX009ZK83IVY5E33VH8MDMELVK8K", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FINISHED", "StartTime": 1593489834.765 } ]}

Ejemplos de Python de ejecución de notebookEl siguiente ejemplo de código es un SDK for Python (Boto3) denominadodemo.pyque muestra las API deejecución del bloc de notas.

Para obtener información acerca de la API de EMR NotebookExecution acciones, consulteAcciones de APIde EMR.

import boto3,time

125

Page 134: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónScript de ejemplo del SDK de Boto3

emr = boto3.client( 'emr', region_name='us-west-1') start_resp = emr.start_notebook_execution( EditorId='e-40AC8ZO6EGGCPJ4DLO48KGGGI', RelativePath='boto3_demo.ipynb', ExecutionEngine={'Id':'j-1HYZS6JQKV11Q'}, ServiceRole='EMR_Notebooks_DefaultRole')

execution_id = start_resp["NotebookExecutionId"]print(execution_id)print("\n") describe_response = emr.describe_notebook_execution(NotebookExecutionId=execution_id) print(describe_response)print("\n") list_response = emr.list_notebook_executions()print("Existing notebook executions:\n")for execution in list_response['NotebookExecutions']: print(execution) print("\n") print("Sleeping for 5 sec...")time.sleep(5) print("Stop execution " + execution_id)emr.stop_notebook_execution(NotebookExecutionId=execution_id)describe_response = emr.describe_notebook_execution(NotebookExecutionId=execution_id)print(describe_response)print("\n")

Esta es la salida de la ejecucióndemo.py.

ex-IZX56YJDW1D29Q1PHR32WABU2SAPK {'NotebookExecution': {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'ExecutionEngine': {'Id': 'j-1HYZS6JQKV11Q', 'Type': 'EMR'}, 'NotebookExecutionName': '', 'Status': 'STARTING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal()), 'Arn': 'arn:aws:elasticmapreduce:us-west-1:123456789012:notebook-execution/ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'LastStateChangeReason': 'Execution is starting for cluster j-1HYZS6JQKV11Q.', 'Tags': []}, 'ResponseMetadata': {'RequestId': '70f12c5f-1dda-45b7-adf6-964987d373b7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '70f12c5f-1dda-45b7-adf6-964987d373b7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '448', 'date': 'Wed, 19 Aug 2020 00:49:22 GMT'}, 'RetryAttempts': 0}} Existing notebook executions: {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'STARTING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5ABS5PR1E5AHMFYEMX3JJIORRB', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'RUNNING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 48, 36, 373000, tzinfo=tzlocal())}

126

Page 135: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplo de script de Ruby

{'NotebookExecutionId': 'ex-IZX5GLVXIU1HNI8BWVW057F6MF4VE', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 45, 14, 646000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 46, 26, 543000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5CV8YDUO8JAIWMXN2VH32RUIT1', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 43, 5, 807000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 44, 31, 632000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5AS0PPW55CEDEURZ9NSOWSUJZ6', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 42, 29, 265000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 43, 48, 320000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX57YF5Q53BKWLR4I5QZ14HJ7DRS', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 38, 37, 81000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 40, 39, 646000, tzinfo=tzlocal())} Sleeping for 5 sec...Stop execution ex-IZX56YJDW1D29Q1PHR32WABU2SAPK{'NotebookExecution': {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'ExecutionEngine': {'Id': 'j-1HYZS6JQKV11Q', 'Type': 'EMR'}, 'NotebookExecutionName': '', 'Status': 'STOPPING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal()), 'Arn': 'arn:aws:elasticmapreduce:us-west-1:123456789012:notebook-execution/ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'LastStateChangeReason': 'Execution is being stopped for cluster j-1HYZS6JQKV11Q.', 'Tags': []}, 'ResponseMetadata': {'RequestId': '2a77ef73-c1c6-467c-a1d1-7204ab2f6a53', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2a77ef73-c1c6-467c-a1d1-7204ab2f6a53', 'content-type': 'application/x-amz-json-1.1', 'content-length': '453', 'date': 'Wed, 19 Aug 2020 00:49:30 GMT'}, 'RetryAttempts': 0}}

Ejecución de portátiles Muestras RubyA continuación se muestran ejemplos de código de Ruby que demuestran el uso de la API de ejecución denotebook.

# prepare an EMR client

emr = Aws::EMR::Client.new( region: 'us-east-1', access_key_id: 'AKIA...JKPKA', secret_access_key: 'rLMeu...vU0OLrAC1',)

Inicio de la ejecución del bloc de notas y obtención del idEn este ejemplo, el editor de S3 y el bloc de notas EMR sons3://mybucket/notebooks/e-EA8VGAA429FEQTC8HC9ZHWISK/test.ipynb.

Para obtener información acerca de la API de EMR NotebookExecution acciones, consulteAcciones de APIde EMR.

start_response = emr.start_notebook_execution({ editor_id: "e-EA8VGAA429FEQTC8HC9ZHWISK", relative_path: "test.ipynb", execution_engine: {id: "j-3U82I95AMALGE"},

127

Page 136: Amazon EMR - Guía de administración

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

service_role: "EMR_Notebooks_DefaultRole",})

notebook_execution_id = start_resp.notebook_execution_id

Descripción de la ejecución del bloc de notas e impresión de losdetallesdescribe_resp = emr.describe_notebook_execution({ notebook_execution_id: notebook_execution_id})puts describe_resp.notebook_execution

El resultado de los comandos anteriores será el siguiente.

{:notebook_execution_id=>"ex-IZX3VTVZWVWPP27KUB90BZ7V9IEDG", :editor_id=>"e-EA8VGAA429FEQTC8HC9ZHWISK",:execution_engine=>{:id=>"j-3U82I95AMALGE", :type=>"EMR", :master_instance_security_group_id=>nil}, :notebook_execution_name=>"", :notebook_params=>nil, :status=>"STARTING", :start_time=>2020-07-23 15:07:07 -0700, :end_time=>nil, :arn=>"arn:aws:elasticmapreduce:us-east-1:123456789012:notebook-execution/ex-IZX3VTVZWVWPP27KUB90BZ7V9IEDG", :output_notebook_uri=>nil, :last_state_change_reason=>"Execution is starting for cluster j-3U82I95AMALGE.", :notebook_instance_security_group_id=>nil, :tags=>[]}

Filtros de cuad

"EditorId": "e-XXXX", [Optional]"From" : "1593400000.000", [Optional]"To" :

Detener la ejecución del bloc

stop_resp = emr.stop_notebook_execution({ notebook_execution_id: notebook_execution_id})

Habilitar la suplantación de usuarios parasupervisar la actividad del usuario y del trabajo deSpark

EMR Notebooks le permiten 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 propio

128

Page 137: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de la suplantación de usuario de Spark

editor de blocs de notas. Además, los EMR Notebooks tienen un widget de Jupyter Notebook para verlos 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 de historial, el cliente debe configurarse para ver las interfaces web deAmazon EMR que se alojan en el nodo maestro.

Configuración de la suplantación de usuario de SparkDe forma predeterminada, los trabajos de Spark que los usuarios envían mediante el editor de blocs denotas parecen proceder de una identidad de usuario de livy indefinida. Puede configurar la suplantaciónde usuarios para dicho clúster de forma que estos trabajos se asocien a la identidad de usuario de IAM queejecutó el código. Se crean directorios de usuario de HDFS en el nodo principal para cada identidad deusuario que ejecuta código en el bloc de notas. Por ejemplo, si el usuario NbUser1 ejecuta código desdeel editor de blocs de notas, puede conectarse con el nodo principal y comprobar que hadoop fs -ls /user muestra el directorio /user/user_NbUser1.

Para habilitar esta característica, establezca las propiedades de las clasificaciones de configuracióncore-site y livy-conf. Esta característica no está disponible de forma predeterminada si se indica aAmazon EMR crear 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, consulteConfiguración de aplicacionesenlaGuía de publicación de Amazon EMR.

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

[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*" } }, { "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. 524). 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 los archivos de registro archivados en Amazon S3 (p. 489).

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

129

Page 138: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSeguridad

Seguridad y control de acceso de los portátilesEMR

Dispone de varias características que le pueden ayudar a personalizar la postura de seguridad de los EMRNotebooks. Esto ayuda a garantizar que solo los usuarios autorizados tengan acceso a un bloc de notasde EMR, pueden trabajar con 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. 274).

• 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 Clavesde condición (p. 311) y Ejemplos de instrucciones de políticas basadas en identidades para EMRNotebooks (p. 361).

• 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 EMR Notebooks (p. 463).

130

Page 139: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónInstalación y uso de kernels y bibliotecas

• Especifica unAWSFunción de servicio que determina los permisos de un bloc de notas de EMR alinteractuar con los demásAWSServicios de . Para obtener más información, consulte Función de serviciopara los EMR Notebooks (p. 327).

Instalación y uso de kernels y bibliotecasCada bloc de notas 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ónsobre cómo configurar el acceso externo para diferentes configuraciones de red, consulteEscenarios yejemplosen laAmazon VPC User Guide.

Instalación de kernels y bibliotecas Python en un nodomaestro de clústerCon Amazon EMR versión 5.30.0 y posterior, excepto 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 bloc de notas 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.

Note

Para las versiones 5.30.1, 5.31.0 y 6.1.0 de EMR, debe seguir pasos adicionales para instalarkernels y bibliotecas en el nodo maestro de un clúster.Para habilitar la función, haga lo siguiente:

1. Asegúrese de que la política de permisos asociada al rol de servicio de los EMR Notebookspermite la siguiente acción:

elasticmapreduce:ListSteps

Para obtener más información, consulteFunción de servicio para los EMR Notebooks.2. UsarAWS CLIpara ejecutar un paso en el clúster que establece EMR Notebooks como se

muestra en el siguiente ejemplo. Debe utilizar el nombre del pasoEMRNotebooksSetup.Reemplazarus-east-1con la región en la que reside el clúster. Para obtener más información,consulteAñadir pasos a un clúster deAWS CLI.

aws emr add-steps --cluster-id MyClusterID --steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]

Puede instalar kernels y bibliotecas mediantepipocondaen la/emr/notebook-env/binen el nodomaestro.

Example — Instalación de bibliotecas de Python

Desde el kernel de Python3, ejecute el%pipmagic como un comando desde una celda de bloc de notaspara instalar bibliotecas Python.

131

Page 140: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónInstalación de kernels y bibliotecas

Python en un nodo maestro de clúster

%pip install pmdarima

Es posible que tenga que reiniciar el kernel para utilizar paquetes actualizados. También puede utilizar la%%shSpark magic para invocarpip.

%%sh/emr/notebook-env/bin/pip install -U matplotlib/emr/notebook-env/bin/pip install -U pmdarima

Cuando se utiliza un PySpark kernel, puede instalar bibliotecas en el clúster mediantepipo utilicebibliotecas adaptadas al bloc de notas desde un PySpark cuaderno.

Para ejecutarpipen el clúster desde el terminal, primero se conectan al nodo maestro mediante SSH,como muestran los siguientes comandos.

sudo pip3 install -U matplotlibsudo pip3 install -U pmdarima

También puede utilizar bibliotecas adaptadas al bloc de notas. Con las bibliotecas con ámbito de notebook,la instalación de la biblioteca se limita al alcance de la sesión y se produce en todos los ejecutores deSpark. Para obtener más información, consulteUso de bibliotecas adaptadas al bloc de notas.

Si desea empaquetar varias bibliotecas de Python dentro de un PySpark kernel, también puede crear unentorno virtual aislado de Python. Para ver ejemplos, consulteUso de Virtualenv.

Para crear un entorno virtual de Python en una sesión, utilice la propiedadSparkspark.yarn.dist.archivesdesde las%%configurecomando mágico en la primera celda de unbloc de notas, como se muestra en el siguiente ejemplo.

%%configure -f{ "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://DOC-EXAMPLE-BUCKET/prefix/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" }}

De forma similar, puede crear un entorno de ejecutor de Spark.

%%configure -f{ "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.executorEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://DOC-EXAMPLE-BUCKET/prefix/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" }}

También puede utilizarcondapara instalar bibliotecas Python. El uso de conda requiere acceso sudo.Debe conectarse al nodo maestro usando SSH y luego ejecutar conda desde el terminal. Para obtenermás información, consulte Connect al nodo maestro utilizando SSH (p. 519).

132

Page 141: Amazon EMR - Guía de administración

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

Example — Instalación de kernels

En el siguiente ejemplo se muestra la instalación del kernel de Kotlin mediante un comando de terminalmientras está conectado al nodo maestro de un clúster:

sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains

Note

Estas instrucciones no instalan las dependencias del kernel. Si el kernel tiene dependencias deterceros, es posible que deba tomar medidas de configuración adicionales para poder utilizar elnúcleo con el bloc de notas.

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 PySpark kernel. 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 la PySpark kernel y API. Para ver otros ejemplos,consulteInstalación de bibliotecas Python en un clúster en ejecución con EMR Notebookspost enelAWSBlog de 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")

133

Page 142: Amazon EMR - Guía de administración

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

en Git con EMR Notebooks

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()

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 con EMRNotebooks

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

• AWS CodeCommit• GitHub• Bitbucket• GitLab

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

• Control de versión— Puede registrar los cambios de código en un sistema de control de versiones paraque pueda revisar el historial de sus cambios y revertirlos cambios selectivamente.

• Colaboración— Los colegas que trabajan en blocs de notas diferentes pueden compartir código a travésde repositorios remotos basados en GIT. Puede clonar o combinar código de repositorios remotos einsertar los cambios en esos repositorios remotos.

• Reutilización del código— Muchos blocs de notas de Jupyter que muestran técnicas de análisis de datoso aprendizaje automático están disponibles en repositorios alojados públicamente como, por ejemplo,GitHub. Puede asociar sus blocs de notas a un repositorio para reutilizar los blocs de notas de Jupyterincluidos en un repositorio.

Para usar repositorios basados en GIT con EMR Notebooks, añada los repositorios como recursos en laconsola de Amazon EMR, asocie credenciales a repositorios que requieran autenticación y vincule losrepositorios con sus blocs de notas. Puede ver una lista de repositorios que se almacenan en su cuentay 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

134

Page 143: Amazon EMR - Guía de administración

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

• Requisitos previos y consideraciones (p. 135)• Añadir un repositorio basado en Git a Amazon EMR (p. 137)• Actualizar o eliminar un repositorio basado en Git (p. 138)• Vincular o desvincular un repositorio basado en Git (p. 138)• Crear un nuevo bloc de notas con un repositorio de Git asociado (p. 140)• Uso de repositorios de Git en un bloc de notas (p. 140)

Requisitos previos y consideracionesTenga en cuenta lo siguiente al planear integrar un repositorio basado en GIT con los EMR Notebooks.

AWS CodeCommitSi utiliza un CodeCommit , debe usar credenciales de Git y HTTPS con CodeCommit. Claves SSHy HTTPS con elAWS CLINo se admite el ayudante de credenciales. CodeCommit no admite tokensde acceso personal (PAT). Para obtener más información, consulteUso de IAM con CodeCommit:Credenciales de Git, claves SSH yAWSclaves de accesoen laIAM User GuideyConfiguración para usuariosHTTPS mediante credenciales de Giten laAWS CodeCommitGuía del usuario de.

Consideraciones de acceso y permisosAntes de asociar un repositorio a su bloc de notas, asegúrese de que el clúster, el rol de IAM para los EMRNotebooks y los grupos de seguridad tengan la configuración y los permisos correctos. También puedesconfigurar los repositorios basados en GIT que alojas en una red privada siguiendo las instruccionesdeConfigurar un repositorio Git alojado de forma privada para EMR Notebooks (p. 135).

• Acceso a Internet clúster— 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, consulteOpciones 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, consulteEspecificación de grupos de seguridad de EC2 paraEMR Notebooks.

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 deAWS Secrets Manager— Si utiliza Secrets Manager para almacenar secretos que utilizapara acceder a un repositorio de, elthe section called “Rol de EMR Notebooks” (p. 327)debe tener unapolítica de permisos asociada que permita elsecretsmanager:GetSecretValueaction.

Configurar un repositorio Git alojado de forma privada para EMRNotebooksSiga las instrucciones siguientes para configurar los repositorios alojados de forma privada para los EMRNotebooks. Debe proporcionar un archivo de configuración con información sobre los servidores DNSy Git. Amazon EMR utiliza esta información para configurar blocs de notas EMR que pueden enrutar eltráfico a los repositorios alojados de forma privada.

Requisitos previos

135

Page 144: Amazon EMR - Guía de administración

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

Antes de configurar un repositorio de Git alojado de forma privada para EMR Notebooks, debe disponer delo siguiente:

• UnAmazon S3 Controlubicación en la que se guardarán los archivos de su bloc de notas EMR.

Para configurar uno o varios repositorios Git alojados de forma privada para EMR Notebooks

1. Cree un archivo de configuración con la plantilla proporcionada. Incluye los siguientes valores paracada servidor Git que quieras especificar en la configuración:

• DnsServerIpV4- La dirección IPv4 del servidor DNS. Si proporciona valores paraambosDnsServerIpV4yGitServerIpV4List, el valor deDnsServerIpV4tiene prioridad y seutilizará para resolver suGitServerDnsName.

Note

Para utilizar repositorios Git alojados de forma privada, el servidor DNS debe permitir elacceso entrante desde los EMR Notebooks. Le recomendamos encarecidamente queproteja su servidor DNS contra otros accesos no autorizados.

• GitServerDnsName- El nombre DNS de tu servidor Git. Por ejemplo, "git.example.com".• GitServerIpV4List- Lista de direcciones IPv4 que pertenecen a sus servidores Git.

[ { "Type": "PrivatelyHostedGitConfig", "Value": [ { "DnsServerIpV4": "<10.24.34.xxx>", "GitServerDnsName": "<enterprise.git.com>", "GitServerIpV4List": [ "<xxx.xxx.xxx.xxx>", "<xxx.xxx.xxx.xxx>" ] }, { "DnsServerIpV4": "<10.24.34.xxx>", "GitServerDnsName": "<git.example.com>", "GitServerIpV4List": [ "<xxx.xxx.xxx.xxx>", "<xxx.xxx.xxx.xxx>" ] } ] }]

2. Guarde el archivo de configuración comoconfiguration.json.3. Cargue el archivo de configuración en la ubicación de almacenamiento de Amazon S3 designada en

una carpeta denominadalife-cycle-configuration. Por ejemplo, si la ubicación predeterminadade S3 ess3://DOC-EXAMPLE-BUCKET/notebooks, el archivo de configuración debe estarubicado ens3://DOC-EXAMPLE-BUCKET/notebooks/life-cycle-configuration/configuration.json.

Important

Le recomendamos que restrinja el acceso a sulife-cycle-configurationsolo a losadministradores de EMR Notebooks y a la función de servicio de los EMR Notebooks.También debe protegerconfiguration.jsoncontra el acceso no autorizado. Para obtener

136

Page 145: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAñadir un repositorio basado en Git a Amazon EMR

instrucciones, consulteControlar el acceso a un bucket con las políticas de usuariooPrácticasrecomendadas de seguridad para Amazon S3.

Para obtener instrucciones de subida, consulteCreación de una carpetayCarga de objetosen laGuíadel usuario de Amazon Simple Storage Service.

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 enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Git repositories (Repositorios de Git) y, a continuación, seleccione Add repository (Añadir

repositorio).3. ParaNombre del repositorio, introduzca un nombre 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 CodeCommit repositorio de, esta es la URL que se copia cuando eligeURL de clonaciónyluegoClone 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) paraautenticarse en su repositorio. EMR Notebooks acceden a sus credenciales de Git mediante secretosalmacenados en Secrets Manager.

Note

Si utiliza un GitHub repositorio de, le recomendamos que utilice un token de accesopersonal (PAT) para autenticarse. A partir del 13 de agosto de 2021, GitHub ya no aceptarácontraseñas al autenticar las operaciones de Git. Para obtener más información, consultelaRequisitos de autenticación de token para operaciones de Gitpost inLa GitHub Blog.

Opción Descripción

Usar un secreto de AWS existente Elija esta opción si ya ha guardado suscredenciales como un secreto en SecretsManager y, 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 utiliza un nombre de usuario y unacontraseña de Git para acceder al repositorio,seleccioneNombre de usuario y contraseña,

137

Page 146: Amazon EMR - Guía de administración

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

Opción Descripciónintroduzca elNombre del secretopara usaren Secrets Manager y, a continuación,introduzca laUsername (Nombre deusuario):yContraseñapara asociarse con elsecreto.

–O BIEN–

Si utiliza un token de acceso personal paraacceder al repositorio, seleccioneToken deacceso personal (PAT), introduzca elNombredel secretopara usar en Secrets Manager y,a continuación, introduzca sutoken de accesopersonal.

Para obtener más información, consulte Creatinga personal access token for the command line forGitHub yPersonal access tokens for Bitbucket.Los repositorios CodeCommit no admiten 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.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. 138). Al eliminar un repositorio de Git no se eliminan los secretoscreados para el repositorio. Puede eliminar el secreto enAWS 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).

138

Page 147: Amazon EMR - Guía de administración

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

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).

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 de los estados 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. 138).

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.

139

Page 148: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCrear un nuevo bloc de notas con

un repositorio de Git asociado

Estado Significado

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.

Crear un nuevo bloc de notas con un repositorio de GitasociadoPara crear un bloc de notas y asociarlo con repositorios de Git en la AWS Management Console

1. Siga las instrucciones de Creación de un bloc de notas (p. 116).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 creesus propios grupos de seguridad. Para obtener más información, consulteEspecificación degrupos de seguridad de EC2 para EMR Notebooks.

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 elige abrir el cuaderno con un JupyterLab , la extensión jupyter-git está instalada y disponible para suuso. Para obtener información sobre la extensión jupyter-git de JupyterLab, consulte jupyterlab-git.

140

Page 149: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIniciar un clúster con opciones rápidas

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 (p. 147).

• Si está ejecutando clústeres de Amazon EMR en Outposts o en Local Zones. Consulte Clústeres deEMR enAWS Outposts (p. 179) o Clústeres de EMR enAWSZonas locales (p. 181).

• Si un clúster es de ejecución prolongada o transitorio y el software que ejecuta. Consulte Configuraciónde un clúster para que continúe o finalice tras la ejecución por pasos (p. 186) y Configuración delsoftware de clú (p. 210).

• Si un clúster tiene un único nodo principal o tres nodos principales. Consulte Planificar y configurarnodos maestros (p. 165).

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

• 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 y la depuración de clústeres (p. 263) yClústeres de etiquetas (p. 268).

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

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

Iniciar un clúster con opciones rápidasUsarCrear clúster: opciones rápidasde la consola de Amazon EMR para crear rápidamente un clúster paratareas sencillas o con fines de evaluación o pruebas. Opciones rápidasutiliza valores predeterminadospara opciones de configuración como software de clúster, redes y seguridad. Por ejemplo, al lanzar unclúster conOpciones rápidas, no selecciona una Virtual Private Cloud (VPC) y subred para el clúster. En sulugar, Amazon EMR configura un clúster en la subred pública de su Amazon Virtual Private Cloud (AmazonVPC) predeterminada para la región seleccionada.

Para lanzar un clúster conOpciones rápidas

1. Inicie sesión en laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. ElegirClústeresy luego seleccioneCrear un clústerpara abrirOpciones rápidas(Se ha creado elcertificado).

3. En la páginaCrear clúster: opciones rápidas, introduzca o seleccione valores para loscampos proporcionados. Para obtener más información acerca de los campos Opción rápida,consulteResumen de las opciones rápidas (p. 142).

4. ElegirCrear un clústerpara iniciar el clúster y abrir la página de estado del clúster.5. En la página de estado del clúster, busca el clústerEstadojunto al nombre del clúster. El estado debe

cambiar deStartingaEn ejecuciónaWaitingdurante el proceso de creación del clúster. Es posible quetenga que elegir el icono de actualización situado a la derecha o actualizar el navegador para recibirlas actualizaciones.

141

Page 150: Amazon EMR - Guía de administración

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

Cuando el estado cambia aWaiting, el clúster está activo, en ejecución y listo para aceptar pasos yconexiones SSH.

Resumen de las opciones rápidasEn la siguiente tabla, se describen los campos y los valores predeterminados al lanzar un clúster conlaCrear clúster: opciones rápidasen 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.

Registro Selected Cuando se ha habilitado elregistro, Amazon EMR escribedatos de registro detalladosen la carpeta de Amazon S3especificada. El registro solo sepuede habilitar en la creacióndel clúster. No se puede cambiarla configuración más tarde.Opciones rápidaselige un bucketde Amazon S3 predeterminado.También puede especificar supropio bucket. Para obtener másinformación, consulte Ver losarchivos de registro archivadosen Amazon S3 (p. 489).

S3 folder (Carpeta de S3) elasticmapreduce/ Esta opción especifica la rutaa una carpeta en un bucketde Amazon S3 donde deseaque Amazon EMR escribalos datos de registro. Si lacarpeta predeterminada dela ruta especificada no existeen el bucket, Amazon EMRla creará automáticamente.Puede especificar otra carpetaescribiendo el nombre de unacarpeta o buscando una carpetade Amazon S3.

Launch mode (Modo delanzamiento)

Clúster Esta opción especifica si se debelanzar un clúster de ejecuciónprolongada o un clúster quetermina después de ejecutar lospasos indicados en el momentode la creación.

Con laRacimo, el clústercontinúa ejecutándose hastaque usted lo termina; estose denominaclúster de largaduración. Si eligeEjecución de

142

Page 151: Amazon EMR - Guía de administración

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

Campo de la consola Valor predeterminado Descripciónpasos, Amazon EMR le pide queañada y configure los pasos.Puede utilizar pasos para enviarel trabajo 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 paraque continúe o finalice tras laejecución por pasos (p. 186).

Release (Versión) emr-5.36.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. Deforma predeterminada, se eligela etiqueta de la versión másreciente. Puede seleccionar unaversión anterior de Amazon EMRsi necesita versiones diferentesde las aplicaciones de códigoabierto para la compatibilidadcon la solución. Puede quealgunas características yaplicaciones de Amazon EMRno estén disponibles si seutilizan versiones de anterioresversiones de Amazon EMR.Le recomendamos que utilicela última versión siempre quesea posible. Para obtener másinformación acerca de cadaversión de Amazon EMR,consulte.Guía de publicación deAmazon EMR.

143

Page 152: Amazon EMR - Guía de administración

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

Campo de la consola Valor predeterminado Descripción

Aplicaciones Core Hadoop Esta opción determina lasaplicaciones de código abiertodel ecosistema de big dataque se deben instalar en elclúster. Opciones rápidaslepermite seleccionar entre lascombinaciones de aplicacionesmás comunes. Para seleccionarsu propia combinación deaplicaciones, incluidas lasaplicaciones adicionales queno aparecen en la lista, elijaIr alas opciones avanzadas. Paraobtener más información sobrelas aplicaciones y las versionesdisponibles con cada versión deAmazon EMR, consulteGuía depublicación de Amazon EMR.

Si una aplicación no estádisponible para que AmazonEMR la instale o necesita instalaruna aplicación personalizadaen todas las instanciasdel clúster, puede utilizarunacción de arranque. Paraobtener más información,consulte Crear accionesde arranque para instalarsoftware adicional (p. 210).Si seleccionaEjecución depasos, Amazon EMR eligelas aplicaciones que se vana instalar en función de losrequisitos de sus pasos.

UsarAWSGlue Data Catalog parametadatos de tablas

Deshabilitado Cuando está habilitado,especifica laAWSGlue DataCatalog como metaalmacénexterno de Hive. Para obtenermás información, consulteUsodeAWSGlue Data Catalog comometaalmacén de Hive.

144

Page 153: Amazon EMR - Guía de administración

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

Campo de la consola Valor predeterminado Descripción

Tipo de instancia m5.xlarge Esta opción determina el tipode instancia Amazon EC2 queinicializar Amazon EMR paralas instancias que ejecuta ensu 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ónde hardware y redes declúster (p. 214).

Number of instances (Número deinstancias)

3 Esta opción determina el númerode instancias de Amazon EC2que inicializar. Cada instanciacorresponde a un nodo en elclúster de Amazon EMR. Debetener al menos un nodo, que esel nodo principal. Para obtenerinstrucciones sobre cómo elegirlos tipos de instancias y elnúmero de instancias, consulteDirectrices de configuración declúster y prácticas (p. 258).

Escala de clúster Sin seleccionar Cuando se selecciona, elescalado de clúster permiteel escalado administrado porEMR. El escalado administradoaumenta y disminuyeautomáticamente el númerode instancias en los nodosprincipales y de tareas enfunción de la carga de trabajo.Para obtener más información,consulte Uso del escaladoadministrado de EMR en AmazonEMR (p. 536).

Terminación automática Habilitado para las versiones6.4.0 y posteriores de AmazonEMR, con un tiempo deinactividad predeterminado deuna hora. Para otras versionescompatibles de Amazon EMR,la terminación automáticaestá deshabilitada de formapredeterminada.

Cuando está habilitada, lepermite adjuntar una política determinación automática al clúster.En la directiva, se especifica lacantidad de tiempo de inactividadtras el cual el clúster se apagaautomáticamente. Para obtenermás información, consulte Usode una política de terminaciónautomática (p. 188).

145

Page 154: Amazon EMR - Guía de administración

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

Campo de la consola Valor predeterminado Descripción

EC2 key pair (Par de claves deEC2)

Choose an option (Elija unaopción)

Esto especifica el key pair deAmazon EC2 que utilizar ala hora de conectarse a losnodos del clúster medianteuna conexión Secure Shell(SSH). Recomendamos quecree y especifique un key pair deAmazon EC2. Si no seleccionaun par de claves, no puedeconectarse al clúster para enviarpasos ni interactuar con lasaplicaciones. Para obtenermás información, consulteConnect al clúster (p. 517).Para conectarse, también deberácrear una regla de entrada en elgrupo de seguridad para permitirlas conexiones SSH.

Permisos Valor predeterminado Utilice esta opción paraespecificar los roles de AWSIdentity and Access Managementque utiliza el clúster. Estosroles determinan los permisosnecesarios para que AmazonEMR y las aplicaciones quese ejecutan en las instanciasdel clúster para interactuar conotros.AWSServicios de . Puedeelegir Custom (Personalizados)para especificar sus propiosroles. Le recomendamosque comience con los rolespredeterminados. Para obtenermás información, consulteConfigurar roles de servicio deIAM para permisos de AmazonEMR paraAWSservicios yrecursos (p. 312).

Rol de EMR EMR_DefaultRole El rol de servicio que permitea Amazon EMR llamar aotrosAWSServicios, comoAmazon EC2, en su nombre.Para obtener más información,consulte Función de serviciopara Amazon EMR (rolEMR) (p. 316).

146

Page 155: Amazon EMR - Guía de administración

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

Campo de la consola Valor predeterminado Descripción

Perfil de instancia EC2 EMR_EC2_Funciónpredeterminada

Proporciona acceso aotrosAWSservicios, comoAmazon S3 y DynamoDB, deinstancias de Amazon EC2lanzadas por Amazon EMR.Para obtener más información,consulte Función de servicio parainstancias EC2 de clúster (perfilde instancia EC2) (p. 322).

Configurar la ubicación del clúster y elEsta 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 unAWSRegión (p. 147)• Trabajar con sistemas de almacenamiento y archivos (p. 148)• Prepare los datos de entrada (p. 151)• Configuración de una ubicación de salida (p. 160)

Elija unAWSRegiónAmazon Web Services se ejecuta en los servidores de los centros de datos de todo el mundo. Loscentros de datos están organizados en regiones geográficas. Al lanzar un clúster de Amazon EMR, debeespecificar una región. Puede elegir la región para reducir la latencia, minimizar los costos o satisfacerlos requisitos reglamentarios. Para obtener la lista de regiones y puntos de enlace admitidos por AmazonEMR, consulteRegiones y puntos de enlaceen laReferencia general de Amazon Web Services.

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 oeste de EE.UU. (Oregón), debe lanzar un clúster en la región del oeste de EE. UU. (Oregón) para evitar las tarifas detransferencia de datos entre regiones. Si utiliza un bucket de Amazon S3 para recibir la salida del clúster,también desearía crearlo en la región oeste de EE. UU. (Oregón).

Si tiene previsto asociar un key pair de Amazon EC2 con el clúster (necesarias para usar SSH para iniciarsesión en el nodo principal), el key pair debe crearse en la misma región que el clúster. Del mismo modo,los grupos de seguridad que crea Amazon EMR para administrar el clúster se crean en la misma regiónque el clúster.

Si te inscribiste en unCuenta de AWSel 17 de mayo de 2017 o después, la región predeterminada cuandoaccede a un recurso desde elAWS Management Consolees EE. UU. Este (Ohio) (us-east-2); para lascuentas antiguas, la región predeterminada es EE. UU. Oeste (Oregón) (us-west-2) o EE. UU. Este (Nortede Virginia) (us-east-1). Para obtener más información, consulte Regiones y puntos de enlace.

AlgunoAWSlas características solo están disponibles en regiones limitadas. Por ejemplo, las instanciasde informática en clúster solo están disponibles en la región Este de EE. UU. (Virginia) y la región de AsiaPacífico (Sídney) admite solo Hadoop 1.0.3 y versiones posteriores. Cuando elija una región, compruebeque admite las características que desea utilizar.

147

Page 156: Amazon EMR - Guía de administración

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

Para obtener el máximo rendimiento, utilice la misma región para todos losAWSrecursos que se utilizaráncon el clúster. La siguiente tabla asigna los nombres de región entre servicios. Para obtener una listade las regiones de Amazon EMR, consulteAWSRegiones y puntos de enlaceen laReferencia general deAmazon Web Services.

Elegir una región mediante 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 laAWS CLIPara especificar una región predeterminada en la AWS CLI, utilice el comando aws configure o lavariable de entorno AWS_DEFAULT_REGION. Para obtener más información, consulteConfiguracióndeAWSRegiónen laAWS Command Line InterfaceGuía del usuario de.

Elija 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 va a crear una aplicación cliente mediante unAWSSDK, puede cambiar el punto final del clientellamandosetEndpoint, 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.

Trabajar con sistemas de almacenamiento y archivosAmazon EMR y Hadoop proporcionan una variedad de sistemas de archivos que puede utilizar al procesarpasos de clústeres de. Puede especificar qué sistema de archivos utilizar mediante el prefijo del URIutilizado para acceder a los datos. Por ejemplo,s3://DOC-EXAMPLE-BUCKET1/pathhace 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 5.22.0 de Amazon EMR, Amazon EMR utilizaAWSSignature Version4 en exclusiva para autenticar solicitudes a Amazon S3. Versiones anteriores de AmazonEMRAWSSignature Version 2 en algunos casos, a menos que las notas de la versiónindiquen que Signature Version 4 se utiliza exclusivamente. Para obtener más información,consulteAutenticación de solicitudes (AWSSignature Version 4)yAutenticación de solicitudes(AWSSignature Version 2)en laAmazon Simple Storage Service Developer Guide.

148

Page 157: Amazon EMR - Guía de administración

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

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 almacenardatos persistentes en Amazon S3 para su uso con Hadoopademás de ofrecer características como el cifrado del ladodel servidor de Amazon S3, consistencia de lectura trasescritura y consistencia de lista.

Note

Anteriormente, Amazon EMR utilizabaels3nys3asistemas de archivos de. Mientrasambos siguen funcionando, le recomendamosque utilice las3Esquema URI para el mejorrendimiento, 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 dealmacenamiento 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, consulteAlmacenamientode la instancia de Amazon EC2.

HDFS utiliza el sistema de archivos local, pero Pythontambién se ejecuta desde el sistema de archivos local ypuede elegir almacenar archivos de aplicación adicionalesen volúmenes de almacenes de instancias.

Sistema de archivos debloques de Amazon S3

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

149

Page 158: Amazon EMR - Guía de administración

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

Sistema de archivos Prefix Descripción

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.

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 lahdfs:///prefijo en el URI. Amazon EMR resuelve rutas que no especifican un prefijoen el URI a la HDFS local. Por ejemplo, los dos siguientes URI resolverían la misma ubicación enHDFS.

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

Para acceder a Amazon S3

• Utilice el prefijo s3://.

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

Para obtener acceso 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 bloque de Amazon S3 es un sistema de archivos heredado que se utilizabapara soportar cargas en Amazon S3 mayores de 5 GB de tamaño. Con la funcionalidad de carga

150

Page 159: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

multiparte que proporciona Amazon EMR a través delAWSSDK de Java, puede cargar archivos dehasta 5 TB de tamaño en el sistema de archivos nativo de Amazon S3 y el sistema de archivos debloque 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

Prepare los 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 su 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. 151)• Cómo obtener datos en Amazon EMR (p. 151)

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.

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 consiste encargar los datos en Amazon S3 y utilizar las características integradas de Amazon EMR para cargar losdatos en el clúster. También puede utilizar la DistributedCache característica de Hadoop para transferirarchivos desde un sistema de archivos distribuido al sistema de archivos local. La implementación de Hiveproporcionada por Amazon EMR (Hive versión 0.7.1.1 y posteriores) incluye la funcionalidad que puedeutilizar para importar y exportar datos entre DynamoDB y un clúster de Amazon EMR. Si tiene una grancantidad de datos on-premises para procesar, puede encontrar útil el servicio AWS Direct Connect.

Temas• Carga de datos en Amazon S3 (p. 152)

151

Page 160: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

• Cargar datos conAWS DataSync (p. 156)• Importar archivos con caché distribuida (p. 156)• Cómo procesar archivos comprimidos (p. 160)• Importación de datos de DynamoDB en Hive (p. 160)• Connect a los datos conAWS Direct Connect (p. 160)• Carga de grandes cantidades de datos conAWS Snowball (p. 160)

Carga de datos en Amazon S3

Para obtener más información sobre cómo cargar objetos en Amazon S3, consulteAñadir un objeto a subucket.en laAmazon Simple Storage Service. Para obtener más información acerca del uso de Amazon S3con Hadoop, consultehttp://wiki.apache.org/hadoop/AmazonS3.

Temas• Creación y configuración de un bucket de Amazon S3 (p. 152)• Configure la carga multiparte de Amazon S3 (p. 153)• Prácticas recomendadas (p. 155)

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

Amazon EMR utiliza elAWS SDK for Javacon Amazon S3 para almacenar datos de entrada, archivos logy datos de salida. Amazon S3 denomina estas ubicaciones de almacenamientoBuckets de. Los bucketstienen ciertas restricciones y limitaciones para cumplir con los requisitos de Amazon S3 y DNS. Paraobtener más información, consulte Restricciones y limitaciones de los buckets en la Guía del usuario deAmazon Simple Storage Service.

En esta sección se muestra cómo utilizar Amazon S3AWS Management ConsolePara crear y, acontinuación, establecer permisos para un bucket de Amazon S3. También puede crear y establecerpermisos para un bucket de Amazon S3 mediante la API de Amazon S3 oAWS CLI. También puede utilizarcurl junto con una modificación para pasar los parámetros de autenticación correspondientes a AmazonS3.

Consulte los siguientes recursos:

• Para crear un bucket utilizando la consola, consulteCrear un bucketen laGuía del usuario de Amazon S3.• Para crear y trabajar con cubos mediante elAWS CLI, consulteUso de comandos de alto nivel de S3 con

laAWS Command Line Interfaceen laGuía del usuario de Amazon S3.• Para crear un bucket utilizando un SDK de, consulteEjemplos de creación de bucketsen laAmazon

Simple Storage Service.• Para trabajar con cubos utilizando curl, consulteHerramienta de autenticación Amazon S3 para curl.• Para obtener más información sobre la especificación de buckets específicos de una región,

consulte.Acceso a un bucketen laAmazon Simple Storage Service.• Para trabajar con buckets utilizando puntos de acceso de Amazon S3, consulteUso de un alias de estilo

de bucket para su punto de accesoen laGuía del usuario de Amazon S3. Puede utilizar fácilmente lospuntos de acceso de Amazon S3 con el alias de punto de acceso de Amazon S3 en lugar del nombredel bucket de Amazon S3. Puede utilizar el alias de punto de acceso de Amazon S3 para aplicacionesexistentes y nuevas, incluidas Spark, Hive, Presto y otras.

Note

Si habilita el registro para un bucket, se habilitan únicamente los logs de acceso al bucket, no loslogs del clúster de Amazon EMR.

152

Page 161: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

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.

Configure la carga multiparte de Amazon S3

Amazon EMR admite la carga multiparte de Amazon S3 mediante laAWSSDK for Java La carga multipartepermite cargar un solo objeto como un conjunto de partes. Puede cargar estas partes del objeto de formaindependiente y en cualquier orden. Si la transmisión de cualquier parte falla, puede retransmitir esta partesin que las demás partes se vean afectadas. Después de cargar todas las partes del objeto, Amazon S3las combina y crea el objeto.

Para obtener más información, consulte la sección Información general sobre la carga multiparte en laGuía de del usuario 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, consulteConfigure aplicacionesen laGuía de publicación de Amazon EMR.

Nombre del parámetro deconfiguración

Valorpredeterminado

Descripción

fs.s3n.multipart.uploads.enabledtrue Un tipo booleano que indica si habilitarlas cargas multiparte. Cuando la vistacoherente de EMRFS está habilitada, lascargas multiparte están habilitadas de formapredeterminada y establecen este valorenfalsese pasa por alto.

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,este valor también controla el tamaño máximoque puede aumentar un archivo de datoshasta que EMRFS utiliza cargas multiparte enlugar de unPutObjectsolicitud para cargarel archivo. Para obtener más información,consulte

fs.s3n.ssl.enabled true Un tipo booleano que indica si usar http ohttps.

153

Page 162: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

Nombre del parámetro deconfiguración

Valorpredeterminado

Descripción

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 ensegundos, que se añade al retraso fijo de 15minutos antes de programar la próxima rondade 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 enhttps://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.s3n.multipart.uploads.enabled=false]

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

Deshabilitar la carga multiparte mediante laAWS 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:

[ { "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.

154

Page 163: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun signo de intercalación (^).

aws emr create-cluster --name "Test cluster" \--release-label emr-5.36.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 más información sobre el uso de cargas multiparte de Amazon S3 mediante programación,consulteUso deAWSSDK for Java para cargas multiparteen laAmazon Simple Storage Service.

Para obtener más información acerca deAWSSDK for Java, consulteAWSSDK para Java.

Prácticas recomendadas

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

Habilitación del 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, consulteUsar el control de versionesen la Guíadel usuario de Amazon Simple Storage Service.

Limpiar las cargas multiparte fallidas

Los componentes de clúster de EMR utilizan cargas multiparte a través delAWSSDK for Java conlas API de Amazon S3 para escribir archivos de registro y datos de salida en Amazon S3 de formapredeterminada. Para obtener más información sobre cómo cambiar las propiedades relacionadascon esta configuración mediante Amazon EMR, consulteConfigure la carga multiparte de AmazonS3 (p. 153). 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 utiliza con Amazon EMR, use una regla de configuración del ciclo de vida enAmazon S3 para eliminar las cargas multiparte incompletas tres días después de la fecha de inicio decarga. Las reglas de configuración del ciclo de vida le permiten controlar la clase de almacenamiento yel ciclo de vida de los objetos. Para obtener más información, consulteAdministrar el ciclo de vida de losobjetos, yAnulación de cargas multiparte incompletas con la política de ciclo de vida de buckets.

• Habilitar la función de limpieza multiparte de Amazon EMRconfigurandofs.s3.multipart.clean.enabledaTRUEy ajustar otros parámetros de limpieza.Esta característica es útil con volúmenes altos y a gran escala, así como con clústeres que tienenun tiempo de actividad limitado. En este caso, el campoDaysAfterIntitiationUn parámetro deconfiguració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 multiparte de Amazon EMRpermite un control más preciso. Para obtener más información, consulte Configure la carga multiparte deAmazon S3 (p. 153).

155

Page 164: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

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 de LIST.Para obtener más información, consulteConfiguración del ciclo de vida de un bucket con control deversionesen la Guía del usuario 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, consulteConsideraciones de rendimiento y tasa de solicitudesen laAmazon Simple StorageService.

Cargar datos conAWS DataSyncAWS DataSynces un servicio de transferencia de datos en línea que simplifica, automatiza y acelera elproceso de transferencia de datos entre el almacenamiento local yAWSservicios de almacenamiento oentreAWSservicios de almacenamiento. DataSync admite una variedad de sistemas de almacenamientolocal, como Hadoop Distributed File System (HDFS), file servers NAS y almacenamiento de objetosautoadministrado.

La forma más común de introducir datos en un clúster consiste en cargar los datos en Amazon S3 y utilizarlas características integradas de Amazon EMR para cargar los datos en el clúster.

DataSync puede ayudarlo a realizar las siguientes tareas:

• Replicación de HDFS en su clúster de Hadoop en Amazon S3 para la continuidad del negocio• Copie HDFS en Amazon S3 para rellenar sus data lakes• Transfiera datos entre HDFS de su clúster de Hadoop y Amazon S3 para análisis y procesamiento

Para cargar datos en su bucket de S3, primero implementa uno o varios DataSync agentes de la mismared que su almacenamiento local. Unagentees una máquina virtual que se utiliza para leer datos de oescribir datos en una ubicación autogestionada. A continuación, activa a sus agentes en elCuenta deAWSyRegión de AWSdonde está ubicado el bucket de S3.

Después de activar el agente, crea una ubicación de origen para el almacenamiento local, una ubicaciónde destino para el bucket de S3 y una tarea. Una tarea es un conjunto de dos ubicaciones (origen ydestino) y un conjunto de opciones predeterminadas que se utilizan para controlar el comportamiento de latarea.

Por último, ejecutas tu DataSync tarea para transferir datos desde el origen al destino.

Para obtener más información, consulte Introducción a AWS DataSync.

Importar archivos con caché distribuida

Temas• Tipos de archivo admitidos (p. 157)• Ubicación de los archivos en caché (p. 157)• Acceso a archivos almacenados en caché desde aplicaciones de streaming (p. 158)• Acceda a archivos almacenados en caché desde aplicaciones de streaming mediante la consola de

Amazon EMR (p. 158)

156

Page 165: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

• Acceda a archivos almacenados en caché desde aplicaciones de streaming mediante elAWSCLI (p. 158)

DistributedCache es una característica de Hadoop que puede aumentar la eficacia cuando una tarea Mapo Reduce necesita acceder a datos comunes. Si el clúster depende de aplicaciones existentes o binariosque no se instalaron al crear el clúster, puede utilizar DistributedCache para importar estos archivos. Estacaracterística permite a un nodo de clúster leer los archivos importados desde su sistema de archivoslocal, 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 DistributedCache 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 Crearacciones de arranque para instalar software adicional (p. 210).

Tipos de archivo admitidos

DistributedCache permite tanto archivos individuales como archivos de almacenamiento. Los archivosindividuales se almacenan en caché como de solo lectura. Los archivos ejecutables y binarios tienenestablecidos permisos de ejecución.

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

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

Ubicación de los archivos en caché

DistributedCache copia los archivos únicamente en los nodos principales. Si no hay nodos básicos en elclúster, DistributedCache copia los archivos en el nodo maestro.

DistributedCache asocia los archivos en caché al directorio de trabajo actual al mapeador y reductorutilizando simbólicos. 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-dirsenyarn-site.xml, especifica la ubicación de losarchivos temporales. Amazon EMR establece este parámetro en/mnt/mapredo alguna variación basadaen el tipo de instancia y la versión de EMR. Por ejemplo, una configuración podría tener /mnt/mapredy /mnt1/mapred dado que el tipo de instancia tiene dos volúmenes efímeros. Los archivos de caché seencuentran en un subdirectorio de la ubicación de archivos temporales en /mnt/mapred/taskTracker/archive.

Si almacena en caché un único archivo, DistributedCache coloca el archivo en elarchivedirectorio. Sialmacena en caché un archivo de almacenamiento, DistributedCache descomprime el archivo y creaun subdirectorio en/archivecon el mismo nombre que el nombre del archivo de archivo de archivo dealmacenamiento. Los archivos individuales se encuentran en el nuevo subdirectorio.

157

Page 166: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

Puede usar DistributedCache 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.

Acceda a archivos almacenados en caché desde aplicaciones de streaming mediante 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 enhttps://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.

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

Entrar-cacheArchiveseguidode la ubicación de losarchivos en Amazon S3,el signo de almohadilla(#) y, a continuación, elnombre que desea dar ala colección de archivosen 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.

Acceda a archivos almacenados en caché desde aplicaciones de streaming mediante elAWS CLI

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

158

Page 167: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPrepare los datos de entrada

Para especificar los archivos de caché distribuida mediante laAWS CLI

• Para enviar un paso de streaming cuando se crea un clúster, escriba el comando create-clustercon el parámetro --steps. Para especificar los archivos de caché distribuida mediante laAWS 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

entrar-cacheArchiveseguido de la ubicación de los archivos enAmazon S3, el signo de almohadilla (#) y, a continuación, el nombreque desea dar a la colección de archivos en la caché local.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en laAWS CLI,consultehttps://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é.

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 instanciaEC2, escribaaws emr create-default-rolespara crearlos antes de escribir elcreate-clustersubcomando.

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.

159

Page 168: Amazon EMR - Guía de administración

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

Si no ha creado con anterioridad el rol de servicio de EMR predeterminado y el perfil de instanciaEC2, escribaaws emr create-default-rolespara crearlos antes de escribir elcreate-clustersubcomando.

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 dado que se trata de unabiblioteca de terceros, Amazon EMR no ofrece soporte al desarrollador sobre cómo utilizar estaherramienta. Para obtener información sobre su uso, consulte el archivo readme de hadoop-lzo.

Importación de datos de DynamoDB en HiveLa implementación de Hive proporcionada por Amazon EMR incluye la funcionalidad que puede utilizarpara importar y exportar datos entre DynamoDB y un clúster de Amazon EMR. Esto resulta útil si los datosde entrada se almacenan en DynamoDB. Para obtener más información, consulteExportar, importar,consultar y unir tablas en DynamoDB mediante Amazon EMR.

Connect a los datos conAWS Direct ConnectAWS Direct Connectes un servicio que puede utilizar para establecer una conexión de red dedicadaprivada a Amazon Web Services desde su centro de datos, oficina o entorno de coubicación. Si disponede grandes cantidades de datos de entrada, el uso de AWS Direct Connect puede reducir los costos dered, mejorar el consumo de ancho de banda y proporcionar una experiencia de red más coherente quelas conexiones basadas en Internet. Para obtener más información, consulte la Guía del usuario de AWSDirect Connect.

Carga de grandes cantidades de datos conAWS SnowballAWS Snowballes un servicio que puede utilizar para transferir grandes cantidades de datos entre AmazonSimple Storage Service (Amazon S3) y la ubicación de almacenamiento de datos en sus instalaciones enfaster-than-internet velocidades. Snowball admite dos tipos de trabajos: de importación y de exportación.Los trabajos de importación incluyen una transferencia de datos desde un origen local a un bucket deAmazon S3. Los trabajos de exportación incluyen una transferencia de datos desde un bucket de AmazonS3 a un origen local. Para ambos tipos de trabajo, los dispositivos Snowball protegen y protegen sus datosmientras que los transportistas de envío regionales los transportan entre Amazon S3 y su ubicación dealmacenamiento de datos in situ. Los dispositivos Snowball son físicamente resistentes y están protegidospor elAWS Key Management Service(AWS KMS). Para obtener más información, consulte laAWSSnowballGuía para desarrolladores de Edge.

Configuración de 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. 161)• ¿Qué formatos puede devolver Amazon EMR? (p. 161)• Cómo escribir datos en un bucket de Amazon S3 que no le pertenece (p. 162)

160

Page 169: Amazon EMR - Guía de administración

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

• Comprima la salida del clúster (p. 164)

Creación y configuración de un bucket de Amazon S3Amazon EMR (Amazon EMR) utiliza Amazon S3 para almacenar datos de entrada, archivos log y datosde salida. Amazon S3 denomina estas ubicaciones de almacenamientoBuckets de. Los buckets tienenciertas restricciones y limitaciones para cumplir con los requisitos de Amazon S3 y DNS. Para obtenermás información, consulte Restricciones y limitaciones de los buckets en la Guía para desarrolladores deAmazon Simple Storage Service.

Para crear un bucket de Amazon S3, siga las instrucciones que se especifican en laCrear un bucketenelGuía para desarrolladores de Amazon Simple Storage Service.

Note

Si habilita el registro en laCrear un bucket, solo habilita registros de acceso al bucket, no registrosde clúster; de.

Note

Para obtener más información acerca de la especificación de buckets específicos de una región,consulteCubos y regionesen laAmazon Simple Storage Service Developer GuideyPuntos finalesde región disponibles para elAWSSDK de.

Después de crear su bucket puede definir los permisos correspondientes. Lo habitual es que seconceda a sí mismo (el propietario) acceso de lectura y de escritura. Recomendamos que sigaPrácticasrecomendadas de seguridad para Amazon S3al configurar el bucket de.

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.

Información Ubicación de ejemplo en Amazon S3

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

archivos deregistro

s3://DOC-EXAMPLE-BUCKET1/logs

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

datos de salida s3://DOC-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.

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.

161

Page 170: Amazon EMR - Guía de administración

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

Cómo escribir datos en un bucket de Amazon S3 que no leperteneceCuando escribe 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 deotroAWSusuario, y quieres que otroAWSusuario para poder leer ese resultado, debe hacer dos cosas:

• Ten el otroAWSusuario le otorga permisos de escritura para su bucket de Amazon S3. El clúster quelanza se ejecuta bajo suAWScredenciales, por lo que cualquier clúster que lance también podrá escribiren ese otroAWSbucket del usuario.

• Establecer permisos de lectura para el otroAWSusuario de 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 acerca de cómo la otraAWSusuario puede otorgarle permisos para escribirarchivos en el bucket de Amazon S3 del otro usuario, consulteEdición de permisos de bucketen laAmazonSimple Storage Service.

Para que su clúster utilice las ACL predefinidas cuando escribe archivos en Amazon S3, definalafs.s3.canned.aclopción de configuración de clúster para la ACL enlatada que se va a utilizar. En lasiguiente tabla 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.

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 del

162

Page 171: Amazon EMR - Guía de administración

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

ACL predefinidas Descripcióngrupo 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

• En el símbolo del sistema Hive, establezca lafs.s3.canned.aclopción de configuración parala ACL predefinida donde desea definir el clúster en los archivos que escribe 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 Connect al nodo maestroutilizando SSH (p. 519).

En el siguiente ejemplo se establece lafs.s3.canned.aclOpción de configuraciónparaBucketOwnerFullControl, que proporciona al propietario del bucket de Amazon S3 completocontrol 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(*) 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

• En el símbolo del sistema Pig, establezca lafs.s3.canned.aclopción de configuración para la ACLpredefinida donde desea definir el clúster en los archivos que escribe en Amazon S3. Para accedera la línea de comandos de Pig conéctese al nodo principal mediante SSH y escriba Pig en la línea decomandos de Hadoop. Para obtener más información, consulte Connect al nodo maestro utilizandoSSH (p. 519).

En el siguiente ejemplo se establece lafs.s3.canned.aclopción de configuración paraBucketOwnerFullControl, que proporciona al propietario del bucket de Amazon S3 completo controlsobre 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';

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

163

Page 172: Amazon EMR - Guía de administración

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

-Dfs.s3.canned.acl=BucketOwnerFullControl s3://mybucket/input s3://mybucket/output

Comprima la salida del clústerTemas

• compresión de datos de salida (p. 164)• compresión de datos intermedia (p. 164)• Uso de la biblioteca Snappy con Amazon EMR (p. 165)

compresión de datos de salida

Esto comprime la salida del trabajo de Hadoop. Si utiliza TextOutputFormat El resultado es un archivode texto comprimido en gzip. Si está escribiendo a SequenceFiles entonces el resultado es unSequenceFile que se comprime 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 salidade 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);

164

Page 173: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPlanificar y configurar nodos maestros

Uso de la biblioteca Snappy con Amazon EMR

Snappy 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/.

Planificar y configurar nodos maestrosCuando lanza un clúster de Amazon EMR, puede elegir tener uno o tres nodos principales en el clúster.El lanzamiento de un clúster con tres nodos principales solo se admite en Amazon EMR versión 5.23.0 dey posteriores. Amazon EMR puede aprovechar los grupos de ubicación de EC2 para garantizar que losnodos maestros se coloquen en un hardware subyacente distinto para mejorar aún más la disponibilidaddel clúster. Para obtener más información, consulte Integración de Amazon EMR con grupos de ubicaciónde EC2 (p. 174).

Un clúster de EMR con varios nodos maestros 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.

• Amazon EMR habilita las funciones de alta disponibilidad de Hadoop de HDFS NameNode YARNResourceManager y admite la alta disponibilidad para algunas otras aplicaciones de código abierto.

Para obtener más información sobre cómo un clúster de EMR con varios nodos principales admite lasaplicaciones de código abierto y otras características de Amazon EMR, consulteAplicaciones y funcionescompatibles (p. 165).

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 de un clústerde EMR con varios nodos maestros, así como los detalles de configuración, prácticas recomendadas yconsideraciones para lanzar el clúster.

Temas• Aplicaciones y funciones compatibles (p. 165)• Lanzar un clúster de Amazon EMR con varios nodos maestros (p. 172)• Integración de Amazon EMR con grupos de ubicación de EC2 (p. 174)• Consideraciones recomendadas y prácticas recomendadas (p. 178)

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

HDFS de alta disponibilidadUn clúster de EMR con varios nodos maestros habilita la HDFS NameNode Función de alta disponibilidaden Hadoop. Para obtener más información, consulteAlta disponibilidad de HDFS.

165

Page 174: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y funciones compatibles

En un clúster de Amazon EMR, dos o más nodos independientes se configuran como nodos denombre. Uno NameNode está en unactiveestado y los demás están en unstandbyestado. Si el nodoconactiveNameNode se produce un error, Amazon EMR inicia un proceso de conmutación por errorautomático de HDFS. Un nodo constandbyNameNode se convierte enactivey se encarga de todas lasoperaciones de cliente del clúster. Amazon EMR sustituye el nodo que ha dejado de funcionar por unonuevo que se une a continuación comostandby.

Note

En las versiones 5.23.0 de Amazon EMR hasta la 5.30.1 incluida, solo dos de los tres nodosmaestros ejecutan HDFS NameNode.

Si necesitas averiguar qué NameNode esactive, puede utilizar SSH para conectarse a cualquier nodoprincipal del clúster y ejecutar el comando siguiente:

hdfs haadmin -getAllServiceState

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

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

Alta disponibilidad YARN ResourceManagerUn clúster de EMR con varios nodos maestros habilita el YARN ResourceManager Función dealta disponibilidad en Hadoop. Para obtener más información, consulteAlta disponibilidad deResourceManager.

En un clúster de EMR con varios nodos maestros, YARN ResourceManager se ejecuta en los tres nodosprincipales. Uno ResourceManager está enactiveestado, y los otros dos están enstandbyestado. Siel nodo maestro conactive ResourceManager falla, Amazon EMR inicia un proceso de conmutaciónpor error automática. Un nodo maestro con unstandby ResourceManager se hace cargo todas lasoperaciones. Amazon EMR sustituye el nodo principal que ha dejado de funcionar por uno nuevo que seune al ResourceManager quórum comostandby.

Puedes conectarte a «http://master-public-dns-name:8088/cluster» para cualquier nodo principal, quele dirigirá automáticamente alactiveadministrador de recursos. Para saber qué administrador de recursostiene el estado active, utilice SSH para conectarse a cualquier nodo principal del clúster. A continuación,ejecute el comando siguiente para obtener una lista de los tres nodos principales y su estado:

yarn rmadmin -getAllServiceState

Aplicaciones compatibles en un clúster de Amazon EMR convarios nodos maestrosPuede instalar y ejecutar las siguientes aplicaciones en un clúster de EMR con varios nodos maestros.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. Flink JobManagersejecutarse como ApplicationMasters de YARN en

166

Page 175: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y funciones compatibles

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

Notas

los nodos principales. La JobManager No se veafectado por el proceso de conmutación por errordel nodo principal.

Si utiliza Amazon EMR versión 5.27.0 o anteriores,la JobManager es un único punto de error.Cuando el JobManager falla, pierde todos losestados de trabajo y no reanudará los trabajosen ejecución. Puedes habilitar JobManager altadisponibilidad 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,consulteConfiguracr Flink en un clúster de AmazonEMR con varios nodos principales.

A partir de versión 5.28.0 de Amazon EMR, nose necesita ninguna configuración manual parahabilitar la 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 YARN ResourceManagerconmutación por error automática al nodo enespera cuando el nodo principal activo deja defuncionar.

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 elfin de evitar su pérdida en caso de error delnodo principal. Para obtener más información,consulteConfigurar la persistencia para blocs denotas en Amazon S3.

167

Page 176: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y funciones 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 Fénix» QueryServer Se ejecuta únicamente enuno de los tres nodos principales. En los tresnodos principales, Phoenix está configuradopara conectar el QueryServer de Phoenix. Puedeencontrar la IP privada del servidor de consultasde Phoenix utilizando/etc/phoenix/conf/phoenix-env.sharchivo

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

Desde TensorFlow no tiene demonio, no se veafectado por el proceso de conmutación por errordel nodo principal.

168

Page 177: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y funciones 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,consulteConmutación por error automática deHDFS.

Para ejecutar las siguientes aplicaciones en un clúster de Amazon EMR con varios nodos principales,debe configurar una base de datos externa. La base de datos externa se encuentra fuera del clúster yhace que persistan los datos durante el proceso de conmutación por error del nodo principal. Para lassiguientes aplicaciones, los componentes de servicio se recuperarán automáticamente durante el procesode conmutación por error del nodo principal, pero se pueden producir errores en los trabajos activos, encuyo caso 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 para Hive.Debe ser un metaalmacén externo MySQL, ya quePostgreSQL no es compatible con clústeres devarios maestros. Para obtener más información,consulteConfiguración de un metaalmacén externopara Hive.

Hue Alta disponibilidad únicamentepara los componentes de servicio

Se requiere una base de datos externa para Hue.Para obtener más información, consulteUso 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, consulteUso deOozie con una base de datos remota en AmazonRDS.

Oozie-server y oozie-client se instalan en lostres nodos principales. Los oozie-client están

169

Page 178: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y funciones compatibles

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

Notas

configurados para conectarse al oozie-servercorrecto de forma predeterminada.

PrestoDB oPrestoSQL/Trino

Alta disponibilidad únicamentepara los componentes de servicio

Se requiere un metaalmacén Hive externo paraPrestoDB (PrestoSQL en Amazon EMR 6.1.0-6.3.0o Trino en Amazon EMR 6.4.0 y versionesposteriores). Puede usarPresto con laAWSGlueData CatalogoUtilizar una base de datos MySQLexterna para Hive.

La CLI de Presto se instala en los tres nodosmaestros para que pueda utilizarla para accederal Coordinador de Presto desde cualquiera de losnodos maestros. Presto Coordinator se instalaen un solo nodo maestro. Para encontrar elnombre de DNS del nodo principal en el queestá instalado el Coordinador de Presto, llame aAmazon EMRdescribe-clusterAPI y lecturadel valor devuelto delMasterPublicDnsNameenla respuesta.

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.

Cómo funcionan las características de Amazon EMR en unclúster con varios nodos principalesConexión a nodos maestros mediante SSH

Puede conectarse a cualquiera de los tres nodos principales de un clúster de Amazon EMR utilizandoSSH de la misma forma que se conecta con un solo nodo principal. Para obtener más información,consulteConnect al nodo maestro 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 accesoal nuevo nodo principal después de que Amazon EMR sustituya el que ha dejado de funcionar por unonuevo.

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 las nuevasdirecciones IP en la consola o mediante ladescribe-clustercomando en elAWSCLI.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.

170

Page 179: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAplicaciones y funciones compatibles

Trabajo con pasos en un clúster de Amazon EMR con varios nodos maestros

Puede enviar pasos a un clúster de EMR con varios nodos principales de la misma forma que trabaja conpasos en un clúster de un solo nodo principal. Para obtener más información, consulteEnviar trabajo a unclúster.

A continuación se indican consideraciones para trabajar con pasos en un clúster de EMR con varios nodosmaestros:

• 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.

• 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, MapReduce trabajos utilizan un_SUCCESSpara determinar si el trabajo finaliza correctamente.

• Se recomienda configurar ActionOnFailure para CONTINUE o CANCEL_AND_WAIT, en lugar deTERMINATE_JOB_FLOW o TERMINATE_CLUSTER.

Protección contra terminación automática

Amazon EMR habilita automáticamente la protección de terminación de todos los clústeres con variosnodos maestros y anula cualquier configuración de ejecución de pasos que proporcione al crear el clúster.Puede deshabilitar la protección contra terminación después de iniciar el clúster. Consulte Configuraciónde la protección de terminación para clústeres en ejecución (p. 195). Para cerrar un clúster con variosnodos principales, en primer lugar debe modificar los atributos del clúster para deshabilitar la proteccióncontra terminación. Para obtener instrucciones, consulte Finalización de un clúster de Amazon EMR convarios nodos maestros (p. 173).

Para obtener más información acerca de la protección contra terminación, consulteUso de la proteccióncontra terminación (p. 191).

Funciones no compatibles en un clúster de Amazon EMR con varios nodosmaestros

Las siguientes características de Amazon EMR no están disponibles actualmente en un clúster de EMRcon varios nodos principales:

• Cuadernos de EMR• Flotas de instancias• Acceso de un clic al servidor del historial de Spark persistente• Interfaces de usuario de aplicaciones persistentes• El acceso con un clic a interfaces de usuario de aplicaciones persistentes no está disponible actualmente

para clústeres de Amazon EMR con varios nodos maestros ni para clústeres de EMR integradosconAWSLake Formation.

Note

Para utilizar la autenticación de Kerberos en un clúster, debe configurar un KDC externo.A partir de la versión de 5.27.0 de Amazon EMR, puede configurar el cifrado transparentede HDFS en un clúster de EMR con varios nodos principales. Para obtener más información,consulteCifrado transparente en HDFS en Amazon EMR.

171

Page 180: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzar un clúster de Amazon

EMR con varios nodos maestros

Lanzar un clúster de Amazon EMR con varios nodosmaestrosEn este tema, se ofrecen detalles de configuración y ejemplos para lanzar un clúster de EMR con variosnodos maestros.

Note

Amazon EMR habilita automáticamente la protección de terminación de todos los clústerescon varios nodos maestros y anula cualquier configuración de terminación automática queproporcione al crear el clúster. Para cerrar un clúster con varios nodos principales, en primerlugar debe modificar los atributos del clúster para deshabilitar la protección contra terminación.Para obtener instrucciones, consulte Finalización de un clúster de Amazon EMR con varios nodosmaestros (p. 173).

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 maestros en una subredpública, debe habilitar las instancias de dicha subred para que reciban una dirección IP públicaseleccionandoAsignación automática de IPv4en la consola o ejecutando el siguiente comando. Sustituya22XXXX01 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 maestros, debe crear unmetaalmacén externo. Para obtener más información, consulteConfiguración de un metaalmacénexterno para Hive,Uso de Hue con una base de datos remota en Amazon RDS, o bienApache Oozie.

• Para utilizar la autenticación de Kerberos en un clúster, debe configurar un KDC externo. Para obtenermás información, consulteConfiguración de Kerberos en Amazon Amazon EMR.

Lanzar un clúster de Amazon EMR con varios nodos maestrosDebe 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 maestros. En los ejemplos siguientes, se muestra cómolanzar el clúster utilizando la AMI predeterminada o una AMI personalizada.

Note

Debe especificar el ID de subred al lanzar un clúster de EMR con varios nodos maestrosutilizando elAWS CLI. Sustituya 22XXXX01 por su ID de subred en los ejemplos siguientes.

Example — Lanzamiento de un clúster de EMR con varios nodos maestros mediante una AMIpredeterminada

aws emr create-cluster \--name "ha-cluster" \--release-label emr-5.36.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

172

Page 181: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzar un clúster de Amazon

EMR con varios nodos maestros

Example — Lanzar un clúster de EMR con varios nodos principales mediante una AMIpersonalizada

aws emr create-cluster \--name "custom-ami-ha-cluster" \--release-label emr-5.36.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 maestros con un metaalmacénHive externo

Para ejecutar Hive en un clúster de EMR con varios nodos maestros, 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.36.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 Name=Hive \--configurations ./hiveConfiguration.json

Finalización de un clúster de Amazon EMR con varios nodosmaestrosPara terminar un clúster de EMR con varios nodos maestros, 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-protected

173

Page 182: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIntegración de Amazon EMR

con grupos de ubicación de EC2

aws emr terminate-clusters --cluster-id j-3KVTXXXXXX7UG

Integración de Amazon EMR con grupos de ubicaciónde EC2Cuando lanza un clúster de varios nodos maestros de Amazon EMR en Amazon EC2, tiene la opciónde utilizar estrategias de grupos de ubicación para especificar cómo desea que las instancias de nodomaestro implementadas protejan contra fallos de hardware.

Las estrategias de grupos de ubicación se admiten a partir de Amazon EMR versión 5.23.0 como opciónpara varios clústeres de nodos maestros. Actualmente, solo los tipos de nodos maestros son compatiblescon la estrategia de grupos de ubicación y elSPREADestrategia se aplica a esos nodos maestros.LaSPREADla estrategia coloca un pequeño grupo de instancias en hardware subyacente independientepara protegerse de la pérdida de varios nodos maestros en caso de fallo de hardware. Tenga en cuentaque una solicitud de lanzamiento de instancias podría producir un error si no hay suficiente hardwareexclusivo para atender la solicitud. Para obtener más información acerca de las estrategias y limitacionesde colocación de EC2, consulteGrupos de ubicaciónen laGuía del usuario de EC2 para instancias de Linux.

Amazon EC2 tiene un límite inicial de 500 clústeres habilitados para la estrategia de grupos de ubicaciónque se pueden lanzar porAWSregion. ContactoAWSapoyo para solicitar un aumento en el número degrupos de colocación permitidos. Puede identificar los grupos de ubicación de EC2 que Amazon EMRcrea mediante el seguimiento del par clave-valor que Amazon EMR asocia a la estrategia de grupos deubicación de Amazon EMR. Para obtener más información acerca de las etiquetas de instancia de clústerEC2, consulteVer instancias de clúster en Amazon EC2 (p. 491).

Adjuntar la política administrada del grupo de ubicación al rol deEMRLa estrategia de grupo de ubicación requiere una política administradadenominadaAmazonElasticMapReducePlacementGroupPolicy, que permite aAmazon EMR crear, eliminar y describir grupos de ubicación en Amazon EC2. DebeadjuntarAmazonElasticMapReducePlacementGroupPolicyal rol de servicio de Amazon EMR antesde lanzar un clúster maestro múltiple de Amazon EMR.

También puede adjuntar elAmazonEMRServicePolicy_v2política administrada parael rol de servicio de Amazon EMR en lugar de la política administrada del grupo deubicación.AmazonEMRServicePolicy_v2permite el mismo acceso a los grupos de ubicación en AmazonEC2 que elAmazonElasticMapReducePlacementGroupPolicy. Para obtener más información,consulte Función de servicio para Amazon EMR (rol EMR) (p. 316).

LaAmazonElasticMapReducePlacementGroupPolicyLa política administrada por es el siguientetexto JSON creado y administrado por Amazon EMR.

Note

Ya que elAmazonElasticMapReducePlacementGroupPolicyLa política administradase actualiza automáticamente, la política aquí mostrada podría estar obsoleta.UsarAWSManagement Console para ver la política actual.

{ "Version":"2012-10-17", "Statement":[ { "Resource":"*", "Effect":"Allow", "Action":[ "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups"

174

Page 183: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIntegración de Amazon EMR

con grupos de ubicación de EC2

] }, { "Resource":"arn:aws:ec2:*:*:placement-group/pg-*", "Effect":"Allow", "Action":[ "ec2:CreatePlacementGroup" ] } ]}

Lanzamiento de un clúster maestro múltiple de Amazon EMR conestrategia de grupos de ubicaciónPara lanzar un clúster maestro múltiple de Amazon EMR con una estrategia de grupo de ubicación, adjuntela política administrada del grupo de ubicaciónAmazonElasticMapReducePlacementGroupPolicyalrol de Amazon EMR. Para obtener más información, consulte Adjuntar la política administrada del grupo deubicación al rol de EMR (p. 174).

Cada vez que utiliza este rol para iniciar un clúster maestro múltiple de AmazonEMR, Amazon EMR intenta lanzar un clúster conSPREADestrategia aplicada a susnodos maestros. Si utiliza un rol que no tiene la directiva administrada del grupo deubicaciónAmazonElasticMapReducePlacementGroupPolicyadjunto a él, Amazon EMR intenta lanzarun clúster maestro múltiple de Amazon EMR sin una estrategia de grupo de ubicación.

Si lanza un clúster maestro múltiple de Amazon EMR con elplacement-group-configsmediante la APIde EMR o la CLI, Amazon EMR solo lanza el clúster si el rol de EMR tiene la directiva administrada por elgrupo de ubicaciónAmazonElasticMapReducePlacementGroupPolicyasociado. Si el rol de EMR notiene la política asociada, se produce un error en el inicio del clúster maestro múltiple de Amazon EMR.

Example — Lanzamiento de un clúster maestro múltiple de Amazon EMR con estrategia degrupos de ubicación mediante la API de EMR.

Cuando utiliza el RunJobFlow acción para crear un clúster maestro múltiple de Amazon EMR, establezcalaPlacementGroupConfigspropiedad a lo siguiente. En la actualidad, laMASTERel rol de instancia utilizaautomáticamenteSPREADcomo estrategia de grupos de ubicación.

{ "Name":"ha-cluster", "PlacementGroupConfigs":[ { "InstanceRole":"MASTER" } ], "ReleaseLabel":"emr-5.30.1", "Instances":{ "ec2SubnetId":"subnet-22XXXX01", "ec2KeyName":"ec2_key_pair_name", "InstanceGroups":[ { "InstanceCount":3, "InstanceRole":"MASTER", "InstanceType":"m5.xlarge" }, { "InstanceCount":4, "InstanceRole":"CORE", "InstanceType":"m5.xlarge" } ]

175

Page 184: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIntegración de Amazon EMR

con grupos de ubicación de EC2

}, "JobFlowRole":"EMR_EC2_DefaultRole", "ServiceRole":"EMR_DefaultRole"}

• Reemplazarha-clustercon el nombre de su clúster de alta disponibilidad.• ReemplazarSubred - 22xxxx01con su ID de subred.• Reemplace elec2_key_pair_namecon el nombre de su key pair 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.

Example — Lanzamiento de un clúster maestro múltiple de Amazon EMR con una estrategia degrupo de ubicación mediante la CLI de EMR.

aws emr create-cluster \--name "ha-cluster" \--placement-group-configs InstanceRole=MASTER \--release-label emr-5.30.1 \--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

• Reemplazarha-clustercon el nombre de su clúster de alta disponibilidad.• ReemplazarSubred - 22xxxx01con su ID de subred.• Reemplace elec2_key_pair_namecon el nombre de su key pair 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.

Lanzamiento de un clúster maestro múltiple de Amazon EMR sinuna estrategia de grupo de ubicaciónPara que un clúster maestro múltiple de Amazon EMR lance nodos maestros sin la estrategia de grupo deubicación, debe realizar uno de estos procedimientos:

• Eliminar la política administrada del grupo deubicaciónAmazonElasticMapReducePlacementGroupPolicyde la función EMR, o

• Lance un clúster principal múltiple de Amazon EMR con laplacement-group-configsparámetroutilizando la API de EMR o la CLI eligiendoNONEcomo estrategia de grupos de ubicación.

Example — Lanzamiento de un clúster maestro múltiple de Amazon EMR sin estrategia de grupode ubicación mediante la API de EMR.

Cuando se utiliza la RunJobFlow acción para crear un clúster maestro múltiple de Amazon EMR,establezca laPlacementGroupConfigspropiedad a lo siguiente.

{ "Name":"ha-cluster", "PlacementGroupConfigs":[ { "InstanceRole":"MASTER", "PlacementStrategy":"NONE" } ], "ReleaseLabel":"emr-5.30.1",

176

Page 185: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIntegración de Amazon EMR

con grupos de ubicación de EC2

"Instances":{ "ec2SubnetId":"subnet-22XXXX01", "ec2KeyName":"ec2_key_pair_name", "InstanceGroups":[ { "InstanceCount":3, "InstanceRole":"MASTER", "InstanceType":"m5.xlarge" }, { "InstanceCount":4, "InstanceRole":"CORE", "InstanceType":"m5.xlarge" } ] }, "JobFlowRole":"EMR_EC2_DefaultRole", "ServiceRole":"EMR_DefaultRole"}

• Reemplazarha-clustercon el nombre de su clúster de alta disponibilidad.• ReemplazarSubred - 22xxxx01con su ID de subred.• Reemplace elec2_key_pair_namecon el nombre de su key pair 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.

Example — Lanzamiento de un clúster maestro múltiple de Amazon EMR sin una estrategia degrupo de ubicación mediante la CLI de EMR.

aws emr create-cluster \--name "ha-cluster" \--placement-group-configs InstanceRole=MASTER,PlacementStrategy=NONE \--release-label emr-5.30.1 \--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

• Reemplazarha-clustercon el nombre de su clúster de alta disponibilidad.• ReemplazarSubred - 22xxxx01con su ID de subred.• Reemplace elec2_key_pair_namecon el nombre de su key pair 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.

Comprobación de la configuración de la estrategia de grupo deubicación asociada al clúster maestro múltiple de Amazon EMRPuede utilizar la API de clúster de descripción de Amazon EMR para ver la configuración de la estrategiade grupos de ubicación asociada al clúster maestro múltiple de Amazon EMR.

Example

aws emr describe-cluster --cluster-id "j-xxxxx"{ "Cluster":{ "Id":"j-xxxxx", ...

177

Page 186: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConsideraciones recomendadas y prácticas recomendadas

... "PlacementGroups":[ { "InstanceRole":"MASTER", "PlacementStrategy":"SPREAD" } ] }}

Consideraciones recomendadas y prácticasrecomendadasLimitaciones de un clúster de EMR con varios nodos maestros:

• Si dos nodos principales dejan de funcionar simultáneamente, Amazon EMR no puede recuperar elclúster.

• Los clústeres de Amazon EMR con varios nodos principales no toleran errores de zonas dedisponibilidad. En el caso de que deje de funcionar la zona de disponibilidad, se perderá el acceso alclúster de Amazon EMR.

• Amazon EMR no garantiza las características de alta disponibilidad de aplicaciones de código abiertodistintas de las especificadas enAplicaciones compatibles en un clúster de Amazon EMR con variosnodos maestros (p. 166).

• En las versiones 5.23.0 de Amazon EMR hasta la 5.30.1 incluida, solo dos de los tres nodos maestrosejecutan HDFS NameNode.

Consideraciones para la configuración la subred:

• Un clúster de EMR con varios nodos principales pueden encontrarse únicamente en una zona dedisponibilidad o subred. Amazon EMR no puede sustituir un nodo maestro que ha dejado de funcionarsi la subred se utiliza en su totalidad o por encima de su capacidad en caso de que se produzca unaconmutación por error. Para evitar este escenario, se recomienda que dedique una subred completaa un clúster de EMR. Además, debe asegurarse de que haya suficientes direcciones IP privadasdisponibles 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,consulteConfiguración de HDFS.

Consideraciones para configurar alarmas de métricas:

• En la actualidad, Amazon EMR no proporciona métricas específicas para las aplicaciones relacionadascon HDFS o YARN. Se recomienda que configure alarmas para monitorizar el recuento de instanciasdel nodo principal. Puede configurar las alarmas utilizando lo siguiente: CloudWatch Métricasde :MultiMasterInstanceGroupNodesRunning,MultiMasterInstanceGroupNodesRunningPercentage,o bienMultiMasterInstanceGroupNodesRequested. Se le notificará en el caso de que un nodoprincipal deje de funcionar y sea sustituido. Por ejemplo,• 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, Amazon EMR intentasustituir un nodo principal.

178

Page 187: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónClústeres de EMR enAWS Outposts

• 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, consulteConfiguración de alarmas en métricas.

Clústeres de EMR enAWS OutpostsA partir de la versión 5.28.0 de Amazon EMR, puede crear y ejecutar clústeres de EMR enAWSOutposts.AWS Outpostshabilita nativoAWSservicios, infraestructura y modelos operativos en instalacioneslocales. En los entornos de AWS Outposts, puede utilizar las mismas API, herramientas e infraestructurade AWS que utiliza en la nube de AWS. Amazon EMR enAWS Outpostses ideal para cargas de trabajode baja latencia que deben ejecutarse próximas a los datos y las aplicaciones en las instalaciones. Paraobtener más información sobre AWS Outposts, consulte la Guía del usuario de AWS Outposts.

Requisitos previosEstos son los requisitos previos para utilizar Amazon EMR enAWS Outposts:

• Debe haber instalado y configurado AWS Outposts en el centro de datos local.• Debe contar con una conexión de red de confianza entre su entorno Outpost y unAWSRegión .• Debe tener capacidad suficiente para los tipos de instancias compatibles con EMR disponibles en su

Outpost.

LimitacionesA continuación se indican las limitaciones de uso de Amazon EMR enAWS Outposts:

• Las instancias bajo demanda son la única opción admitida para las instancias de Amazon EC2. Lasinstancias de subasta no están disponibles para Amazon EMR enAWS Outposts.

• Si necesita volúmenes de almacenamiento de Amazon EBS adicionales, solo se admite SSD de usogeneral (GP2).

• S3 es la única opción compatible para Amazon EMR en Outposts. S3 on Outposts no es compatible conAmazon EMR enAWS Outposts.

• Amazon EMR admite únicamente los siguientes tipos de instancias enAWS Outposts:

Clase de instancia Tipos de instancias

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

179

Page 188: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConsideraciones sobre la conectividad de red

Consideraciones sobre la conectividad de red• Si conectividad de red entre su puesto avanzado y suAWSLa región se pierde, sus clústeres seguirán

ejecutándose. Sin embargo, no podrá crear nuevos clústeres ni realizar nuevas acciones en clústeresexistentes hasta que se restablezca la conectividad. En caso de errores en la instancia, la instancia nose reemplazará automáticamente. Además, acciones, como agregar pasos a un clúster en ejecución,comprobar el estado de ejecución de pasos y enviar CloudWatch las métricas y los eventos seretrasarán.

• Le recomendamos que proporcione una conectividad de red fiable y de alta disponibilidad entre supuesto de avanzada y elAWSRegión . Si conectividad de red entre su puesto avanzado y suAWSLaregión se pierde durante varias horas, los clústeres que tienen habilitada la protección de terminaciónseguirán ejecutándose y los clústeres que tienen deshabilitada la protección de terminación puedenterminar.

• 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 localmenteen el Outpost o en la red de clientes. Esto incluye Amazon S3, DynamoDB utilizado con la vista decoherencia de EMRFS y Amazon RDS si se utiliza una instancia intrarregión para un clúster de EMR convarios nodos maestros.

Creación de un clúster de Amazon EMR enAWSOutpostsCreación de un clúster de Amazon EMR enAWS Outpostses similar a crear un clúster de Amazon EMRen laAWSCloud. Al crear un clúster de Amazon EMR enAWS Outposts, debe especificar una subred deAmazon EC2 asociada a su Outpost.

Una Amazon VPC puede abarcar todas las zonas de disponibilidad de unaAWSRegión .AWS Outpostssonextensiones de zonas de disponibilidad y puede ampliar una Amazon VPC en una cuenta para queabarque varias zonas de disponibilidad y ubicaciones de Outpost asociadas. Al configurar su Outpost, leasocia un grupo de subredes para ampliar su entorno de VPC regional a sus instalaciones. Las instanciasde Outpost y los servicios relacionados aparecen como parte de su VPC regional, similar a una zona dedisponibilidad con subredes asociadas. Para obtener más información, consulte la Guía del usuario deAWS Outposts.

Consola

Para crear un nuevo clúster de Amazon EMR enAWS OutpostsconAWS Management Console, especifiqueuna subred de Amazon EC2 asociada a su Outpost.

1. Abra el iconoConsola 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. UNDERConfiguración de hardware, paraSubred 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. Amazon EMR admite un limitado volumen de EBS y tiposde instancias de Amazon EBS enAWS Outposts.

AWS CLI

180

Page 189: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónClústeres de EMR enAWSZonas locales

Para crear un nuevo clúster de Amazon EMR enAWS OutpostsconAWS CLI, especifique una subred EC2asociada a su Outpost.

En el siguiente ejemplo se crea un clúster de Amazon EMR en un Outpost. ReemplazarSubred -22xxxx01con una subred EC2 asociada a su Outpost.

aws emr create-cluster \--name "Outpost cluster" \--release-label emr-5.36.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 enAWSZonas localesA partir de la versión 5.28.0 de Amazon EMR, puede crear y ejecutar clústeres de Amazon EMR enunAWSSubred de Local Zones como extensión lógica de unAWSRegión que admite Local Zones. Unazona local habilita las funciones de Amazon EMR y un subconjunto deAWSservicios, como los serviciosinformáticos y de almacenamiento, se encuentren más cerca de los usuarios para proporcionar un accesode latencia muy baja a las aplicaciones que se ejecutan localmente. Para obtener una lista de las LocalZones disponibles, consulteAWSZonas locales. Para obtener información acerca de cómo obtener accesodisponibleAWSLocal Zones, consulteRegiones, zonas de disponibilidad y zonas locales.

Tipos de instancias admitidasLos siguientes tipos de instancias están disponibles para clústeres de Amazon EMR en Local Zones. Ladisponibilidad de los distintos tipos de instancias puede variar según la región.

Clase de instancia Tipos de instancias

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 LocalZonesCrear un clúster de Amazon EMR enAWSLocal Zones mediante el lanzamiento del clúster de AmazonEMR en una subred de Amazon VPC asociada a una zona local. Puede acceder al clúster utilizando elnombre de la zona local, como us-west-2-lax-1a en la consola de EE.UU. Oeste (Oregón).

Actualmente, las Local Zones no son compatibles con blocs de notas de Amazon EMR ni las conexionesdirectamente a Amazon EMR utilizando el punto de enlace de la interfaz de la VPC (AWSPrivateLink).

181

Page 190: Amazon EMR - Guía de administración

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 Local Zones con laAWS Management Console,especifique una subred de Amazon EC2 asociada a su zona local.

1. Abra el iconoConsola 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. UNDERConfiguración de hardware, paraSubred 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 flotas

de instancias y elija un tipo de instancia.

Para crear un clúster de Amazon EMR en una zona local utilizando laAWS CLI

Utilice el comando create-cluster, junto con la SubnetId Para la zona local, tal y como se muestra en elejemplo siguiente. Sustituya subred-22XXXXXXXXXX1234567 por la zona local SubnetId y sustituya otrasopciones segú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.x es compatible con Hadoop 3, que permite YARN NodeManager para lanzarcontenedores, bien directamente en el clúster de Amazon EMR 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.x 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 más información acerca de cada opción de configuración y cómo se utiliza, consulteInicio deaplicaciones mediante contenedores 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

182

Page 191: Amazon EMR - Guía de administración

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, le recomendamos que use Amazon ECR, que es un registro de contenedores de Dockertotalmente administrado que le permite crear sus propias imágenes personalizadas y alojarlas en unaarquitectura escalable y de alta disponibilidad.

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 puede acceder directamente a cualquier registro disponible a través de Internet.

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 Docker se pueden alojar en Amazon ECRy se puede acceder a ellas a través deAWS PrivateLink.

Para obtener más información acerca de cómo utilizarAWS PrivateLinkpara permitir el acceso a AmazonECR en un escenario de subred privada, consulte.Configuración deAWS PrivateLinkpara Amazon ECS yAmazon ECR.

Configuración de registros de DockerPara utilizar registros de Docker con Amazon EMR, debe configurar Docker para que confíe en elregistro específico que desea utilizar para resolver las imágenes de Docker. Los registros de confianzapredeterminados son locales (privados) y de Centos. Para utilizar otros repositorios públicos o AmazonECR, puede anulardocker.trusted.registriesconfiguración de/etc/hadoop/conf/container-executor.cfgutilizando la API de clasificación de EMR con elcontainer-executorclave declasificación.

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.

[ { "Classification": "container-executor", "Configurations": [ { "Classification": "docker",

183

Page 192: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de YARN para acceder a Amazon

ECR en EMR 6.0.0 y versiones anteriores

"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 laAWS Command LineInterface(AWS CLI), cree un archivo llamadocontainer-executor.jsoncon el contenido de laconfiguración JSON de contener-executor anterior. A continuación, utilice los siguientes comandos paralanzar 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 ECRen EMR 6.0.0 y versiones anterioresSi es la primera vez que utiliza Amazon ECR, siga las instrucciones deIntroducción a Amazon ECRycompruebe que tiene acceso a Amazon ECR desde cada instancia de su clúster de Amazon EMR.

En EMR 6.0.0 y anteriores, para acceder a Amazon ECR utilizando el comando de Docker, antes debegenerar unas credenciales. Para verificar que YARN pueda acceder a las imágenes desde Amazon ECR,utilice la variable de entorno contenedoraYARN_CONTAINER_RUNTIME_DOCKER_CLIENT_CONFIGparapasar una referencia a las credenciales que 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 para autenticarse en Amazon ECR.

184

Page 193: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de YARN para acceder a Amazon

ECR en EMR 6.0.0 y versiones anteriores

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, consulteEjecución de aplicacionesSpark con Docker utilizando Amazon EMR 6.0.0.

En EMR 6.1.0 y versiones posteriores, no es necesario configurar manualmente la autenticaciónen Amazon ECR. Si se detecta un registro de Amazon ECR en lacontainer-executorclave declasificación, se activa la función de autenticación auto de Amazon ECR y YARN gestiona el proceso deautenticación cuando envía un trabajo de Spark con una imagen ECR. Puede confirmar si la autenticaciónautomática está habilitada marcandoyarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enableden el terreno de hilo. La autenticación automática está habilitada y laconfiguración de autenticación YARN se establece entruesi eldocker.trusted.registriescontieneuna URL de registro ECR.

Requisitos previos para utilizar la autenticación automática en Amazon ECR

• EMR versión 6.1.0 o posterior• El registro ECR incluido en la configuración se encuentra en la misma región que el clúster• Función de IAM con permisos para obtener el token de autorización y extraer cualquier imagen

ConsulteConfiguración con Amazon ECRpara obtener más información.

Cómo habilitar la autenticación automática

SeguirConfiguración de registros de Docker (p. 183)para configurar un registro de Amazon ECR comoregistro de confianza y asegurarse de que el repositorio de Amazon ECR y el clúster estén en la mismaregión.

Para habilitar esta función incluso cuando el registro ECR no esté configuradoen el registro de confianza, utilice la clasificación de configuración paraestableceryarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabledatrue.

Cómo deshabilitar la autenticación automática

De forma predeterminada, la autenticación automática está deshabilitada si no se detecta ningún registrode Amazon ECR en el registro de confianza.

Para deshabilitar la autenticación automática, incluso cuando el registro de AmazonECR está configurado en el registro de confianza, utilice la clasificación de configuraciónpara estableceryarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabledafalse.

185

Page 194: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTerminación del clúster de

Cómo comprobar si la autenticación automática está habilitada en un clúster

En el nodo maestro, utilice un editor de texto comoviPara ver el contenido delarchivo: vi /etc/hadoop/conf.empty/yarn-site.xml. Compruebe el valordeyarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabled.

Terminación del clúster deEn esta sección se describen las opciones para cerrar clústeres de Amazon EMR. Cubre la protección determinación automática y terminación, y cómo interactúan con otras funciones de Amazon EMR.

Puede cerrar un clúster de Amazon EMR de las siguientes formas:

• Terminación tras la ejecución del último paso- Cree un clúster transitorio que se apague después decompletar todos los pasos.

• Terminación automática (después de inactividad)- Cree un clúster con una política de terminaciónautomática que se apaga después de un tiempo de inactividad especificado. Para obtener másinformación, consulte Uso de una política de terminación automática (p. 188).

• Terminación manual- Cree un clúster de ejecución prolongada que siga ejecutándose hasta que lotermina deliberadamente. Para obtener información sobre cómo terminar un clúster de forma manual,consulte Terminar un clúster (p. 533).

También puede configurar la protección contra terminación en un clúster para evitar apagar instancias EC2por accidente o error.

Cuando Amazon EMR cierra el clúster, se apagan todas las instancias de Amazon EC2 del clúster. Losdatos del almacén de instancias y los volúmenes de EBS dejan de estar disponibles y no se puedenrecuperar. La comprensión y administración de la terminación del clúster es fundamental para desarrollaruna estrategia que permita administrar y preservar los datos escribiéndolos en Amazon S3 y equilibrandolos costos.

Temas• Configuración de un clúster para que continúe o finalice tras la ejecución por pasos (p. 186)• Uso de una política de terminación automática (p. 188)• Uso de la protección contra terminación (p. 191)

Configuración de un clúster para que continúe ofinalice tras la ejecución por pasosEn este tema se explican las diferencias entre el uso de un clúster de larga duración y la creación de unclúster transitorio que se apaga después de ejecutar el último paso. También se explica cómo configurar laejecución de pasos para un clúster.

Crear un clúster en ejecución prolongadaDe forma predeterminada, los clústeres creados mediante la consola o laAWS CLIson de larga duración.Los clústeres de larga duración continúan ejecutándose, aceptando trabajo y acumulando cargos hastaque actúes para cerrarlos.

Un clúster de ejecución prolongada es eficaz en las siguientes situaciones:

186

Page 195: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de un clúster para que

continúe o finalice tras la ejecución por pasos

• Cuando necesite consultar datos de forma interactiva o automática.• Cuando necesita interactuar con las aplicaciones de big data alojadas en el clúster de forma continua.• Cuando procesa periódicamente un conjunto de datos tan grande o con tanta frecuencia que resulta

poco eficiente lanzar clústeres nuevos y cargar los datos cada vez.

También puede configurar la protección contra terminación en un clúster de larga duración para evitarapagar instancias EC2 por accidente o error. Para obtener más información, consulte Uso de la proteccióncontra terminación (p. 191).

Note

Amazon EMR habilita automáticamente la protección de terminación de todos los clústeres convarios nodos maestros y anula cualquier configuración de ejecución de pasos que proporcione alcrear el clúster. Puede deshabilitar la protección contra terminación después de iniciar el clúster.Consulte Configuración de la protección de terminación para clústeres en ejecución (p. 195).Para cerrar un clúster con varios nodos principales, en primer lugar debe modificar los atributosdel clúster para deshabilitar la protección contra terminación. Para obtener instrucciones, consulteFinalización de un clúster de Amazon EMR con varios nodos maestros (p. 173).

Configurar un clúster para que finalice tras la ejecución por pasosCuando configura la terminación tras la ejecución del paso, el clúster se inicia, ejecuta acciones dearranque y, a continuación, ejecuta los pasos especificados. Tan pronto como finaliza el último paso,Amazon EMR finaliza las instancias Amazon EC2 del clúster. Los clústeres que lanzan con la API deAmazon EMR tienen habilitada la ejecución de pasos de forma predeterminada.

La terminación tras ejecución de pasos es efectiva para clústeres que realizan una tarea de procesamientoperiódica, como, por ejemplo, un procesamiento de datos diario. La ejecución de pasos también le ayuda agarantizar que solo se facture el tiempo necesario para procesar los datos. Para obtener más informaciónacerca de los pasos, consulte Enviar trabajo a un clúster (p. 571).

Para deshabilitar la ejecución de pasos mediante Amazon EMRAPI

• Cuando utilice la acción RunJobFlow para crear un clúster, establezca la propiedadKeepJobFlowAliveWhenNoSteps en true.

Para habilitar la ejecución de pasos mediante opciones rápidas de laAWS Management Console

1. Abra la consola de Amazon EMR enhttps://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 ejecución de pasos utilizando las opciones avanzadas de laAWS ManagementConsole

1. Abra la consola de Amazon EMR enhttps://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).

187

Page 196: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una política de terminación automática

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 ejecución de pasos mediante elAWS 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

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun signo de intercalación (^).

aws emr create-cluster --name "Test cluster" --release-label emr-5.36.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

Uso de una política de terminación automáticaUna política de terminación automática le permite orquestar la limpieza de clústeres sin necesidad desupervisar y finalizar manualmente los clústeres no utilizados. Cuando agrega una política de terminaciónautomática a un clúster, especifica la cantidad de tiempo de inactividad tras el cual el clúster debe cerrarseautomáticamente.

Según la versión de la versión, Amazon EMR utiliza distintos criterios para marcar un clúster como inactivo.En la tabla siguiente se describe cómo Amazon EMR determina la inactividad del clúster.

Cuando utiliza... Un clúster se considera inactivo cuando...

Versión 6.4.0 y posteriores de Amazon EMR • No hay aplicaciones YARN activas• La utilización de HDFS es inferior al 10%• No hay conexiones de notebook EMR o EMR

Studio activas• No hay interfaces de usuario de aplicaciones en

clúster en uso

Versiones de Amazon EMR 5.30.0 - 5.33.0 y 6.1.0a 6.3.0

• No hay aplicaciones YARN activas• La utilización de HDFS es inferior al 10%• El clúster no tiene trabajos de Spark activos

Note

Amazon EMR marca un clúster comoinactivo y puede finalizar automáticamenteel clúster incluso si tiene un kernel dePython3 activo. Esto se debe a que la

188

Page 197: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una política de terminación automática

Cuando utiliza... Un clúster se considera inactivo cuando...ejecución de un kernel de Python3 noenvía un trabajo de Spark en el clúster.Para utilizar la terminación automática conun kernel de Python3, le recomendamosque utilice Amazon EMR versión 6.4.0 oposterior.

Note

Las versiones 6.4.0 y posteriores de Amazon EMR admiten un archivo en clúster para detectaractividad en el nodo maestro: /emr/metricscollector/isbusy. Cuando utiliza un clústerpara ejecutar scripts de shell o aplicaciones que no pertenecen a Yarn, puede tocar o actualizarperiódicamenteisbusypara indicar a Amazon EMR que el clúster no está inactivo.

Puede adjuntar una política de terminación automática al crear un clúster o agregar una política a unclúster existente. Para cambiar o deshabilitar la terminación automática, puede actualizar o quitar lapolítica.

ConsideracionesTenga en cuenta las siguientes características y limitaciones antes de utilizar una política de terminaciónautomática:

• La terminación automática se admite con las versiones 5.30.0 de y 6.1.0 de Amazon EMR.• La terminación automática está disponible en los siguientesRegiones de AWS: EE. UU. Este (N. Virginia,

Ohio), EE.UU. Oeste (California, Oregón), Asia Pacífico (Bombay, Seúl, Singapur, Sídney, Tokio, HongKong), Canadá (Central), China (Pekín, Ningxia), Europa (Irlanda, Fráncfort, Londres, París, Estocolmo,Milán), Sudamérica (São Paulo), Oriente Medio (Bahréin) y África (Ciudad del Cabo).

• El tiempo de espera de inactividad se establece por defecto en 60 minutos (una hora) cuando no seespecifica una cantidad. Puede especificar un tiempo de espera mínimo de inactividad de un minuto y untiempo de espera de inactividad máximo de 7 días.

• Con las versiones 6.4.0 y posteriores de Amazon EMR, la terminación automática está habilitada deforma predeterminada cuando crea un nuevo clúster mediante la consola de Amazon EMR.

• Amazon EMR publica alta resoluciónAmazon CloudWatchmétricas cuando habilita la terminaciónautomática de un clúster. Puede utilizar estas métricas para realizar un seguimiento de la actividad delclúster y la inactividad. Para obtener más información, consulte Métricas de capacidad clúster (p. 513).

• La terminación automática no se admite cuando utiliza aplicaciones no basadas en Yarn, como Presto,Trino o HBase.

• Para utilizar la terminación automática, el proceso del recopilador de métricas debe poder conectarse alextremo de la API pública para su terminación automática en API Gateway. Si utiliza un nombre de DNSprivado conAmazon Virtual Private Cloud, la terminación automática no funcionará correctamente. Paragarantizar que la terminación automática funcione, le recomendamos que realice una de las siguientesoperaciones:• Elimine el extremo de la VPC de la interfaz de API Gateway de su Amazon VPC.• Siga las instrucciones en¿Por qué aparece un error HTTP 403 Prohibido al conectarse a mis API de

API Gateway desde una VPC?Para deshabilitar la configuración de nombre de DNS privado.• Lance su clúster en una subred privada en su lugar. Para obtener más información, consulte el tema

deSubredes privadas (p. 226).• (EMR 5.30.0 y versiones posteriores) Si elimina el valor predeterminadoPermitir todoregla de salida

a 0.0.0.0/ para el grupo de seguridad principal, debe agregar una regla que permita la conectividadTCP saliente al grupo de seguridad para el acceso al servicio en el puerto 9443. El grupo de seguridadpara el acceso al servicio también debe permitir el tráfico TCP entrante en el puerto 9443 del grupo de

189

Page 198: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una política de terminación automática

seguridad principal. Para obtener más información acerca de la configuración de grupos de seguridad,consulte.Grupo de seguridad administrado por Amazon EMR para la instancia principal (subredesprivadas).

Permisos para utilizar la terminación automáticaAntes de poder aplicar y administrar las políticas de terminación automática de Amazon EMR, necesita lospermisos que se enumeran en el siguiente ejemplo de política de permisos de IAM.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowAutoTerminationPolicyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:PutAutoTerminationPolicy", "elasticmapreduce:GetAutoTerminationPolicy", "elasticmapreduce:RemoveAutoTerminationPolicy" ], "Resource": "<your-resources>" }}

Adjuntar, actualizar o quitar una política de terminaciónautomáticaEn esta sección se incluyen instrucciones para ayudarle a adjuntar, actualizar o quitar una política determinación automática de un clúster de Amazon EMR. Antes de trabajar con políticas de terminaciónautomática, asegúrese de tener los permisos de IAM necesarios. Consulte Permisos para utilizar laterminación automática (p. 190).

Console

Para adjuntar una política de terminación automática al crear un clúster

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. UNDERConfiguración de hardware, seleccioneTerminación automática.4. Especifique el número de horas y minutos inactivos tras los cuales el clúster debe terminar

automáticamente. El tiempo de inactividad predeterminado es de una hora.5. Elija las demás opciones que sean necesarias para la aplicación y, a continuación, elija Create

cluster (Crear clúster).

Para adjuntar una política de terminación automática al crear un bloc de notas EMR

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. ElegirBloc de notasy, a continuación, elijaCrear libreta de.3. ElegirCrear un clúster.4. SelectHabilita la terminación automáticay, a continuación, especifique el número de horas y

minutos de inactividad tras los cuales el clúster debe terminar automáticamente. El tiempo deinactividad predeterminado es de una hora.

5. Elija los demás ajustes que sean necesarios para su portátil de EMR y, a continuación, elijaCrearlibreta de.

190

Page 199: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la protección contra terminación

Para adjuntar, actualizar o quitar una política de terminación automática de un clúster enejecución

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. SelectClústeresy elija el clúster que desea actualizar.3. Elija el iconoHardwarede la página de detalles del clúster.4. Seleccione o desactiveHabilita la terminación automáticapara habilitar o desactivar la función. Si

habilita la terminación automática, especifique el número de horas y minutos inactivos tras loscuales el clúster debe terminar automáticamente.

AWS CLI

Antes de comenzar

Antes de trabajar con políticas de terminación automática, le recomendamos que actualice a la versiónmás reciente delAWS CLI. Para obtener instrucciones, consulteInstalar, actualizar y desinstalar laAWSCLI.

Para adjuntar o actualizar una política de terminación automática mediante laAWS CLI

• Puede utilizar elaws emr put-auto-termination-policypara adjuntar o actualizar unapolítica de terminación automática en un clúster.

En el ejemplo siguiente se especifican 3600 segundos paraIdleTimeout. Si noespecificaIdleTimeout, el valor por defecto es de una hora.

aws emr put-auto-termination-policy \--cluster-id <your-cluster-id> \--auto-termination-policy IdleTimeout=3600

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar lalegibilidad. Se pueden quitar o utilizar en los comandos de Linux. En Windows, quítalos oreemplácelos por un signo de intercalación (^).

También puede especificar un valor para--auto-termination-policycuando utilizas elawsemr create-clustercomando. Para obtener más información sobre cómo usar los comandosde Amazon EMR en laAWS CLI, consulte elAWS CLIReferencia de los comandos.

Para eliminar una política de terminación automática mediante laAWS CLI

• Usaraws emr remove-auto-termination-policypara quitar una política de terminaciónautomática de un clúster. Para obtener más información sobre cómo usar los comandos deAmazon EMR en laAWS CLI, consulte elAWS CLIReferencia de los comandos.

aws emr remove-auto-termination-policy --cluster-id <your-cluster-id>

Uso de la protección contra 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 de

191

Page 200: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la protección contra terminación

terminació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.

Con la protección de terminación habilitada,TerminateJobFlowsLa acción 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 contra terminación.

Warning

La protección contra la terminación no garantiza que los datos se conserven en caso de errorhumano o de una solución alternativa; por ejemplo, si se emite un comando de reinicio desdela línea de comandos mientras está conectado a la instancia mediante SSH, si una aplicación oscript que se ejecuta en la instancia emite un comando de reinicio o si Amazon EC 2 o AmazonEMR API se utiliza para deshabilitar la protección de terminación. Incluso con la protección determinación habilitada, los datos guardados en el almacenamiento de instancias, incluidos losdatos HDFS, se pueden perder. Escriba la salida de datos en ubicaciones de Amazon S3 y creeestrategias de backup según corresponda para los requisitos de continuidad de su negocio.

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 AWS Management Console o la AWS CLI. Paraobtener más información, consulte Cambio manual de un clúster en ejecución (p. 563).

• 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. 554).

• Eliminar instancias de una flota de instancias reduciendo la capacidad de destino. Para obtener másinformación, consulte Opciones de flota de inst (p. 236).

Protección contra la terminación y Amazon EC2Un clúster de Amazon EMR con la protección de terminación habilitada tieneladisableAPITerminationconjunto de atributos para todas las instancias Amazon EC2 del clúster.Si una solicitud de terminación procede de Amazon EMR y los ajustes de Amazon EMR y Amazon EC2para un conflicto de instancias, la configuración de Amazon EMR sustituye la configuración de AmazonEC2. Por ejemplo, si utiliza la consola de Amazon EC2 parahabilitarprotección contra terminación en unainstancia de Amazon EC2 de un clúster que tiene protección contra terminacióndiscapacitado, cuandoutiliza la consola de Amazon EMR,AWS CLIcomandos para Amazon EMR o la API de Amazon EMR parafinalizar el clúster, los conjuntos de Amazon EMRDisableApiTerminationafalsey finaliza la instanciajunto con otras instancias.

Important

Si se crea una instancia como parte de un clúster de Amazon EMR con protección contraterminación y la API de Amazon EC2 oAWS CLIse utilizan para modificar la instancia de modoqueDisableApiTerminationesfalsey, a continuación, la API de Amazon EC2 oAWSCLIcomandos ejecutan elTerminateInstances, la instancia de Amazon EC2 finaliza.

Protección de terminación y nodos YARN poco saludablesAmazon EMR comprueba periódicamente el estado de Apache Hadoop YARN de los nodos que seejecutan en las instancias principales de Amazon EC2 de un clúster. El estado de salud se notificamediante laServicio de comprobador de estado de NodeManager. Si un nodo informaUNHEALTHY, la

192

Page 201: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la protección contra terminación

denegación del controlador de instancias de Amazon EMR lista el nodo y no le asigna contenedores YARNhasta 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 recursos (p. 597).

Si el nodo permaneceUNHEALTHYdurante más de 45 minutos, Amazon EMR realiza la siguiente acción enfunción del estado de la protección de terminación.

Termination protection Resultado

Habilitada (recomendado) Las instancias principales de Amazon EC2permanecen en estado de denegación y siguencontando para la capacidad del clúster. Puedeconectarse a una instancia principal de AmazonEC2 para la configuración y la recuperación dedatos, así como cambiar el tamaño del clúster paraañadir capacidad. Para obtener más información,consulte Errores recursos (p. 597).

Los nodos de tareas en mal estado están exentosde la protección contra terminación y finalizarán.

Deshabilitado La instancia de Amazon EC2 se ha terminado.Amazon EMR aprovisiona una instancia nuevaen función del número especificado de instanciasdel grupo de instancias o la capacidad de destinopara las flotas de instancias. Si todos los nodossecundarios tienen el estado UNHEALTHY durantemás de 45 minutos, el clúster se termina e informade un estado 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 contra terminación y ejecución por pasosCuando habilita la ejecución de pasos ytambiénhabilitar la protección contra terminación, Amazon EMRignora la protección de terminación.

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 Enviar trabajo a unclúster (p. 571).

Si falla un paso, está configurado conActionOnFailureestablecido enCANCEL_AND_WAIT, si se hahabilitado la ejecución de pasos, el clúster termina sin ejecutar los pasos siguientes.

193

Page 202: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la protección contra 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 Ejecución de pasos Termination protection Resultado

Habilitado Deshabilitado El clúster termina

Habilitado Habilitado El clúster termina

Deshabilitado Habilitado El clúster continúa

TERMINATE_CLUSTER

Deshabilitado Deshabilitado El clúster termina

Protección de terminación e instancias de subastaLa terminación de Amazon EMR no impide que una instancia de subasta de Amazon EC2 termine cuandoel precio de subasta supera el precio máximo de subasta.

Configuración de la protección contra terminación al iniciar unclú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 Amazon EMR Console: la protección contra terminación esdiscapacitadode formapredeterminada.

• Opciones avanzadas de Amazon EMR Console: la protección contra terminación esenabledde formapredeterminada.

• AWS CLI aws emr create-cluster—La protección contra la terminación esdiscapacitadoa menosque--termination-protectedse especifica.

• API de Amazon EMRRunJobFlowcomando: la protección contra terminación esdiscapacitadoa menosque elTerminationProtectedvalor booleano se establece entrue.

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 enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. ParaPaso 3: Configuración del clúster general, UNDEROpciones generalesasegúrese de

queTermination protectionestá seleccionado para habilitarla o anule la selección para deshabilitarla.

194

Page 203: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la protección contra 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

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun signo de intercalación (^).

aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-5.36.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 laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Configuración de la protección de terminación para clústeres enejecuciónPuede 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 enhttps://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.

195

Page 204: Amazon EMR - Guía de administración

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

Trabajo con AMI de Amazon Linux en AmazonEMR

Amazon EMR utiliza una imagen de máquina de Amazon (AMI) de Amazon Linux para inicializar instanciasde Amazon EC2 al crear y lanzar un clúster. La AMI contiene el sistema operativo Amazon Linux, otrosoftware y las configuraciones necesarias para que cada instancia aloje su clúster de aplicaciones.

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 utiliza. Paraobtener más información acerca de la AMI de Amazon Linux predeterminada, consulte.Uso de la AMI deAmazon Linux predeterminada para Amazon EMR (p. 197). Al utilizar Amazon EMR 5.7.0 o posterior,puede optar por especificar una AMI de Amazon Linux personalizada en lugar de la AMI de Amazon Linuxpredeterminada para Amazon EMR. Una AMI personalizada le permite cifrar el volumen de dispositivo raízy personalizar las aplicaciones y las configuraciones como alternativa al uso de acciones de arranque.Puede especificar una AMI personalizada para cada tipo de instancia del grupo de instancias o de laconfiguración de flota de instancias de un clúster de Amazon EMR. La compatibilidad con varias AMIpersonalizadas le brinda la flexibilidad de utilizar más de un tipo de arquitectura en un clúster. ConsulteUso de una AMI personalizada (p. 199).

Amazon EMR adjunta 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 deAmazon EBS se prorratean por hora en función de los cargos de Amazon EBS mensuales para volúmenesgp2 en la región donde se ejecuta el clúster. Por ejemplo, el costo por hora para el volumen raíz en cadainstancia de clúster de una región en la que se cobran 0,10 USD/GB/mes, sería, aproximadamente, de0,00139 USD por hora (0,10 USD/GB/mes dividido entre 30 días dividido entre 24 horas y multiplicadopor 10 GB). Tanto si utiliza la AMI de Amazon Linux predeterminada o una AMI de Amazon Linuxpersonalizada, puede especificar el tamaño del volumen de dispositivo raíz de Amazon EBS desde 10 a100 GiB.

Para obtener más información acerca de las AMI de Amazon Linux, consulteImágenes de máquina deAmazon (AMI). Para obtener más información sobre el almacenamiento de instancias para las instanciasde Amazon EMR, consulteAlmacenamiento de instancia (p. 222).

Temas• Uso de la AMI de Amazon Linux predeterminada para Amazon EMR (p. 197)• Uso de una AMI personalizada (p. 199)

196

Page 205: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la AMI predeterminada

• Cambio de la versión de Amazon Linux para un clúster de lanzamiento (p. 207)• Especificación del volumen del dispositivo raíz de Amazon EBS (p. 208)

Uso 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. El comportamiento predeterminado para actualizarAmazon Linux 2 (AL2) en una AMI predeterminada de Amazon EMR es diferente a partir de Amazon EMR5.36.0 y versiones posteriores y Amazon EMR 6.6.0 y versiones posteriores.

Amazon EMR 5.36.0 y versiones posteriores y 6.6.0 y posteriores: actualizaciones automáticas de AmazonLinux

Cuando lanza un clúster con Amazon EMR 5.36.0 y versiones posteriores, o Amazon EMR 6.6.0 yversiones posteriores, utiliza automáticamente la última versión de Amazon Linux2 que se ha validado parala AMI predeterminada de Amazon EMR. Este es el comportamiento predeterminado de Amazon EMR5.36.0 y versiones posteriores, y las versiones 6.6.0 y posteriores de Amazon EMR. Para ver versionesde versiones específicas, consulteVersiones de la versión de Amazon EMR 5.xoVersiones de la versiónde Amazon EMR 6.xen laGuía de publicación de Amazon EMR. Tiene la opción de lanzar el clúster con laversión original de Amazon Linux que Amazon EMR 5.36.0 y versiones posteriores, y Amazon EMR 6.6.0y versiones posteriores se enviaron por primera vez. Para obtener más información sobre la especificaciónde la versión de Amazon Linux para su clúster, consulteCambio de la versión de Amazon Linux para unclúster de lanzamiento (p. 207).

Amazon EMR 5.35.0 y versiones anteriores y 6.5.0 y anteriores: AMI de Amazon Linux «bloqueada» en laversión de la versión de Amazon EMR

Para Amazon EMR 5.35.0 y versiones anteriores, y 6.5.0 y versiones anteriores, la AMI predeterminada sebasa en la mayoría de los up-to-date AMI de Amazon Linux disponible en el momento de la publicación deAmazon EMR. La AMI se prueba para determinar su compatibilidad con las aplicaciones de big data y lascaracterísticas de Amazon EMR incluidas en esa versión.

Cada Amazon EMR 5.35.0 y versiones anteriores, y 6.5.0 y versiones anteriores de Amazon EMRestán «bloqueadas» en su respectiva versión de AMI de Amazon Linux asignada para mantener lacompatibilidad. Esto significa que las versiones anteriores de la AMI de Amazon Linux se utilizan paraversiones anteriores de Amazon EMR, incluso cuando las AMI de Amazon Linux más recientes estándisponibles. Por este motivo, recomendamos utilizar la versión más reciente de Amazon EMR, a menosque necesite una versión anterior por motivos de compatibilidad y no pueda realizar la migración. Si tieneque utilizar una versión anterior de Amazon EMR por motivos de compatibilidad, le recomendamos queutilice la versión más reciente de una serie. Por ejemplo, si tiene que utilizar la serie 5.12, utilice la 5.12.2en lugar de la 5.12.0 o la 5.12.1. Si aparece una versión nueva de una serie, considere la posibilidad demigrar las aplicaciones a dicha versión.

Cómo se administran las actualizaciones de softwareEstos son los comportamientos de actualización de software predeterminados que hay que tener encuenta:

• El comportamiento de arranque predeterminado excluye las actualizaciones del kernel. Cuando unainstancia de Amazon EC2 de un clúster que está basada en la AMI de Amazon Linux de predeterminadapara Amazon EMR arranca por primera vez, comprueba los repositorios de paquetes habilitados paraAmazon Linux y Amazon EMR para determinar si existen actualizaciones de software para la versiónde la AMI. Al igual que con otras instancias de Amazon EC2, las actualizaciones de seguridad críticase importantes de estos repositorios se instalan automáticamente. Sin embargo, si utiliza una versión

197

Page 206: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la AMI predeterminada

anterior de la AMI de Amazon Linux, es posible que la última actualización de seguridad no se instaleautomáticamente. Esto se debe a que los repositorios a los que hace referencia EMR se corrigen paracada versión de la AMI de Amazon Linux. Tenga en cuenta también que la configuración de red debepermitir la salida HTTP y HTTPS a los repositorios de Amazon Linux en Amazon S3; de lo contrario,las actualizaciones de seguridad no se realizarán correctamente. Para obtener más información,consulteRepositorio de paquetesen laGuía del usuario de Amazon EC2 para instancias de Linux. Deforma predeterminada, otros paquetes de software y actualizaciones del kernel que requieren un reinicio,incluidos NVIDIA y CUDA, quedan excluidos de la descarga automática en el primer arranque.

Important

Los clústeres de Amazon EMR que ejecutan AMI de Amazon Linux o Amazon Linux 2 (AmazonLinux Machine Images) utilizan el comportamiento predeterminado de Amazon Linux y nodescargan e instalan automáticamente actualizaciones importantes y críticas del kernel querequieren un reinicio. Es el mismo comportamiento que otras instancias de Amazon EC2que ejecutan la AMI de Amazon Linux predeterminada. Si las nuevas actualizaciones desoftware de Amazon Linux que requieren un reinicio (como actualizaciones del kernel, NVIDIAy CUDA) están disponibles después de que se publique una versión de Amazon EMR, lasinstancias de clúster de Amazon EMR que ejecutan la AMI predeterminada no descargan einstalan automáticamente dichas actualizaciones. Para obtener actualizaciones del kernel,puedespersonalice la AMI de Amazon EMRautilizar la Amazon Linux AMI más reciente.

• Importante. Los clústeres de Amazon EMR que ejecutan AMI de Amazon Linux o Amazon Linux 2(Amazon Linux Machine Images) utilizan el comportamiento predeterminado de Amazon Linux y nodescargan e instalan automáticamente actualizaciones importantes y críticas del kernel que requierenun reinicio. Es el mismo comportamiento que otras instancias de Amazon EC2 que ejecutan la AMIde Amazon Linux predeterminada. Si las nuevas actualizaciones de software de Amazon Linux querequieren un reinicio (como actualizaciones del kernel, NVIDIA y CUDA) están disponibles después deque se publique una versión de Amazon EMR, las instancias de clúster de Amazon EMR que ejecutanla AMI predeterminada no descargan e instalan automáticamente dichas actualizaciones. Para obteneractualizaciones del kernel, puede personalizar la AMI de Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html) para utilizar la última AMI de Amazon Linux (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).

• El clúster se inicia con o sin actualizaciones. Tenga en cuenta que si no se pueden instalaractualizaciones de software porque no se puede acceder a los repositorios de paquetes en el primerarranque del clúster, la instancia del clúster aún finaliza su lanzamiento. Por ejemplo, es posible que nose pueda acceder a los repositorios porque S3 no está disponible temporalmente o puede que tengareglas de VPC o firewall configuradas para bloquear el acceso.

• No corrassudo yum update. Cuando se conecta a una instancia de clúster mediante SSH, lasprimeras líneas de la salida en pantalla proporcionan un enlace a las notas de la versión de la AMI deAmazon Linux que utiliza la instancia, un aviso de la versión de la AMI de Amazon Linux más reciente,un aviso del número de paquetes disponibles para la actualización desde los repositorios habilitados. yuna directiva para ejecutarsudo 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 actualizaciones de software

• Si utiliza una versión anterior de Amazon EMR, considere y pruebe una migración a la versión másreciente 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 deAmazon EMR resulta muy útil para esto.

198

Page 207: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

• Evalúe las actualizaciones de software para sus aplicaciones y para la versión de la AMI de AmazonLinux de por separado. Únicamente pruebe e instale en entornos de producción los paquetes queconsidere absolutamente necesarios para el nivel de seguridad requerido y la funcionalidad o elrendimiento de las aplicaciones.

• Vea elCentro de seguridad de Amazon Linuxpara obtener 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ústerque lo necesiten. Para ello, es necesario que termine un clúster y lo vuelva a lanzar. Para obtener másinformación, consulte Crear acciones de arranque para instalar software adicional (p. 210).

Uso de una AMI personalizadaAl utilizar Amazon EMR 5.7.0 o posterior, puede optar por especificar una AMI de Amazon Linuxpersonalizada 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.Esto puede mejorar el tiempo de inicio del clúster y simplificar el flujo de trabajo de inicio. Para obtenermás información y un ejemplo, consulte Crear una AMI de Amazon Linux personalizada a partir de unainstancia preconfigurada (p. 200).

• Implementar configuraciones de clúster y de nodo más sofisticadas de lo que permiten las acciones dearranque.

• Cifre los volúmenes de dispositivo raíz de EBS (volúmenes de arranque) de instancias EC2 del clúster siestá utilizando una versión de Amazon EMR anterior a la 5.24.0. Al igual que con la AMI predeterminada,el tamaño mínimo de volumen raíz para una AMI personalizada es de 10 GiB. Para obtener másinformación, consulte Creación de una AMI personalizada con un volumen de dispositivo raíz de AmazonEBS cifrado (p. 205).

Note

A partir de Amazon EMR, versión 5.24.0, puede utilizar una opción de configuración deseguridad para cifrar el dispositivo raíz y los volúmenes de almacenamiento de EBS cuandoespecifiqueAWS KMScomo su proveedor clave. Para obtener más información, consulte Cifradode disco local (p. 300).

Debe existir una AMI personalizada en la mismaAWSRegión donde va a crear el clúster. Tambiéndebe coincidir con la arquitectura de instancias EC2. Por ejemplo, una instancia m5.xlarge tiene unaarquitectura x86_64. Por lo tanto, para aprovisionar un m5.xlarge mediante una AMI personalizada,la AMI personalizada también debe tener arquitectura x86_64. Del mismo modo, para aprovisionaruna instancia m6g.xlarge, que tiene arquitectura arm64, la AMI personalizada debe tener arquitecturaarm64. Para obtener más información sobre cómo identificar una AMI de Linux para su tipo de instancia,consulteEncontrar una AMI de Linuxen laGuía del usuario de Amazon EC2 para instancias de Linux.

Important

Los clústeres de Amazon EMR que ejecutan AMI de Amazon Linux o Amazon Linux 2 (AmazonLinux Machine Images) utilizan el comportamiento predeterminado de Amazon Linux y nodescargan e instalan automáticamente actualizaciones importantes y críticas del kernel querequieren un reinicio. Es el mismo comportamiento que otras instancias de Amazon EC2 queejecutan la AMI de Amazon Linux predeterminada. Si las nuevas actualizaciones de software deAmazon Linux que requieren un reinicio (como actualizaciones del kernel, NVIDIA y CUDA) estándisponibles después de que se publique una versión de Amazon EMR, las instancias de clústerde Amazon EMR que ejecutan la AMI predeterminada no descargan e instalan automáticamentedichas actualizaciones. Para obtener actualizaciones del kernel, puedespersonalice la AMI deAmazon EMRautilizar la Amazon Linux AMI más reciente.

199

Page 208: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

Crear una AMI de Amazon Linux personalizada a partir de unainstancia 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. 205).

Tutorial: Crear una AMI a partir de una instancia con software personalizadoinstalado

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

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun 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 siguiente comando:

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, consulteConexión a la instancia de Linux mediante SSHen laGuía delusuario de Amazon EC2 para instancias de Linux.

2. Realice las personalizaciones necesarias. Por ejemplo:

sudo yum install MySoftwarePackagesudo pip install MySoftwarePackage

200

Page 209: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

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 Utilizar una única AMI personalizada en un clúster de EMR (p. 201)y Creación de una AMI personalizada con un volumen de dispositivo raíz de Amazon EBScifrado (p. 205).

Cómo utilizar una AMI personalizada en un clúster de AmazonEMRPuede utilizar una AMI personalizada para aprovisionar un clúster de Amazon EMR de dos formas:

• Utilice una AMI personalizada única para todas las instancias EC2 en el clúster.• Utilice diferentes AMI personalizadas para los distintos tipos de instancias de EC2 utilizados en el

clúster.

Solo puede utilizar una de las dos opciones al aprovisionar un clúster de EMR y no puede cambiarlo unavez que se haya iniciado el clúster.

Consideraciones sobre el uso de AMI individuales frente a varias AMI personalizadas en un clústerde Amazon EMR

Consideración AMI personalizadaúnica

Multiple AMI personalizadas

Utilice procesadores x86 y Graviton2con AMI personalizadas en el mismoclúster

☓No admitido ✓soportadas

La personalización de AMI varíasegún los tipos de instancias

☓No admitido ✓soportadas

Cambie las AMI personalizadas alagregar nuevos grupos o flotas deinstancias de tareas a un clústeren ejecución. Nota: no se puedecambiar la AMI personalizada delos grupos o flotas de instanciasexistentes.

☓No admitido ✓soportadas

UsarAWSConsola para iniciar unclúster

✓soportadas ☓No admitido

UsarAWS CloudFormation Parainiciar un clúster

✓soportadas ✓soportadas

Utilizar una única AMI personalizada en un clúster de EMRPara especificar un ID de AMI personalizada al crear un clúster, utilice una de las siguientes opciones:

201

Page 210: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

• AWS Management Console• AWS CLI• SDK de Amazon EMR• API de Amazon EMRRunJobFlow• AWS CloudFormation(consulteCustomAmiIDpropiedad enInstanceGroupConfig de clúster

de,InstanceTypeConfig de clúster de,InstanceGroupConfig recursos, o bienResourceInstanceFleetConfig-InstanceTypeConfig)

Para utilizar una única AMI personalizada en la consola

1. Abra la consola de Amazon EMR enhttps://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. Elija Next(Siguiente).

4. Seleccione valores en Hardware Configuration (Configuración de hardware) que sean adecuados parala aplicación y elija Next (Siguiente).

5. UNDEROpciones adicionales, paraID de AMI personalizada, introduzca un valor y asegúrese deque laActualizar todos los paquetes instalados al reiniciarla opción está seleccionada. Para obtenermás información acerca del cambio de la opción de actualización, consulte Administración deactualizaciones del repositorio de paquetes AMI (p. 204).

6. Para iniciar el clúster, elija Next (Siguiente) y complete las demás opciones de configuración.

Para especificar una AMI personalizada única utilizando laAWS CLI

• Utilice el parámetro --custom-ami-id para especificar el ID de AMI al ejecutar el comando awsemr create-cluster.

El siguiente ejemplo especifica un clúster que utiliza una única AMI personalizada con un volumende arranque de 20 GiB. Para obtener más información, consulte Especificación del volumen deldispositivo raíz de Amazon EBS (p. 208).

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun signo de intercalación (^).

aws emr create-cluster --name "Cluster with My Custom AMI" \--custom-ami-id MyAmiID --ebs-root-volume-size 20 \

202

Page 211: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

--release-label emr-5.7.0 --use-default-roles \--instance-count 2 --instance-type m5.xlarge

Utilizar varias AMI personalizadas en un clúster de Amazon EMRPara crear un clúster mediante varias AMI personalizadas, utilice una de las siguientes operaciones:

• AWSCLI versión 1.20.21 o posterior• AWS SDK• Amazon EMRRunJobFlowen laReferencia de la API de Amazon EMR• AWS CloudFormation(consulteCustomAmiIDpropiedad enInstanceGroupConfig de clúster

de,InstanceTypeConfig de clúster de,InstanceGroupConfig recursos, o bienResourceInstanceFleetConfig-InstanceTypeConfig)

LaAWSManagement Console no admite actualmente la creación de un clúster mediante varias AMIpersonalizadas.

Example - Usa elAWSCLI para crear un clúster de grupos de instancias mediante varias AMIpersonalizadas

Uso deAWSCLI versión 1.20.21 o posterior, puede asignar una única AMI personalizada a todo el clúster oasignar varias AMI personalizadas a cada nodo de instancia del clúster.

En el ejemplo siguiente se muestra un clúster de grupos de instancias uniforme creado con dos tipos deinstancias (m5.xlarge) utilizados en todos los tipos de nodos (maestro, núcleo, tarea). Cada nodo tienevarias AMI personalizadas. En el ejemplo se ilustran varias características de la configuración de variasAMI personalizadas:

• No hay ninguna AMI personalizada asignada a nivel de clúster. Esto es para evitar conflictos entrelas múltiples AMI personalizadas y una única AMI personalizada, lo que provocaría un error en ellanzamiento del clúster.

• El clúster puede tener varias AMI personalizadas en nodos de tareas principales, principales eindividuales. Esto permite personalizaciones de AMI individuales, como aplicaciones preinstaladas,sofisticadas configuraciones de clúster y volúmenes de dispositivos raíz de Amazon EBS cifrados.

• El nodo principal del grupo de instancias solo puede tener un tipo de instancia y la correspondienteAMI personalizada. Del mismo modo, el nodo maestro solo puede tener un tipo de instancia y lacorrespondiente AMI personalizada.

• El clúster puede tener varios nodos de tareas.

aws emr create-cluster --instance-groups InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-234567InstanceGroupType=TASK,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-345678InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-456789

Example - UsarUseAWSCLI versión 1.20.21 o posterior para agregar un nodo de tarea aun clúster de grupos de instancias en ejecución con varios tipos de instancias y varias AMIpersonalizadas

Uso deAWSCLI versión 1.20.21 o posterior, puede agregar varias AMI personalizadas a un grupode instancias que agregue a un clúster en ejecución. LaCustomAmiIdse puede utilizar con laadd-

203

Page 212: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

instance-groupscomo se muestra en el ejemplo siguiente. Observe que el mismo ID de AMIpersonalizado múltiple (ami-123456) se utiliza en más de un nodo.

aws emr create-cluster --instance-groups InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-234567

{ "ClusterId": "j-123456", ...}

aws emr add-instance-groups --cluster-id j-123456 --instance-groups InstanceGroupType=Task,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-345678

Example - UsarUseAWSCLI versión 1.20.21 o posterior para crear un clúster de flotas deinstancias, varias AMI personalizadas, varios tipos de instancias, maestro bajo demanda, núcleobajo demanda, varios núcleos y nodos de tareas

aws emr create-cluster --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456}'] InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']InstanceFleetType=TASK,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-456789},{InstanceType=m6g.xlarge, CustomAmiId=ami-567890}']

Example - UsarUseAWSCLI versión 1.20.21 o posterior para agregar nodos de tareas a un clústeren ejecución con varios tipos de instancias y varias AMI personalizadas

aws emr create-cluster --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456}'] InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']

{ "ClusterId": "j-123456", ...}

aws emr add-instance-fleet --cluster-id j-123456 --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']

Administración de actualizaciones del repositorio de paquetesAMIDurante 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. De forma predeterminada, las actualizaciones del kernel de AmazonLinux y otros paquetes de software que requieren reinicio no se actualizan. Tenga en cuenta que laconfiguración de red debe permitir la salida HTTP y HTTPS a los repositorios de Amazon Linux en AmazonS3; de lo contrario, las actualizaciones de seguridad no se realizarán correctamente.

204

Page 213: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de 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 AWS Management Console, puede seleccionar la opción de deshabilitar las actualizaciones alelegir 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 especificarNONEpara laRepoUpgradeOnBootparámetro.

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 instantánea de imagen desde una AMI sin cifrar a un destino cifrado. Para obtener másinformación acerca de la creación de volúmenes de EBS cifrados, consulteAmazon EBS encryptionenlaGuía del usuario de Amazon EC2 para instancias de Linux. La AMI de origen para la instantánea puedeser la AMI de Amazon Linux base o puede copiar una instantánea de una AMI derivada de la AMI deAmazon Linux base que ha personalizado.

Note

A partir de Amazon EMR, versión 5.24.0, puede utilizar una opción de configuración deseguridad para cifrar el dispositivo raíz y los volúmenes de almacenamiento de EBS cuandoespecifiqueAWS KMScomo su proveedor clave. Para obtener más información, consulte Cifradode disco local (p. 300).

Puede utilizar un proveedor de claves externo o unAWSTecla KMS para cifrar el volumen raíz de EBS.El rol de servicio que utiliza Amazon EMR (normalmente el predeterminado)EMR_DefaultRole) debepermitirse cifrar y descifrar el volumen, como mínimo, para que Amazon EMR cree un clúster con la AMI.Cuando se utiliza AWS KMS como proveedor de claves, esto significa que se deben permitir las siguientesacciones:

• kms:encrypt

• kms:decrypt

• kms:ReEncrypt*

• kms:CreateGrant

• kms:GenerateDataKeyWithoutPlaintext"

• kms:DescribeKey"

La forma más sencilla de hacerlo es añadir el rol como usuario clave, tal y como se describe en el siguientetutorial. Se proporciona la siguiente instrucción de política de ejemplo por si tiene que personalizar políticasde rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EmrDiskEncryptionPolicy", "Effect": "Allow", "Action": [ "kms:Encrypt",

205

Page 214: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de una AMI personalizada

"kms:Decrypt", "kms:ReEncrypt*", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "*" ] } ] }

Tutorial: Creación de una AMI personalizada con un volumen de dispositivo raízcifrado mediante una clave KMS

El primer paso de este ejemplo consiste en encontrar el ARN de una clave KMS o crear una nueva.Para obtener más información acerca de la creación de claves, consulteCrear clavesen laAWS KeyManagement ServiceGuía para desarrolladores. El siguiente procedimiento muestra cómo añadir el rol deservicio predeterminado, EMR_DefaultRole, como un usuario clave a la política de claves. Anote el valorARN para la clave en el momento de crearla o editarla. Puede utilizar el ARN más tarde, 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 AWS Management Console y abra la consola AWS Key Management Service (AWSKMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superiorderecha de la página.

3. Elija el alias de la clave de KMS que desea usar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el navegadorAdjuntar, seleccione la función de servicio de Amazon EMR. El nombre del rol

predeterminado es EMR_DefaultRole.6. Elija Attach (Adjuntar).

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

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun 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 Utilizar una única AMI personalizada en un clúster de

206

Page 215: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio de la versión de Amazon

Linux para un clúster de lanzamiento

EMR (p. 201). También puede elegir personalizar esta AMI instalando software y realizando otrasconfiguraciones. Para obtener más información, consulte Crear una AMI de Amazon Linux personalizada apartir de una instancia preconfigurada (p. 200).

Prácticas recomendadas y consideracionesAl crear una AMI personalizada para Amazon EMR, tenga en cuenta lo siguiente:

• Amazon EMR 5.30.0 y versiones posteriores y la serie de Amazon EMR 6.x se basan en Amazon Linux2. Para estas versiones de Amazon EMR, debe usar imágenes basadas en Amazon Linux 2 para AMIpersonalizadas. Para buscar una AMI 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 Linux 2.• Debe usar una AMI de Amazon Linux de 64 bits. No se admite una AMI de 32 bits.• Las AMI de Amazon Linux con varios volúmenes de Amazon EBS no se admiten.• Base la personalización en la AMI de Amazon Linux respaldada por EBS más reciente. Para obtener una

lista 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 de. Para conocer las instancias y tipos devirtualización compatibles, consulte Tipos de instancias admitidas (p. 217).

• 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 existen en la AMI) se trasladan a/mnt/tmp,/mnt/var, y/mnt/emrrespectivamente durante el inicio. Los archivos se conservan, pero si hay una gran cantidad dedatos, el startup puede tardar más de lo esperado.

• Si utiliza una AMI de Amazon Linux personalizada basada en una AMI de Amazon Linux con una fechade creación de 2018-08-11, el servidor Oozie no se inicia. Si utiliza Oozie, cree una AMI personalizadabasada en un ID de AMI de Amazon Linux con una fecha de creación diferente. Puede utilizar lassiguientes:AWS CLIpara devolver una lista de ID de imagen para todas las AMI de Amazon Linux deHVM con una versión 2018.03, junto con la fecha de lanzamiento, de modo que pueda elegir una AMIde Amazon Linux adecuada como base. Reemplazar MyRegion con su identificador de región, como porejemplo, 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

• En los casos en que utilizas una VPC con un nombre de dominio no estándar y AmazonProvidedDNS,no debes usar elrotateen la configuración DNS de sistemas operativos.

Para obtener más información, consulteCreación de una AMI de Linux con el respaldo de Amazon EBSenlaGuía del usuario de Amazon EC2 para instancias de Linux.

Cambio de la versión de Amazon Linux para un clústerde lanzamientoCuando lanza un clúster mediante Amazon EMR 6.6.0 o posterior, utiliza automáticamente la últimaversión de Amazon Linux2 que se ha validado para la AMI de Amazon EMR predeterminada. Puede

207

Page 216: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEspecificación del volumen deldispositivo raíz de Amazon EBS

especificar una versión de Amazon Linux diferente para su clúster mediante la consola de Amazon EMR olaAWS CLI.

Para cambiar la versión de Amazon Linux de un clúster de lanzamiento (consola)

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster (Crear clúster), Go to advanced options (Ir a las opciones avanzadas).3. UNDERConfiguración de software, paraLiberar el, eligeemr-6.6.0o más adelante y, a continuación,

elija las demás opciones que sean necesarias para su aplicación. Elija Next (Siguiente).4. Seleccione valores en Hardware Configuration (Configuración de hardware) que sean adecuados para

la aplicación y elija Next (Siguiente).5. UNDEROpciones adicionales, seleccione laVersión de Amazon Linuxy seleccione la versión de

Amazon Linux Release para su clúster.

6. Para iniciar el clúster, elija Next (Siguiente) y complete las demás opciones de configuración.

Para cambiar la versión de Amazon Linux de un clúster de lanzamiento (AWS CLI)

• Usar--os-release-labelparámetro para especificar elVersión de Amazon Linuxcuando ejecutaselaws emr create-clustercomando.

aws emr create-cluster --name "Cluster with Different Amazon Linux Release" \ --os-release-label 2.0.20210312.1 \--release-label emr-6.6.0 --use-default-roles \ --instance-count 2 --instance-type m5.xlarge

Especificación del volumen del dispositivo raíz deAmazon EBSEsta opción solo está disponible con Amazon EMR versión 4.x y posterior. Puede especificar el tamaño delvolumen de 10 GiB (el valor predeterminado) hasta 100 GiB al crear un clúster con laAWS ManagementConsole, elAWS CLIo la API de Amazon EMR. Este tamaño se aplica únicamente al volumen dedispositivo raíz de EBS a todas las instancias del clúster. No se aplica a volúmenes de almacenamiento,que se especifican de forma independiente para cada tipo de instancia al crear el clúster.

Para obtener más información acerca de Amazon EBS, consulteVolumen de dispositivo raíz de AmazonEC2.

Note

Si utiliza la AMI predeterminada, Amazon EMR adjunta SSD de uso general (gp2) como tipode volumen de dispositivo raíz. Una AMI personalizada puede tener otro tipo de volumende dispositivo raíz distinto. Sin embargo, el tamaño mínimo de volumen raíz para una AMIpersonalizada también es de 10 GiB. Para obtener más información, consulte Uso de una AMIpersonalizada (p. 199).

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 los

208

Page 217: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEspecificación del volumen deldispositivo raíz de Amazon EBS

volú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 GB/mes) * 0,931323/30/24 * EMR_EBSRootGIB * InstanceCount

Por ejemplo, tomemos un clúster que tenga un nodo maestro, un nodo principal y que utilice AMI basede Amazon Linux con el volumen de dispositivo raíz de 10 GiB predeterminado. Si el costo de EBS enla región es de 0,10 USD/GB/mes, resulta ser aproximadamente 0,00129 USD por instancia por hora y0,00258 USD por hora para el clúster (0,10 GB/mes dividido por 30 días, dividido por 24 horas, multiplicadopor 10 GB, multiplicado por 2 instancias de clúster).

Para especificar el volumen de dispositivo raíz de EBS utilizando la consola

1. Abra la consola de Amazon EMR enhttps://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.

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos porun 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

209

Page 218: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración del software de clú

Configuración del software de clúCuando seleccione una versión de software, Amazon EMR utiliza una imagen de máquina de Amazon(AMI) con Amazon Linux para instalar el software que usted elija al lanzar un clúster, como Hadoop, Sparky Hive. Amazon EMR ofrece nuevas versiones de forma periódica, incorporando nuevas características,nuevas aplicaciones y actualizaciones generales. Le recomendamos que utilice la última versión paralanzar el clúster siempre que sea posible. La última versión es la opción predeterminada al lanzar unclúster desde la consola.

Para obtener más información acerca de las versiones de Amazon EMR, así como las versiones desoftware disponible con cada versión, vaya a laGuí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, consulteConfiguración de aplicacionesen 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 enGuí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 arranqueson scripts que se ejecutan en las instancias cuando se lanza el clúster y que se ejecutan en nuevosnodos que se añaden a su clúster cuando se crean. Las acciones de arranque también son útiles parainvocarAWS CLIcomandos de cada nodo para copiar objetos de Amazon S3 a cada nodo de su 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, consulteDiferencias introducida en 4.xen la Guía de publicación de AmazonEMR.

Crear acciones de arranque para instalar softwareadicionalPuede 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 deAmazon EMR no se admiten en las versiones 4.x de Amazon EMR. Por ejemplo,configure-Hadoopyconfigure-daemonsno se admiten en la versión 4.x de Amazon EMR. En su lugar, AmazonEMR versión 4.x proporciona esta funcionalidad de forma nativa. Para obtener más información sobrecómo migrar las acciones de arranque de las versiones de AMI 2.x y 3.x de Amazon EMR a la versión 4.xde Amazon EMR, vaya aPersonalización de la configuración de clústeres y aplicaciones con versiones AMIanteriores de Amazon EMRen la Guía de publicación de Amazon EMR.

Temas• Conceptos básicos de acción de arranque (p. 211)• Ejecute de forma condicional una acción de arranque (p. 211)• Acciones de apagado (p. 211)• Utilizar acciones de arranque personalizadas (p. 212)

210

Page 219: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCrear acciones de arranque para instalar software adicional

Conceptos básicos de acción 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 utiliza la CLI, puede transferir referencias a scripts de acciones de arranque a Amazon EMRañadiendo el--bootstrap-actionsal crear el clúster utilizando lacreate-clustercomando. 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.

Ejecute de forma condicional una acción de arranquePara ejecutar solo acciones de arranque en el nodo maestro, puede utilizar una acción de arranquepersonalizada con cierta lógica para determinar si el nodo es maestro.

#!/bin/bashif grep isMaster /mnt/var/lib/info/instance.json | grep false;then echo "This is not master node, do nothing,exiting" exit 0fiecho "This is master, continuing to execute script"# continue with code logic for master node below

La siguiente salida se imprimirá desde un nodo central.

This is not master node, do nothing, exiting

El siguiente resultado se imprimirá desde el nodo maestro.

This is master, continuing to execute script

Para utilizar esta lógica, carga tu acción de arranque, incluido el código anterior, en tu depósito de AmazonS3. En la páginaAWS CLI, agregue el--bootstrap-actionsparámetro para elaws emr create-clusterLlamada a la API y especifique la ubicación de la secuencia de comandos de arranque comovalor dePath.

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úster

211

Page 220: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCrear acciones de arranque para instalar software adicional

se 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 utiliza Amazon EMR versiones 4.0 y posteriores, debe crear manualmente el/mnt/var/lib/instance-controller/public/shutdown-actions/en el nodo maestro. Noexiste de forma predeterminada; sin embargo, después de crearlos, los scripts en este directoriose ejecutan a pesar de todo antes del apagado. Para obtener más información acerca de laconexión al nodo principal para crear directorios, consulte Connect al nodo maestro utilizandoSSH (p. 519).

Utilizar 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.

Note

Para obtener el mejor rendimiento, le recomendamos que almacene acciones de arranquepersonalizadas, scripts y otros archivos que desee utilizar con Amazon EMR en un bucket deAmazon S3 que esté en el mismoRegión de AWScomo tu clúster.

Contenido• Agregar acciones de arranque personalizadas mediante elAWS CLIo la CLI de Amazon EMR (p. 212)• Agregar acciones de arranque personalizadas mediante la consola (p. 213)• Utilice una acción de arranque personalizada para copiar un objeto de Amazon S3 en cada

nodo (p. 214)

Agregar acciones de arranque personalizadas mediante elAWS CLIo la CLI deAmazon EMR

En el siguiente ejemplo se utiliza un script de acción de arranque para descargar y extraer unarchivo TAR comprimidos desde Amazon S3. El script de muestra está almacenado enhttps://elasticmapreduce.s3.amazonaws.com/bootstrap-actions/download.sh.

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,sustituyendomyKeycon el nombre de su key pair de EC2. Incluir--bootstrap-actionscomoparámetro y especifique la ubicación de la secuencia de comandos de arranque como valor dePath.

212

Page 221: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCrear acciones de arranque para instalar software adicional

• 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 el perfilde instancia EC2, escribaaws emr create-default-rolespara crearlos antes de escribirelcreate-clustersubcomando.

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

Agregar acciones de arranque personalizadas mediante 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 enhttps://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

opcionesPaso 3: Configuración general del clúster.5. En Bootstrap Actions (Acciones de arranque) seleccione Configure and add (Configurar y añadir) para

especificar 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 de (p. 487)

213

Page 222: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de hardware y redes de clúster

Utilice una acción de arranque personalizada para copiar un objeto de AmazonS3 en cada nodoPuede utilizar una acción de arranque para copiar objetos de Amazon S3 en cada nodo de un clúster antesde que se instalen las aplicaciones. La AWS CLI se instala en cada nodo del clúster, por lo que la acciónde arranque puede llamar a los comandos de la AWS CLI.

El siguiente ejemplo ilustra un script sencillo de acción de arranque que copia el archivo,myfile.jar,de Amazon S3 a una carpeta local,/mnt1/myfolder, en cada nodo de clúster. El script se almacena enAmazon S3 con el nombre de archivocopymyfile.shcon el siguiente contenido.

#!/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.36.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 de hardware y redes de clústerUna consideración importante al crear un clúster de Amazon EMR es cómo configurar instancias y lasopciones de red de Amazon EC2. En este capítulo, se tratan las siguientes opciones y, a continuación, secombinan todas ellas conprácticas recomendadas y directrices (p. 258).

• Tipos de nodos— Las instancias Amazon EC2 de un clúster de EMR se organizan entipos de nodos.Dispone de tres:nodos principales,nodos secundarios, ynodos de tarea. Cada tipo de nodo realiza unconjunto de roles definidos por las aplicaciones distribuidas que se instalan en el clúster. Durante unHadoop MapReduce o el trabajo de Spark, por ejemplo, los componentes en los nodos principales yde tareas procesan los datos, transfieren la salida a Amazon S3 o HDFS y devuelven los metadatosde estado al nodo principal. Para un clúster de un solo nodo, todos los componentes se ejecutan en elnodo principal. Para obtener más información, consulte Comprender los tipos de nodos: nodos maestro,núcleo y tarea (p. 215).

• Instancias EC2— Al crear un clúster, debe elegir las instancias de Amazon EC2 en las que se ejecutarácada tipo de nodo. El tipo de instancia EC2 determina el perfil de procesamiento y almacenamientodel nodo. La elección de la instancia de Amazon EC2 para los nodos es importante porque determinael perfil de rendimiento de los tipos de nodos individuales del clúster. Para obtener más información,consulte Configuración de instancias de Amazon EC2 (p. 216).

• Conexión— Puede lanzar su clúster de Amazon EMR en una VPC mediante una subred pública, unasubred privada o una subred compartida. La configuración de red determina cómo los clientes y losservicios pueden conectarse a clústeres para realizar el trabajo, cómo los clústeres se conectan a datastores y otrosAWSrecursos y las opciones que tiene para controlar el tráfico de esas conexiones. Paraobtener más información, consulte Configure redes (p. 224).

• Agrupación de instancias— La colección de instancias de EC2 que aloja cada tipo de nodo sedenominaparque de instanciaso ungrupo de instancias uniforme. La configuración de agrupación deinstancias es una elección que se toma al crear un clúster. Esta elección determina cómo se puedenagregar nodos al clúster mientras se está ejecutando. La configuración se aplica a todos los tipos denodos. No se puede cambiar más adelante. Para obtener más información, consulte Crear un clúster conflotas de instancias o grupos de instancias uniformes (p. 233).

214

Page 223: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComprender los tipos de no

Note

La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 de yposteriores de Amazon EMR, excluidas las 5.0.0 y 5.0.3.

Comprender los tipos de nodos: nodos maestro,núcleo y tareaUtilice esta sección para entender cómo Amazon EMR utiliza 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 ejecuta el servicio ResourceManager de YARNpara administrar recursos para aplicaciones. También ejecuta el servicio NameNode de HDFS, 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, consulteConnect al nodo maestro utilizando SSH (p. 519). 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 de (p. 487). 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. 524).

Note

Con Amazon EMR 5.23.0 y versiones posteriores, puede lanzar un clúster con tres nodosmaestros para admitir una alta disponibilidad de aplicaciones como YARN Resource Manager,HDFS NameNode, Spark, Hive y Ganglia. El nodo principal ya no es un posible punto único deerror con esta característica. Si se produce un error en los nodos principales, Amazon EMR seproduce un error automáticamente en a través de nodo principal en espera y sustituye el nodoprincipal erróneo por uno nuevo con las mismas acciones de arranque y configuración. Paraobtener más información, consultePlanificación y configuració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(HDFS). También ejecutan el demonio Task Tracker y realizan otras tareas de cálculo en paralelo en losdatos que las aplicaciones instaladas requieren. Por ejemplo, un nodo principal ejecuta daemons de YARNNodeManager, Hadoop. MapReduce tareas y ejecutores de Spark.

Solo hay un grupo de instancias principales o una flota de instancias por clúster, pero puede habervarios nodos ejecutándose en varias instancias Amazon EC2 del grupo de instancias o en la flota deinstancias. Con los grupos de instancias, puede añadir y eliminar instancias de Amazon EC2 mientrasse está ejecutando el clúster. También puede configurar el escalado automático para añadir instanciasen función del valor de una métrica. Para obtener más información acerca de cómo agregar y eliminarinstancias de Amazon EC2 con la configuración de los grupos de instancias, consulteEscalado de recursosdel cl (p. 535).

Con las flotas de instancias, puede añadir y eliminar instancias de forma eficaz modificando la flotade instanciasCapacidades de destinopara bajo demanda y spot en consecuencia. Para obtener másinformación acerca de las capacidades de destino, consulte Opciones de flota de inst (p. 236).

215

Page 224: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

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ándodebe usar instancias puntuales? (p. 259).

Nodos de tareaPuede utilizar nodos de tareas para añadir potencia para llevar a cabo tareas de computación parallel enlos datos, como, por ejemplo, Hadoop MapReduce tareas y ejecutores de Spark. Los nodos de tareas noejecutan el demonio de nodo de datos, ni tampoco almacenan datos en HDFS. Al igual que con los nodosprincipales, puede añadir nodos de tareas a un clúster añadiendo instancias Amazon EC2 a un grupo deinstancias uniforme o modificando las capacidades de destino para una flota de instancias de tareas.

Con la configuración de grupo de instancias uniforme, puede tener hasta un total de 48 grupos deinstancias de tareas. La capacidad de añadir grupos de instancias de este modo le permite combinartipos de instancia Amazon EC2 y opciones de precio, como por ejemplo instancias bajo demanda einstancias de subasta. Esto le ofrece flexibilidad para responder a los requisitos de carga de trabajo deforma rentable.

Con la configuración de flota de instancias, la capacidad de combinar tipos de instancia y opciones decompra está integrada, por lo que solo hay una flota de instancias de tareas.

Dado que las instancias puntuales se utilizan a menudo para ejecutar nodos de tareas, Amazon EMR tienela funcionalidad predeterminada para programar trabajos YARN, de modo que los trabajos en ejecuciónno fallan cuando se terminan los nodos de tareas que se ejecutan en instancias puntuales. Amazon EMRlo hace permitiendo que los procesos maestros de aplicaciones se ejecuten solo en nodos principales. Elproceso maestro de aplicaciones controla los trabajos en ejecución y necesita mantenerse vivo durantetoda la vida del trabajo.

Amazon EMR, versión 5.19.0 y posterior, utiliza laEtiquetas de nodo YARNfunción para lograrlo. (Lasversiones anteriores utilizaban un parche de código). Propiedades en elyarn-siteycapacity-schedulerlas clasificaciones de configuración se configuran de forma predeterminada para que elprogramador de capacidades YARN y el programador de errores aprovechen las etiquetas de los nodos.Amazon EMR etiqueta automáticamente los nodos principales con elCOREetiqueta y establece propiedadespara que los maestros de aplicaciones se programen solo en nodos con la etiqueta CORE. La modificaciónmanual de las propiedades relacionadas en las clasificaciones de configuración del sitio de hilo y delprogramador de capacidades, o directamente en los archivos XML asociados, podría interrumpir estafunción o modificar esta funcionalidad.

A partir de la serie de lanzamiento de Amazon EMR 6.x, la función de etiquetas de nodo YARN estádeshabilitada de forma predeterminada. De forma predeterminada, los procesos maestros de la aplicaciónse pueden ejecutar tanto en nodos principales como en nodos de tareas. Puede habilitar la función deetiquetas de nodo YARN configurando las siguientes propiedades:

• yarn.node-labels.enabled: true

• yarn.node-labels.am.default-node-label-expression: 'CORE'

Para obtener información sobre propiedades específicas, consulte Configuración de Amazon EMR paraevitar errores de trabajo debido a la finalización de instancias puntuales del nodo de tarea (p. 259).

Configuración de instancias de Amazon EC2Las instancias EC2 vienen en diferentes configuraciones conocidas comoTipos de instancias. Los tiposde instancias tienen una CPU, entrada/salida y capacidad de almacenamiento diferentes. Además deltipo de instancia, puede elegir distintas opciones de compra para instancias de Amazon EC2. Puedeespecificar diferentes tipos de instancia y opciones de compra dentro de grupos de instancias uniformes

216

Page 225: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

o flotas de instancias. Para obtener más información, consulte Crear un clúster con flotas de instanciaso grupos de instancias uniformes (p. 233). Para obtener instrucciones sobre cómo elegir los tipos deinstancias y las opciones de compra para su aplicación, consulteDirectrices de configuración de clúster yprácticas (p. 258).

Important

Cuando eliges un tipo de instancia mediante elAWS Management Console, el número devCPUsemuestra para cadaTipo de instanciaes el número de vcores YARN de ese tipo de instancia, noel número de vCPUs EC2 para ese tipo de instancia. Para obtener más información acerca delnúmero de vCPUs para cada tipo de instancia, consulteTipos de instancias de Amazon EC2.

Temas• Tipos de instancias admitidas (p. 217)• Opciones de compra de instancias (p. 220)• Almacenamiento de instancia (p. 222)

Tipos de instancias admitidasEn la siguiente tabla se describen los tipos de instancias que admite Amazon EMR. Para obtener másinformación, consulteInstancias de Amazon EC2yMatriz de tipos de instancias de AMI.

No todos los tipos de instancias están disponibles en todas las regiones y la disponibilidad de instanciasestá sujeta a disponibilidad y demanda en la región y zona de disponibilidad especificadas. La zona dedisponibilidad viene determinada por la subred que utiliza para lanzar el clúster. Si crea un clúster conun tipo de instancia que no está disponible, es posible que no se pueda aprovisionar el clúster o quese bloquee durante el aprovisionamiento. Para obtener información acerca de la disponibilidad de lasinstancias, consulte laPágina de precios de Amazon EMRy filtra porRegiónpara ver si el tipo de instanciaque selecciona de la siguiente lista está disponible en la región.

A partir de la versión de 5.13.0 de Amazon EMR, todas las instancias utilizan 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, consulteTipos de virtualización de una AMIde Linux.

Algunos tipos de instancia son compatibles con redes mejoradas. Para obtener más información, consulteRedes mejoradas en Linux.

Admite Amazon EMRInstancias de generaciones anteriorespara dar soporte a las aplicacionesque están optimizadas para estas instancias y que todavía no se han actualizado. Para obtener másinformación acerca de estos tipos de instancias y sobre las rutas de actualización, consulte Instancias degeneraciones anteriores.

Important

Cuando eliges un tipo de instancia mediante elAWS Management Console, el número devCPUsemuestra para cadaTipo de instanciaes el número de vcores YARN de ese tipo de instancia, noel número de vCPUs EC2 para ese tipo de instancia. Para obtener más información acerca delnúmero de vCPUs para cada tipo de instancia, consulteTipos de instancias de Amazon EC2.

Clase de instancia Tipos de instancias

Uso general m1.small¹|m1.medium(¹)|m1.large¹|m1.xlarge¹|m2.xlarge¹|m2.2xlar¹|m2.4xlar¹|m3.xlarge¹|m3.2xlar¹|m4.large|m4.xlarge|m4.2xlarge|m4.4xlarge|m4.10xlarge|m4.16xlarge|m5.xlarge³ | m5,2xlarge³ | m5.4xlarge³ | m5,8xlarge³ | m5.12xlarge³ |m5.16xlarge³ | m5a.xlarge | m5a.2xlarge | m5a.2xlarge | m5a.4xlarge| m5a.4xlarge | m5a.4xlarge | m5a.16xlarge | m5a.xlarge |

217

Page 226: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

Clase de instancia Tipos de instanciasm5a.16xlarge | m5a.xlarge | m5a.16xlarge | m5a.4xlarge | m5a.xlarge| m5a.16xlarge | m5a.xlarge | m5a.16xlarge m5a.24xgrande| m5d.xlarge³ | m5d.2xlarge³ | m5d.4xlarge³ | m5d.8xlarge³ |m5d.12xlarge³ | m5d.16xlarge³ | m5d.24xlarge³ | m5d.24xlarge³| m5d.24xlarge³ | m5zn. xlarge | m5zn.2xlarge | m5zn.3xlarge| m5zn.xlarge | m5zn.12xlarge | m5zn.12xlarge | m6g.4xlarge |m6g.8xlarge | m6gd.xlarge | m6gd.xlarge | m6gd.xlarge | m6gd.xlargelarge | m6gd.8xlarge | m6gd.12xlarge | m6gd.16xlarge

Note

Las instancias de la serie m5a están disponibles cuando seutiliza Amazon EMR versión 5.20.0 de y posteriores.Las instancias m6gd-series están disponibles para AmazonEMR versiones 5.33.0 y posteriores y 6.3.0 y posteriores.Las instancias de la serie m5zn están disponibles paraAmazon EMR versiones 5.33.0 y posteriores y 6.3.0 yposteriores.Para confirmar que un tipo de instancias específico estádisponible en la región de, consulte elPágina de precios deAmazon EMR.

Optimizada para computación c1.medium¹²|c1.xlar¹|c3.xlar¹|c3.2xlar¹|c3.4xlar¹|c3.8xlar¹|c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.xlarge³| c5.4xlarge³ | c5.4xlarge³ | c5.9xlarge³ | c5.12xlarge³ | c5.18xlarge³| c5.24xlarge³ | c5a.xlarge | c5a.2xlarge | c5.18xlarge³ | c5.24xlarge³| c5a.xlarge | c5a.2xlarge | c5.18xlarge³ | c5.24xlarge³ | c5a.xlarge |c5a.2xlarge 5a.4xlarge | c5a.8xlarge | c5a.12xlarge³ | c5a.16xlarge³| c5ad.2xlarge³ | c5ad.2xlarge³ | c5ad.4xlarge³ | c5ad.8xlarge³ |c5ad.8xlarge³ | c5ad.12xlarge³ | c5ad.16xlarge³ | c5ad.24xlarge³ |c5d.xlarge³ | c5d.2xlarge³ | c5d.4xlarge³ | c5d.9xlarge³ | c5d.12xlarge³| c5d.18xlarge³ | c5d.24xlarge³ | c5d.12xlarge³ | c5d.18xlarge³| c5d.24xlarge³ | c5d.12xlarge³ | c5d.12xlarge³ | c5d.18xlarge³| c5d.24xgrande | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge |c5n.18xlarge | c6g.xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge| c6g.12xlarge | c6g.12xlarge | c6g.16xlarge | c 6gd.xlarge |c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.12xlarge| c6gd.16xlarge | c6gn.xlarge | c6gn.2xlarge | c6gn.4xlarge |c6gn.8xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.16xlarge |c6gn.8xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.16xlarge |c6gn.8xlarge | c6gn.12xcc2.8xlarge| z1d.xlarge | z1d.2xlarge |z1d.3xlarge | z1d.6xlarge | z1d.12xlarge

Note

Las instancias de la serie c5n están disponibles cuando seutiliza Amazon EMR versión 5.20.0 de y posteriores.Las instancias de la serie c5a están disponibles cuando seutiliza Amazon EMR versiones 5.31.0 y posteriores y 6.2.0de y posteriores.Para confirmar que un tipo de instancias específico estádisponible en la región de, consulte elPágina de precios deAmazon EMR.

218

Page 227: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

Clase de instancia Tipos de instancias

Optimizada para memoria r3.xlarge|r3.2xlarge|r3.4xlarge|r3.8xlarge| r4.xlarge| r4,2 x grande | r4,4 x grande | r4.8xgrande | r4,16 x grande |r5.xlarge³ | r5.4xlarge³ | r5,4 x large³ | r5,8xlarge³ | r5.12xlarge³ |r5.12xlarge³ | r5.16xlarge³ | r5.24xlarge³ | r5a.xlarge | r5a.2xlarge |r5a.4xlarge | r5a.8xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge| r5b.xlarge | r5b.2xlarge | r5b.4xlarge | r5b.4xlarge | r5b.8 xgrande| r5b.12xgrande | r5b.16xgrande | r5b.24xgrande | r5d.xlarge³| r5d.2xlarge³ | r5d.4xlarge³ | r5d.8xlarge³ | r5d.12xlarge³ |r5d.16xlarge³ | r5d.16xlarge³ | r5dn.xlarge ³ | r5dn.xlarge ³ |r5dn.xlarge | r5dn.xlarge ³ | r5dn.xlarge | r5dn.xlarge | r5d.xlarge³| r5d.xlarge³ | r5d.xn.2xgrande | r5dn.4xlarge | r5dn.8xlarge |r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge r6g.xlarge | r6g.2xlarge| r6g.4xlarge | r6g.4xlarge | r6g.8 xlarge | r6g.12xlarge | r6g.16xlarge| r6gd.xlarge | r6gd.2xlarge | r6gd.12xlarge | r6gd.12xlarge |r6gd.12xlarge | r6gd.16xlarge |cr1.8xlarge

Note

Las instancias de la serie r5a están disponibles cuando seutiliza Amazon EMR versión 5.20.0 de y posteriores.Las instancias de la serie r5b están disponibles cuando seutiliza Amazon EMR las versiones 5.33.0 y posteriores de y6.3.0 de y posteriores.Las instancias r6g-series están disponibles en Amazon EMRversiones 5.31.0 y posteriores y 6.1.0 y posteriores.Las instancias de la serie r6gd-están disponibles paraAmazon EMR versiones 5.33.0 y posteriores y 6.3.0 yposteriores.Para confirmar que un tipo de instancias específico estádisponible en la región de, consulte elPágina de precios deAmazon EMR.

Con optimización delalmacenamiento

h1,2xlarge | h1,4xlarge | h1.8xlarge | h1.16xlarge|hs1.8xgrande¹|i2.xlarge|i2.2xlarge|i2.4xlarge|i2.8xlarge|i3.x grande | i3.2xlarge | i3.4 x grande | i3.8xlarge | i3es.xlarge |i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.12xlarge| i3en.12xlarge | i3en.24xlarge | d2.2xlarge | d2.2xlarge | d2.xlarge| d2.xlarge | d2.xlarge | d2.xlarge | d2.xlarge | d2.xlarge | d2.xlarge| d2.xlarge | d2.xlarge | d2.xlarge | d2.xlarge | d2.xlarge | grande| d3.2xlarge | d3.4xlarge | d3.8xlarge | d3en.xlarge | d3en.2xlarge| d3en.4xlarge | d3en.4xlarge | d3en.6xlarge | d 3es.8xlarge |d3en.12xlarge

Note

Las instancias de la serie i3 están disponibles cuandose utiliza Amazon EMR versión 5.9.0 y posteriores. Lasinstancias de la serie i3en están disponibles cuando seutiliza Amazon EMR versión 5.25.0 y posteriores.Para confirmar que un tipo de instancias específico estádisponible en la región de, consulte elPágina de precios deAmazon EMR.

219

Page 228: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

Clase de instancia Tipos de instancias

Computación acelerada (GPU) g2.2xlarge| g3.4xlarge | g3.8xlarge | g3.16xlarge | g3s.xlarge |g4dn.xlarge | g4dn.xlarge | g4dn.xlarge | g4dn.8xlarge | g4dn.8xlarge| p2.8xlarge 8xlarge | p3.16xlarge

Note

Los controladores NVIDIA y CUDA se instalan en los tiposde instancias de GPU de forma predeterminada.Para confirmar que un tipo de instancias específico estádisponible en la región de, consulte elPágina de precios deAmazon EMR.

¹utiliza virtualización PVM de AMI con versiones de Amazon EMR anteriores a la 5.13.0. Para obtener másinformación, consulteTipos 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 instanciasAl configurar un clúster, puede elegir una opción de compra para instancias de Amazon EC2. Puede elegirInstancias bajo demanda, Instancias de spot o ambas. Los precios varían en función del tipo de instanciay de la región. El precio de Amazon EMR se suma al precio de Amazon EC2 (el precio de los servidoressubyacentes) y el precio de Amazon EBS (si se adjuntan volúmenes de Amazon EBS). Para conocer losprecios actuales, consultePrecios 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 elige grupos de instanciasuniformes, solo puede especificar la opción de compra para un grupo de instancias cuando lo cree, y eltipo de instancia y las opciones de compra se aplican a todas las instancias Amazon EC2 de cada grupode instancias. 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 objetivo decapacidad que especifique. Para obtener más información acerca de estas configuraciones, consulte Crearun clúster con flotas de instancias o grupos de instancias uniformes (p. 233).

On-Demand Instances

Con 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 otrasAWScuentas. Para obtener más información acerca de lasopciones de compra, consulteOpciones de compra de instanciasen laGuí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 respectaa una región o una zona de disponibilidad. Para obtener más información, consulteInstancias reservadasde Amazon EC2yCompra de Instancias reservadasen laGuí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 utiliza la instancia reservada cuando se lance un clúster:

220

Page 229: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

• Una instancia bajo demanda se especifica en la configuración del clúster que coincide con laespecificación de instancia reservada.

• 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 compra unom5.xlargeInstancia reservada con el alcance de la reservade instancias en la región EE. UU. Este. A continuación lanza un clúster de Amazon EMR en EE. UU. Esteque utiliza dosm5.xlargeinstancias. La primera instancia se factura con la tarifa de instancia reservada yla otra 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 elEntregadoatributo de arrendamiento. Dentro de Amazon EMR, puedeespecificar que un clúster se debe lanzar en esta VPC. Cualquier instancia bajo demanda del clúster quese ajuste a la especificación de instancia dedicada usará las instancias dedicadas disponibles cuando selanza el clúster.

Note

Amazon EMR no admite la configuración dededicatedatributo en instancias individuales.

Spot InstancesLas instancias de subasta 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 subasta es que las instancias podrían finalizar si la capacidad de subasta no estádisponible para el tipo de instancia que está ejecutando. Para obtener más información sobre si el usode instancias de spot podría ser adecuado para su aplicación, consulte ¿Cuándo debe usar instanciaspuntuales? (p. 259).

Cuando Amazon EC2 tiene capacidad no utilizada, ofrece instancias EC2 a un precio reducido,denominadoprecio de spot. El precio fluctúa en función de la disponibilidad y la demanda y lo establecenla región y la 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.

Note

Las instancias de spot con una duración definida (también conocidas como bloques de spot)dejarán de estar disponibles para los nuevos clientes a partir del 1 de julio de 2021. En el caso delos clientes que hayan utilizado previamente la característica, se continuará ofreciendo soporte alas instancias de spot con una duración definida hasta el 31 de diciembre de 2022.

Para conocer los precios actuales, consultePrecios 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 determinanla zona de disponibilidad donde se lanza el clúster. Para obtener más información, consulte Configureredes (p. 224).

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 de 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 zona

221

Page 230: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

de 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 zonade disponibilidad antes elegir. Para obtener más información, consulteHistorial de precios deinstancias spoten laGuí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 subasta en grupos de instancias uniformes

Al utilizar las instancias de spot en un grupo de instancias uniforme, todas las instancias de un grupode instancias deben ser instancias de spot. Especifique una única subred o zona de disponibilidad parael clúster. Para cada grupo de instancias, especifique una única instancia de subasta y un precio desubasta máximo. Las instancias de subasta de ese tipo se lanzan si el precio de subasta en la zona dedisponibilidad y la región del clúster está por debajo del precio de subasta máximo. Las instancias seterminan si el precio de spot está por encima de su precio de spot máximo. Solo puede establecer elprecio de spot al configurar un grupo de instancias. No se puede cambiar más adelante. Para obtener másinformación, consulte Crear un clúster con flotas de instancias o grupos de instancias uniformes (p. 233).

Instancias de subasta en 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 provisiona una instanciade ese tipo. Amazon EMR aprovisiona instancias con ambas opciones de compra hasta que se alcanzala capacidad de destino para cada destino. Además, puede definir una serie de zonas de disponibilidadde las cuales Amazon EMR pueda elegir al lanzar instancias. También proporciona opciones de spotadicionales para cada flota, incluido un tiempo de espera de aprovisionamiento. Para obtener másinformación, consulte Configuración de flotas de instancias (p. 235).

Almacenamiento de instanciaEl almacén de instancias y el almacenamiento de volúmenes de Amazon EBS se utiliza para los datos deHDFS y para los búferes, cachés, datos de pruebas y otro contenido temporal que algunas aplicacionespueden «verter» en el sistema de archivos local.

Amazon EBS funciona de forma distinta dentro de Amazon EMR que con las instancias normales deAmazon EC2. Por ejemplo, los volúmenes de Amazon EBS asociados a clústeres de Amazon EMRson efímeros: los volúmenes se eliminan al terminar el clúster y las instancias (por ejemplo, al reducirgrupos de instancias), por lo que es importante que no prevea la persistencia de datos. Aunque losdatos son efímeros, es posible que los datos en HDFS se puedan replicar en función del número y de laespecialización de los nodos del clúster. Al añadir volúmenes de almacenamiento de Amazon EBS, semontan como volúmenes adicionales. No forman parte del volumen raíz. YARN está configurado parautilizar todos los volúmenes adicionales, pero usted es responsable de asignar los volúmenes adicionalescomo almacenamiento local (para archivos de registro locales por ejemplo).

Otras advertencias para el uso de Amazon EBS con clústeres de Amazon EMR son:

• No puede realizar una instantánea de un volumen de Amazon EBS y, después, restaurarlo en AmazonEMR. Para crear configuraciones personalizadas reutilizables, utilice una AMI personalizada (disponibleen Amazon EMR versión 5.7.0 y posteriores). Para obtener más información, consulte Uso de una AMIpersonalizada (p. 199).

• Un volumen de almacenamiento raíz cifrado de Amazon EBS se admite únicamente cuando se utilizauna AMI personalizada. Para obtener más información, consulte Creación de una AMI personalizada conun volumen de dispositivo raíz de Amazon EBS cifrado (p. 205).

222

Page 231: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de instancias de Amazon EC2

• 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.• Los volúmenes de Amazon EBS de los nodos principales no pueden ser inferiores a 5 GB.

Almacenamiento de Amazon EBS predeterminado para instancias

Amazon EMR adjunta automáticamente un volumen de 10 GB SSD de uso general (gp2) de AmazonEBS como dispositivo raíz de su AMI para mejorar el desempeño. Además, para instancias de EC2 conalmacenamiento solo para EBS, Amazon EMR asigna los volúmenes de almacenamiento de Amazon EBSa las instancias. Al crear un clúster utilizando la versión 5.22.0 y posteriores de Amazon EMR, la cantidadpredeterminada de almacenamiento de Amazon 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 mayordesempeño de IOPS, y a su vez un mejor desempeño para algunas cargas de trabajo estandarizadas.Si desea utilizar una configuración de almacenamiento para instancias de Amazon EBS diferente,puede especificarlo al crear un clúster de Amazon EMR o añadir nodos a un clúster existente. Consultela tabla que aparece a continuación para identificar el número predeterminado de los volúmenes dealmacenamiento de EBS, su tamaño y el tamañ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 AmazonEBS para el volumen raíz en cada nodo de clúster de una región que cobra 0,10 USD/GB/mes seríaaproximadamente de 0,00139 USD por hora (0,10 USD/GB/mes dividido por 30 días dividido entre 24 h ymultiplicado por 10 GB).

Volumen de almacenamiento y tamaño predeterminados de Amazon EBS por tipo de instanciapara Amazon EMR 5.22.0 y versiones posteriores

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 de EBS adicionales

Cuando configure los tipos de instancia en Amazon EMR, puede especificar volúmenes de EBSadicionales para añadir capacidad más allá del almacén de instancias (en caso de incluirse) y el volumende EBS predeterminado. Amazon EBS proporciona los siguientes tipos de volumen: Uso general (SSD),

223

Page 232: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

IOPS provisionadas (SSD), rendimiento optimizado (HDD), fríos (HDD) y magnéticos. Se diferencian en lascaracterísticas de rendimiento y en el precio, por tanto puede personalizar su almacenamiento en funciónde las necesidades empresariales y de análisis de sus aplicaciones. Por ejemplo, algunas aplicacionespodrían tener la necesidad de volcar en el disco, mientras que otras pueden trabajar de forma segura en lamemoria o utilizando Amazon S3.

Solo puede adjuntar volúmenes de Amazon EBS a instancias durante el inicio del clúster y si añade ungrupo de instancias de nodo de tarea adicional. Si una instancia en un clúster de Amazon EMR falla,tanto la instancia como los volúmenes de Amazon EBS adjuntos se sustituirán por nuevos volúmenes.Por lo tanto, si separa manualmente un volumen de Amazon EBS, Amazon EMR lo trata como un error ysustituye ambos almacenamientos de la instancia (si procede) y los almacenes de volumen.

Configure redesLa mayoría de clústeres se lanzan a una red virtual con Amazon Virtual Private Cloud (Amazon VPC).Una VPC es una red virtual aislada dentroAWSque está aislado lógicamente dentro de suAWSaccount.Puede configurar aspectos, como los intervalos de direcciones IP privadas, las subredes, las tablas deenrutamiento y los puertos de enlace de red. Para obtener más información, consulte la Guía del usuariode Amazon VPC.

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 enAWSpara 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 Amazon EMR en subredes de VPC públicas y privadas. Esto significa queno necesita conectividad a Internet para ejecutar un clúster de Amazon EMR. Sin embargo, es posibleque tenga que configurar la conversión de las direcciones de red (NAT) y los gateways de VPN paraacceder a servicios o recursos ubicados fuera de la VPC, por ejemplo, en una intranet corporativa opública.AWSPuntos de enlace de servicio comoAWS Key Management Service.

Important

Amazon EMR solo es compatible con el lanzamiento de clústeres en subredes privadas en laversión 4.2 de y posteriores.

Para obtener más información sobre Amazon VPC, consulte la Guía del usuario de Amazon VPC.

Temas

224

Page 233: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

• Opciones de Amazon VPC (p. 225)• Configuración de una VPC para alojar clústeres (p. 229)• Lanzar clústeres en una VPC (p. 230)• Política mínima de Amazon S3 para subred privada (p. 232)• Más recursos para obtener información sobre VPC (p. 233)

Opciones de Amazon VPC

Cuando lanza un clúster de Amazon EMR en una VPC, puede lanzarlo en una subred compartida, privadao pública. Existen ligeras pero importantes diferencias en la configuración, en función del tipo de subredque 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 se debea que los clústeres de Amazon EMR deben accederAWSservicios y Amazon EMR. Si un servicio, comoAmazon S3, ofrece la posibilidad de crear un punto de conexión de la VPC, puede acceder a dichosservicios mediante el punto de enlace en lugar de acceder a un punto de enlace público a través de ungateway de Internet. Además, Amazon EMR no puede comunicarse con clústeres en subredes públicasa través de un dispositivo de conversión de las direcciones de red (NAT). Para este fin se necesita unagateway de Internet, pero puede utilizar una instancia NAT o una gateway para otro tráfico en situacionesmás complejas.

Todas las instancias de un clúster se conectan a Amazon S3 a través de un punto de conexión de la VPCo un gateway de Internet. OtroAWSLos servicios que actualmente no admiten puntos de conexión de laVPC utilizan solo un puerto de enlace a Internet.

Si tienes másAWSrecursos que no quiera conectar al puerto de enlace de Internet, puede lanzar esoscomponentes en una subred privada que crea 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 Controlarel tráfico de red con grupos de seguridad (p. 453).

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 otrosAWSrecursos, como buckets de Amazon S3, a travésde la gateway de Internet.

225

Page 234: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure 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 privadasUna subred privada te permite iniciarAWSrecursos sin necesidad de que la subred disponga de unagateway de Internet asociada. Amazon EMR es compatible con el lanzamiento de clústeres en subredesprivadas con la versión 4.2.0 de o posteriores.

Note

Cuando configuras un clúster de Amazon EMR en una subred privada, te recomendamos quetambién configuresPuntos de enlace de la VPC para Amazon S3. Si su clúster de EMR seencuentra en una subred privada sin endpoints de VPC para Amazon S3, incurrirá en cargosadicionales de gateway NAT asociados al tráfico de S3 porque el tráfico entre el clúster de EMR yS3 no permanecerá dentro de la VPC.

226

Page 235: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

Las subredes privadas difieren de las subredes públicas de las siguientes maneras:

• Para obtener acceso aAWSservicios que no proporcionan un punto de conexión de la VPC, debe seguirutilizando una instancia NAT o un gateway de Internet.

• Como mínimo, debe proporcionar una ruta hacia el bucket de registros de servicio de Amazon EMR yrepositorio de Amazon Linux en Amazon S3. Para obtener más información, consultePolítica mínima deAmazon S3 para subred privada (p. 232)

• Si utiliza las características de EMRFS, debe disponer de un punto de conexión de la VPC de AmazonS3 y una ruta desde su 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 enlaceen una subred pública solo es compatible con la AWS Management Console. La forma más sencillade añadir y configurar instancias NAT y puntos de enlace de la VPC EMR Amazon S3 consiste enutilizar laLista de subredes de VPCen la consola de Amazon EMR. Para configurar gateways NAT,consultePuerta de enlace NATen laAmazon VPC User Guide.

• No puede cambiar una subred con un clúster de Amazon EMR existente de pública a privada oviceversa. Para localizar un clúster de Amazon EMR dentro de una subred privada, el clúster debeiniciarse en dicha subred privada.

Amazon EMR crea y utiliza distintos grupos de seguridad predeterminados para los clústeres en unasubred privada: ElasticMapReduce-Master-Private, ElasticMapReduce-ServiceAccess. Para obtener másinformación, consulte Controlar el tráfico de red con grupos de seguridad (p. 453).

Para obtener una lista completa de las NACL de su clúster, elijaGrupos de seguridad para MasteryGruposde seguridad para Core & Tasken la consola de Amazon EMRDetalles de clúster(Se ha creado elcertificado).

La imagen siguiente muestra cómo se configura un clúster de Amazon EMR dentro de una subred privada.La única comunicación fuera de la subred es a Amazon EMR.

227

Page 236: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

La imagen siguiente muestra una configuración de ejemplo para un clúster de Amazon EMR dentro de unasubred privada conectada a una instancia de NAT que reside en una subred pública.

Subredes compartidas

El uso compartido de VPC permite a los clientes compartir subredes con otrosAWScuentas dentro de lamismaAWSOrganización. Puede lanzar clústeres de Amazon EMR en subredes compartidas públicas yprivadas, con las siguientes salvedades.

El propietario de la subred debe 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.

228

Page 237: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

Cuando 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.

Controlar los permisos de la VPC con IAM

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.

Al lanzar un clúster en una VPC, puede utilizarAWS 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 conclústeres lanzados en Amazon EC2 Classic. Para obtener más información acerca de IAM, consulteIAMUser Guide.

También puede utilizar IAM para controlar quién puede crear y administrar subredes. Por ejemplo, puedecrear una cuenta de usuario para administrar subredes y una segunda cuenta de usuario que puede lanzarclústeres, pero no puede modificar la configuración de Amazon VPC. Para obtener más información sobrela administración de políticas y acciones en Amazon EC2 y Amazon VPC, consultePolíticas de IAM paraAmazon EC2en laGuía del usuario de Amazon EC2 para instancias de Linux.

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 VPC con subredes para un clúster de Amazon EMR

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En la parte superior derecha de la página, elija laRegión de AWSpara la VPC.3. Seleccione Create VPC.4. En la páginaConfiguración de la VPCpágina, elijaVPC y más.5. UNDERGeneración automática de etiquetas de nombre, habilitarGeneración automáticae introduzca

un nombre para la VPC. Esto le ayudará a identificar la VPC y la subred en la consola de AmazonVPC después de crearlas.

6. En el navegadorIPv4 CIDR block, introduzca un espacio de direcciones IP privadas para que su VPCgarantice una resolución de nombres de host de DNS adecuada; de lo contrario, podría experimentarerrores 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

7. UNDERNúmero de zonas de disponibilidad (AZ), elija el número de zonas de disponibilidad en las quedesea lanzar sus subredes.

8. UNDERNúmero de subredes públicas, elija una subred pública para añadirla a la VPC. Si los datosutilizados por el clúster están disponibles en Internet (por ejemplo, en Amazon S3 o Amazon RDS),solo tiene que utilizar una subred pública y no es necesario añadir una subred privada.

9. UNDERNúmero de subredes privadas, elija el número de subredes privadas que desea agregara la VPC. Seleccione uno o más si los datos de la aplicación se almacenan en su propia red (porejemplo, en una base de datos de Oracle). Para una VPC en una subred privada, todas las instanciasde Amazon EC2 deben tener, como mínimo, una ruta a Amazon EMR a través de la elastic networkinterface. En la consola, esto se configura automáticamente.

229

Page 238: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

10. UNDERGateways NAT, opcionalmente, elija agregar puertas de enlace NAT. Solo son necesarios sitiene subredes privadas que necesitan comunicarse con Internet.

11. UNDERPuntos de conexión de la VPC, opcionalmente, elija añadir puntos de enlace para Amazon S3a sus subredes.

12. Verifique queEnable DNS hostnamesyHabilita la resolución de losse comprueba. Para obtener másinformación, consulte Utilización de DNS con su VPC.

13. Seleccione Create VPC.14. En una ventana de estado se muestra el trabajo en curso. Cuando haya terminado el trabajo, elijaVer

VPCPara navegar hasta elSus VPC, que muestra la VPC predeterminada y la VPC que acaba decrear. La VPC que acaba de crear es una VPC no predeterminada. Por lo tanto, la columna DefaultVPC muestra No.

15. Si desea asociar la VPC a una entrada de DNS que no incluye un nombre de dominio, vaya aConjuntode opciones de DHCP, eligeCrear conjunto de opciones de DHCPy omita un nombre de dominio.Después de crear el conjunto de opciones, navegue hasta la nueva VPC y elijaEditar conjunto deopciones de DHCPen elActionsy seleccione el nuevo conjunto de opciones. No puede editar elnombre de dominio utilizando la consola después de haber creado el conjunto de opciones de DNS.

Es una práctica recomendada con Hadoop y aplicaciones relacionadas garantizar la resolucióndel 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

Usarec2.internalSi su región es EE. UU. Este (Norte de Virginia). Para otras regiones,utilicenombre de la región.compute.internal. Para ver ejemplos de us-west-2, utiliceus-west-2.compute.internal. Para el registroAWS GovCloud Región (EE.UU.-Oeste), usous-gov-west-1.compute.internal.

• domain-name-servers = AmazonProvidedDNS

Para obtener más información, consulteConjuntos de opciones de DHCPen laAmazon VPC UserGuide.

16. Una vez creada la VPC, vaya a laSubredesy anote laID de subredde una de las subredes de la nuevaVPC. Utilice esta información al lanzar el clúster de Amazon EMR en la VPC.

Lanzar 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 intervalos de direcciones IP varíanen subredes públicas y privadas. Amazon EMR gestiona todos estos grupos de seguridad y es posibleque tenga que añadir direcciones IP adicionales alAWSrango a lo largo del tiempo. Para obtener másinformación, consulte Controlar el tráfico de red con grupos de seguridad (p. 453).

Para administrar el clúster en una VPC, Amazon EMR adjunta un dispositivo de red al nodo maestro y loadministra a través de este dispositivo. Puede ver este dispositivo mediante la acción de la API de AmazonEC2DescribeInstances. Si modifica este dispositivo de algún modo, el clúster podría fallar.

230

Page 239: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

Para lanzar un clúster en una VPC utilizando la consola de Amazon EMR utilizando la consola deAmazon

1. Abra la consola de Amazon EMR enhttps://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, necesitaec2:CreateRoute,ec2:RevokeSecurityGroupEgress,ec2:AuthorizeSecurityGroupEgress,cloudformation:DescribeStackEventsycloudformation:CreateStackpermisos.

Note

No existe un costo adicional por lanzar una instancia Amazon EC2 para su dispositivoNAT.

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 Amazon VPCCLI. Utilice la consola para crear instancias NAT y lanzarclústeres en una subred privada.

Una vez que la VPC esté configurada, puede lanzar clústeres de Amazon EMR en ella utilizandolacreate-clustersubcomando con el--ec2-attributesparámetro. Utilice el parámetro --ec2-attributes para especificar la subred de VPC para el clúster.

• Para crear un clúster en una subred específica, escriba el siguiente comando y sustituyamyKeycon elnombre de su key pair Amazon EC2 y sustituya77XXXX03con su 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.

231

Page 240: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigure redes

Note

Si no ha creado con anterioridad el rol de servicio de Amazon EMR predeterminado y el perfilde instancia EC2, escribaaws emr create-default-rolespara crearlos antes de escribirelcreate-clustersubcomando.

Para obtener más información sobre cómo usar los comandos de Amazon EMR en laAWS CLI, consulteelAWS CLI.

Política mínima de Amazon S3 para subred privadaEn el caso de las subredes privadas, como mínimo, debe proporcionar la capacidad a Amazon EMR deacceder a los repositorios de Amazon Linux. Esta política de subred privada forma parte de las políticas depunto de enlace de VPC para acceder a Amazon S3. Con Amazon EMR 5.25.0 o posterior, para habilitarel acceso de un clic al servidor del historial de Spark persistente, debe permitir a Amazon EMR accederal bucket del sistema que recopila los registros de eventos de Spark. Si habilita el registro, proporcionepermisos PUT a unaws157-logs-*balde. Para obtener más información, consulteAcceso de un clic alservidor de historial de Spark persistente.

Usted debe determinar las restricciones de política que satisfacen sus necesidades empresariales. Porejemplo, puede especificar la regiónpackages.us-east-1.amazonaws.compara evitar un nombrebucket de Amazon S3 ambiguo. En el siguiente ejemplo de política se proporcionan permisos para accedera los repositorios de Amazon Linux y al bucket del sistema Amazon EMR para recopilar registros deeventos de Spark. ReemplazarMyRegioncon la región en la que residen sus buckets de registros, porejemplous-east-1.

Para obtener más información sobre el uso de políticas de IAM con puntos de enlace de Amazon VPC,consultePolíticas de punto de enlace para Amazon S3.

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::packages.MyRegion.amazonaws.com/*", "arn:aws:s3:::repo.MyRegion.amazonaws.com/*", "arn:aws:s3:::repo.MyRegion.emr.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/*" ] } ]}

232

Page 241: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

La siguiente política de ejemplo proporciona los permisos necesarios para acceder a los repositorios deAmazon Linux 2. La AMI de Amazon Linux 2 es la predeterminada.

{ "Statement": [ { "Sid": "AmazonLinux2AMIRepositoryAccess", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::amazonlinux.MyRegion.amazonaws.com/*", "arn:aws:s3:::amazonlinux-2-repos-MyRegion/*" ] } ]}

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 privadas y públicas (NAT)• Instancias NAT• Alta disponibilidad para instancias NAT de Amazon VPC: Un ejemplo de

• 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• Uso de interfaces de red elásticas con una VPC• Securely connect to Linux instances running in a private VPC

Crear un clúster con flotas de instancias o grupos deinstancias 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 flotas de instancias está disponible en Amazon EMR versión 4.8.0 y posteriores, excluidaslas 5.0.x.

Puede usar la consola de Amazon EMR, laAWS CLIo la API de Amazon EMR para crear clústeres concualquier configuración. Al utilizar el comando create-cluster desde la AWS CLI, puede utilizar losparámetros --instance-fleets para crear el clúster utilizando las flotas de instancias o, como opción,utilizar los parámetros --instance-groups para crearlo usando grupos de instancias uniformes.

Lo mismo sucede utilizando la API de Amazon 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.

233

Page 242: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

En la consola de Amazon EMR, si utiliza el valor predeterminadoOpciones rápidasal crear un clúster,Amazon EMR aplica la configuración de los grupos de instancias uniformes al clúster y utiliza instanciasbajo demanda. Para utilizar las instancias de spot con grupos de instancias uniformes o para configurar lasflotas de instancias y otras personalizaciones, elija Advanced Options (Opciones avanzadas).

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 elclúster que desea replicar. ElegirAWSExportación de CLIpara que Amazon EMR genere elequivalentecreate clusterComando de la CLI para el clúster que, a continuación, puedecopiar y pegar. Elija el iconoClonPara que Amazon EMR replique la configuración de la consola.Amazon EMR le presenta el último paso delOpciones avanzadaspara confirmar la configuracióndel clúster. Puede elegir Create cluster (Crear clúster) para crear el clúster nuevo (con el mismonombre y un ID de clúster diferente) o puede elegir Previous (Anterior) para volver y cambiar laconfiguración.

Flotas de instanciasLa configuración de flotas de instancias ofrece la más amplia variedad de opciones de aprovisionamientopara instancias de Amazon EC2. Cada tipo de nodo tiene una sola flota de instancia y el uso de una flotade instancia de tarea es opcional. Puede especificar hasta cinco tipos de instancia EC2 por flota o 30tipos de instancia EC2 por flota al crear un clúster con laAWS CLIo Amazon EMR API y unaestrategia deasignación (p. 238)para instancias bajo demanda y de spot. Para las flotas de instancia principal y detareas, se asigna uncapacidad de destinopara instancias bajo demanda y otro para instancias puntuales.Amazon EMR elige cualquier combinación de los tipos de instancia especificados para satisfacer lascapacidades de destino, aprovisionando tanto las instancias bajo demanda como las instancias desubasta.

Para el tipo de nodo principal, Amazon EMR elige un único tipo de instancia desde la lista de instancias yespecifica si está aprovisionado como instancia bajo demanda o de spot. Las flotas de instancias tambiénproporcionan opciones adicionales para compras de instancias puntuales y bajo demanda. Las opcionesde instancia de spot incluyen un tiempo de espera que especifica una acción que realizar si no se puedeaprovisionar capacidad de spot y una estrategia de asignación preferida (optimizada para la capacidad)para lanzar flotas de instancias de subasta. También se pueden lanzar flotas de instancias bajo demandamediante la opción de estrategia de asignación (precio más bajo). Si utiliza un rol de servicio que no es elrol de servicio predeterminado de EMR o utiliza una política administrada de EMR en su rol de servicio,debe agregar permisos adicionales al rol de servicio de clúster personalizado para habilitar la opción deestrategia de asignación. Para obtener más información, consulte Función de servicio para Amazon EMR(rol EMR) (p. 316).

Para obtener más información acerca de la configuración de flotas de instancias, consulte.Configuración deflotas de instancias (p. 235).

Grupos de instancias uniformesLos grupos de instancias uniformes ofrecen una configuración más sencilla que las flotas de instancias.Cada clúster de Amazon EMR puede incluir hasta 50 grupos de instancias: un grupo de instanciasmaestras que contiene una instancia Amazon EC2, un grupo de instancias principales que contieneuna o varias instancias EC2 y hasta 48 grupos de instancias de tareas opcionales. Cada grupo deinstancias principales y de tareas puede contener cualquier número de instancias de Amazon EC2. Puedeescalar cada grupo de instancias añadiendo y eliminando instancias Amazon EC2 manualmente o puedeconfigurar el escalado automático. Para obtener información sobre la adición y eliminación de instancias,consulte Escalado de recursos del cl (p. 535).

Para obtener más información acerca de la configuración de grupos de instancias uniformes, consulteConfiguración de grupos de instancias uniform (p. 255).

234

Page 243: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Temas• Configuración de flotas de instancias (p. 235)• Utilizar reservas de capacidad con flotas de instancias (p. 246)• Configuración de grupos de instancias uniform (p. 255)• Directrices de configuración de clúster y prácticas (p. 258)

Configuración de flotas de instanciasNote

La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 de yposteriores de Amazon EMR, excluidas las 5.0.0 y 5.0.3.

La configuración de flota de instancias para clústeres de Amazon EMR le permite seleccionar una ampliavariedad de opciones de aprovisionamiento para instancias de Amazon EC2 y le ayuda a desarrollar unaestrategia de recursos flexible y elástica para cada tipo de nodo del clúster.

En una configuración de flota de instancias, se especifica uncapacidad de destinoparaInstancias bajodemandayInstancias de spotdentro de cada flota. Cuando se lanza el clúster, Amazon EMR aprovisionainstancias hasta que se atienden los destinos. Cuando Amazon EC2 reclama una instancia de spot enun clúster en ejecución debido a un incremento de los precios o a que una instancia devolvió un error,Amazon EMR intenta sustituir la instancia por cualquiera de los tipos de instancia que especifique. De esemodo, resulta más sencillo recuperar la capacidad durante un pico de los precios de spot.

Puede especificar un máximo de cinco tipos de instancias de Amazon EC2 por flota para que AmazonEMR los utilice al cumplir los destinos, o un máximo de 30 tipos de instancias de Amazon EC2 por flotaal crear un clúster mediante elAWS CLIo Amazon EMR API y unaestrategia de asignación (p. 238)parainstancias bajo demanda y de spot.

También puede seleccionar varias subredes para distintas zonas de disponibilidad. Cuando AmazonEMR lanza el clúster, busca en esas subredes para encontrar las instancias y las opciones de compraque especifique. Si Amazon EMR detecta unAWSevento a gran escala en una o más de las zonas dedisponibilidad, Amazon EMR intenta enrutar automáticamente el tráfico de las zonas de disponibilidadafectadas e intenta lanzar nuevos clústeres que cree en zonas de disponibilidad alternativas según susselecciones. Tenga en cuenta que la selección de zona de disponibilidad de clústeres solo se produceal crear Los nodos de clúster existentes no se vuelven a iniciar automáticamente en una nueva zona dedisponibilidad en caso de interrupción de la zona de disponibilidad.

Consideraciones

Tenga en cuenta los siguientes aspectos al utilizar flotas de instancias con Amazon EMR.

• Puede tener una flota de instancias, y solo una, por tipo de nodo (maestro, principal, tareas). Puedeespecificar hasta cinco tipos de instancias de Amazon EC2 especificados para cada flota (o un máximode 30 tipos por flota de instancias) al crear un clúster mediante elAWS CLIo Amazon EMR API yunaEstrategia de asignación, por ejemplo, flotas (p. 238)).

• Amazon EMR elige cualquiera o los tipos de instancia Amazon EC2 especificados para aprovisionar conlas opciones de compra de subasta y bajo demanda.

• Puede establecer las capacidades de destino para instancias de subasta y bajo demanda para la flotaprincipal y flota de tareas. Utilice vCPU o una unidad genérica asignada a cada instancia de AmazonEC2 que se tiene en cuenta para los destinos. Amazon EMR aprovisiona instancias hasta que se hasatisfecho por completo cada capacidad de destino. Para la flota maestra, el destino es siempre uno.

• Puede elegir una subred (zona de disponibilidad) o un intervalo. Si elige un intervalo, Amazon EMRaprovisiona capacidad en la zona de disponibilidad que sea la mejor opción.

235

Page 244: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

• Cuando se especifica una capacidad de destino para las instancias de spot:• Para cada tipo de instancia, especifique un precio de spot máximo. 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.

• Para cada flota, defina un período de tiempo de espera para aprovisionamiento de instancias despot. Si Amazon EMR no puede aprovisionar la capacidad de subasta, puede terminar el clúster ocambiarlo a aprovisionamiento de capacidad bajo demanda en su lugar. Esto solo se aplica paraaprovisionamiento de clústeres, no para cambiar su tamaño. Si el período de tiempo de espera finalizadurante el proceso de cambio de tamaño del clúster, las solicitudes de spot no aprovisionadas seanularán sin transferirlas a capacidad bajo demanda.

• Para cada flota, puede optar por aplicar una estrategia de asignación: el precio más bajo para lasinstancias bajo demanda; capacidad optimizada para instancias puntuales.

• Para cada flota con bajo demandaallocation strategy - lowest-price, puede optar por aplicaropciones de reserva de capacidad.

• Compruebe el tamaño de su subred antes de iniciar el clúster. Cuando aprovisiona un clúster con unaflota de tareas y no hay suficientes direcciones IP disponibles en la subred correspondiente, la flotapasará a un estado suspendido en lugar de terminar el clúster con un error. Para evitar este problema,recomendamos aumentar el número de direcciones IP de las subredes.

Opciones de flota de inst

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 vCPUs del tipo de instancia Amazon EC2 se utilizan como recuento paralas capacidades 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 eliges un tipo de instancia mediante elAWS Management Console, el número devCPUsemuestra para cadaTipo de instanciaes el número de vcores YARN de ese tipo de instancia, noel número de vCPUs EC2 para ese tipo de instancia. Para obtener más información acerca delnúmero de vCPUs para cada tipo de instancia, consulteTipos de instancias de Amazon EC2.

Para cada flota especifica hasta cinco tipos de instancias Amazon EC2. Si utiliza unEstrategia deasignación, por ejemplo, flotas (p. 238)y cree un clúster mediante laAWS CLIo la API de Amazon EMR,puede especificar hasta 30 tipos de instancia EC2 por flota de instancias. Amazon EMR elige cualquiercombinación de estos tipos de instancias EC2 para atender sus capacidades de destino. Dado queAmazon EMR desea rellenar la capacidad de destino por completo, podría producirse un sobreuso. Porejemplo, si hay dos unidades no atendidas y Amazon EMR solo puede aprovisionar una instancia con unrecuento de cinco unidades, la instancia aún se aprovisiona, lo que significa que la capacidad de destinose supera en tres 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 obtener

236

Page 245: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

más información, consulte Terminar al completar la tarea (p. 569). 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 lanzamiento

Para las instancias de spot, puede especificar unaPrecio puntual máximopara cada tipo de instancia deuna flota. Puede configurar este precio como un porcentaje del precio bajo demanda o como un importeespecífico en dólares. Amazon EMR aprovisiona instancias de spot si el precio de spot actual en una zonade disponibilidad está por debajo de su precio de spot máximo. Solo tiene que pagar el precio de spot, queno es necesariamente el precio de spot máximo.

Note

Las instancias de spot con una duración definida (también conocidas como bloques de spot)dejarán de estar disponibles para los nuevos clientes a partir del 1 de julio de 2021. En el caso delos clientes que hayan utilizado previamente la característica, se continuará ofreciendo soporte alas instancias de spot con una duración definida hasta el 31 de diciembre de 2022.

Para cada flota, también se define un Provisioning timeout (Tiempo de espera de aprovisionamiento).El tiempo de espera se aplica cuando un clúster nuevo tiene capacidad de aprovisionar 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.Esto solo se aplica para aprovisionamiento de clústeres, no para cambiar su tamaño. Si el período detiempo de espera finaliza durante el proceso de cambio de tamaño del clúster, las solicitudes de spot noaprovisionadas se anularán sin transferirlas a capacidad bajo demanda.

Disponible en Amazon EMR 5.12.1 y versiones posteriores, tiene la opción de lanzar flotas de instanciaspuntuales y bajo demanda con asignación de capacidad optimizada. Esta opción de estrategia deasignación se puede configurar en laAWS Management Consoleo mediante la APIRunJobFlow. El usode la opción de estrategia de asignación requiere permisos de rol de servicio adicionales. Si utiliza el rolde servicio predeterminado de Amazon EMR y la política administrada (EMR_DefaultRole (p. 316)yAmazonEMRServicePolicy_v2) para el clúster, los permisos para la opción de estrategia de asignaciónya están incluidos. Si no está utilizando el rol de servicio y la política administrada predeterminados deAmazon EMR, debe agregarlos para utilizar esta opción. Consulte Función de servicio para Amazon EMR(rol EMR) (p. 316).

Para obtener más información acerca de las instancias de spot, consulteInstancias de spoten la Guía delusuario de Amazon EC2 para instancias de Linux. Para obtener más información acerca de las instanciasbajo demanda, consulteInstancias bajo demandaen la Guía del usuario de Amazon EC2 para instancias deLinux.

Si elige lanzar flotas de instancias bajo demanda con la estrategia de asignación de menor precio, tienela opción de utilizar reservas de capacidad. Las opciones de reserva de capacidad se pueden configurarmediante la API de Amazon EMRRunJobFlow. Las reservas de capacidad requieren permisos de rol deservicio adicionales que debe agregar para utilizar estas opciones. Consulte Permisos de IAM necesariospara utilizar una estrategia de asignación (p. 239).

Opciones de varias subredes (zonas de disponibilidad)

Cuando utilice flotas de instancias, puede especificar varias subredes de Amazon EC2 dentro de una VPC,cada una de ellas correspondiente a una zona de disponibilidad diferente. Si utiliza EC2-Classic, las zonasde disponibilidad se especifican de forma explícita. Amazon EMR identifica la mejor zona de disponibilidadpara lanzar instancias de acuerdo con sus especificaciones de flota. Las instancias se aprovisionan

237

Page 246: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

siempre 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 paracrear la flota de instancias, la capacidad de destino para la opción de compra que seleccione se defineen 1. Si utiliza la AWS CLI, defina siempre TargetSpotCapacity o TargetOnDemandCapacity en1, según proceda. Puede elegir hasta cinco tipos de instancias para la flota de instancias maestra (o unmáximo de 30 si utiliza la opción de estrategia de asignación para instancias bajo demanda o de subasta).Sin embargo, a diferencia de las flotas de instancias principales y de tareas, donde Amazon EMR podríaaprovisionar varias instancias de diferentes tipos, Amazon EMR selecciona un único tipo de instancia paraaprovisionar la flota de instancias maestras.

Estrategia de asignación, por ejemplo, flotas

Con las versiones 5.12.1 y posteriores de Amazon EMR, puede utilizar la opción de estrategia deasignación con instancias de subasta y bajo demanda para cada nodo de clúster. Al crear un clústerutilizando laAWS CLIo la API de Amazon EMR y una opción de estrategia de asignación, puedeespecificar un máximo de 30 tipos de instancias de Amazon EC2 por flota, en lugar de los cinco permitidoscuando utiliza la configuración predeterminada de flota de instancias de clúster de Amazon EMR. Lerecomendamos que utilice la opción de estrategia de asignación para un aprovisionamiento de clústeresmás rápido, una asignación de instancias puntuales más precisa y menos interrupciones de instancias despot.

• Instancias bajo demandautiliza una estrategia de precio más bajo, que lanza primero las instanciasde menor precio. Al lanzar instancias bajo demanda, tiene la opción de utilizar reservas de capacidadabiertas o dirigidas en sus cuentas. Puede utilizar reservas de capacidad abierta para nodos maestro,central y de tareas. Es posible que no tenga capacidad suficiente al utilizar instancias bajo demandacon estrategia de asignación para flotas de instancias. Recomendamos especificar un mayor número detipos de instancias para diversificar y reducir la probabilidad de que la capacidad sea insuficiente. Paraobtener más información, consulte Utilizar reservas de capacidad con flotas de instancias (p. 246).

• Instancias de spotutilizar una estrategia de capacidad optimizada, que lanza instancias de spot desdegrupos de instancias de spot que tienen una capacidad óptima para el número de instancias que se vana lanzar.

El uso de la opción de estrategia de asignación requiere varios permisos de IAM que se incluyenautomáticamente en el rol de servicio predeterminado de Amazon EMR y en la política administradade Amazon EMR (EMR_DefaultRole y AmazonEMRServicePolicy_v2). Si utiliza un rol de serviciopersonalizado o una política administrada para el clúster, debe agregar estos permisos antes de crear elclúster. Para obtener más información, consulte Permisos de IAM necesarios para utilizar una estrategia deasignación (p. 239).

Las reservas de capacidad bajo demanda opcionales (ODCR) están disponibles cuando utiliza la opciónEstrategia de asignación bajo demanda. Las opciones de reserva de capacidad permiten especificar unapreferencia para utilizar la capacidad reservada primero para los clústeres de Amazon EMR. Puede usarlopara asegurarse de que las cargas de trabajo críticas utilicen la capacidad que ya ha reservado medianteODCR abiertos o dirigidos. Para cargas de trabajo no críticas, las preferencias de reserva de capacidadpermiten especificar si se debe consumir capacidad reservada.

Las reservas de capacidad solo las pueden utilizar instancias que coincidan con sus atributos (tipode instancia, plataforma y zona de disponibilidad). De forma predeterminada, Amazon EMR utilizaautomáticamente las reservas de capacidad abierta al aprovisionar instancias bajo demanda que coincidencon los atributos de la instancia. Si no dispone de instancias en ejecución que coincidan con los atributosde las reservas de capacidad, permanecen sin utilizar hasta que lanza una instancia que coincidan con

238

Page 247: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

sus atributos. Si no desea utilizar ninguna reserva de capacidad al iniciar el clúster, debe establecer lapreferencia de reserva de capacidad enningunoen las opciones de lanzamiento.

Sin embargo, también puede dirigirse a una reserva de capacidad para flujos de trabajo específicos. Estole permite controlar de manera explícita qué instancias pueden ejecutarse en esa capacidad reservada.Para obtener más información acerca de las reservas de capacidad bajo demanda, consulte.Utilizarreservas de capacidad con flotas de instancias (p. 246).

Permisos de IAM necesarios para utilizar una estrategia de asignaciónSusFunción de servicio para Amazon EMR (rol EMR) (p. 316)requiere permisos adicionales para crearun clúster que utilice la opción de estrategia de asignación para flotas de instancias de subasta o bajodemanda.

Los permisos necesarios se incluyen automáticamente en el rol de servicio predeterminadode Amazon EMR y en la política administrada de Amazon EMR (EMR_DefaultRole (p. 316)yAmazonEMRServicePolicy_v2). Si utiliza un rol de servicio personalizado o una política administrada parasu clúster, debe agregar los siguientes permisos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": "*" }}

A continuación se presentan los permisos de rol de servicio necesarios para crear un clúster queutiliza reservas de capacidad abiertas o dirigidas. Debe incluir estos permisos además de los permisosnecesarios para utilizar la opción de estrategia de asignación.

Example Documento de política para reservas de capacidad de funciones de servicio

Para utilizar reservas de capacidad abierta, debe incluir los siguientes permisos adicionales.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": "*" } ]}

Example

Para utilizar reservas de capacidad específicas, debe incluir los siguientes permisos adicionales.

239

Page 248: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": "*" } ]}

Utilice la consola para configurar flotas de instancias

Para crear un clúster mediante flotas de instancias, utilice laOpciones avanzadasconfiguración en laconsola de Amazon EMR.

Para crear un clúster con flotas de instancias mediante la consola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. En la parte superior de la ventana de la consola, elijaIr a las opciones avanzadas,

introduzcaConfiguración de softwareopciones y, a continuación, elijaPróximo.4. UNDERComposición clúster, eligeFlotas de instancias. Al seleccionar la opción flotas de instancias,

debería ver opciones para especificar laCapacidad de destinode instancias de subasta y bajodemanda aparecen en elNodos e instancias de clústertable.

5. En Network (Red), introduzca un valor. Si elige una VPC paraRed, elige unoSubred EC2o CTRL +haga clic para elegir varias subredes de Amazon EC2. Las subredes que seleccione deben ser delmismo tipo (públicas o privadas). Si elige solo una, el clúster se lanza en dicha subred. Si elige ungrupo, se elige la subred más adecuada del grupo cuando se lanza el clúster.

Note

La cuenta y la región podrían darle la opción de elegirLanzamiento en EC2-ClassicparaRed.Si elige esta opción, seleccione una o varias en EC2 Availability Zones (Zonas dedisponibilidad de EC2) en lugar de EC2 Subnets (Subredes de EC2). Para obtener másinformación, consulteAmazon EC2 y Amazon VPCen laGuía del usuario de Amazon EC2para instancias de Linux.

6. UNDEREstrategia de asignación, seleccione la casilla para aplicar estrategias de asignación.

Si no desea utilizar la nueva opción de estrategia de asignación, deje la casilla de verificación sinmarcar.

7. For EachTipo de nodo, si desea cambiar el nombre predeterminado de una flota de instancias, elija elicono de lápiz y, a continuación, escriba un nombre fácil de recordar. Si desea eliminar elTareaflota deinstancias, elija el icono X en la parte derecha de la fila de tareas.

8. ElegirAgregar o quitar tipos de instancias a la flotay elija hasta cinco tipos de instancia de la lista paralas flotas de instancias principal y principal; añada hasta quince tipos de instancia para las flotas deinstancias de tareas. Amazon EMR podría elegir aprovisionar cualquier combinación de estos tipos deinstancias al lanzar el clúster.

9. Para cada tipo de instancia central y de tarea, elija cómo desea definir la capacidad ponderada (Cadainstancia cuenta como X unidades) en ese caso. El número de núcleos virtuales YARN para cada tipode instancia de flota se utiliza como unidades de capacidad ponderadas predeterminadas, pero puedecambiar el valor a cualquier unidad que tenga sentido para sus aplicaciones.

240

Page 249: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

10. UNDERCapacidad de destino, defina el número total de instancias bajo demanda y spot que deseapor flota. EMR garantiza que las instancias de la flota cumplan con las unidades solicitadas parala capacidad objetivo bajo demanda y puntual. Si no se especifican unidades de subasta o bajodemanda para una flota, no se aprovisiona ninguna capacidad para esa flota.

11. Si una flota está configurada con una capacidad de destino para Spot, puede introducir su precio despot máximo como% of On-Demand o puede escribir un importe Dollars ($) en USD.

12. Para que los volúmenes de EBS se asocien al tipo de instancia cuando se aprovisione, elija ellápiz junto a EBS Storage (Almacenamiento de EBS) y, a continuación, introduzca las opciones deconfiguración de EBS.

13. Si ha establecido un recuento instantáneo paraUnidades puntuales, setOpciones de spotavanzadasDe acuerdo con las directrices siguientes:

• Tiempo de espera del aprovisionamiento: utilice esta configuración para controlar lo que haceAmazon EMR cuando no puede aprovisionar instancias de spot entre losTipos de instancia deflotaespecificas. Introduzca un periodo de tiempo de espera en minutos y, a continuación, elija sidesea Terminate the cluster (Terminar el clúster) o Switch to provisioning On-Demand Instances(Cambiar al aprovisionamiento de instancias bajo demanda). Si decide cambiar a instanciasbajo demanda, la capacidad asignada de las instancias bajo demanda se tiene en cuenta en lacapacidad de destino para las instancias de spot y Amazon EMR aprovisiona las instancias bajodemanda hasta que se completa la capacidad de destino para las instancias de spot.

14. ElegirPróximo, modifique otras opciones de clúster y, a continuación, elijaPróximo.15. Si ha seleccionado aplicar la nueva opción de estrategia de asignación, en elOpciones de

seguridadconfiguración, selecciona unRol de EMRyPerfil de instancia EC2que contienen los permisosnecesarios para la opción de estrategia de asignación. De lo contrario, la creación del clúster fallará.

16. Elija Create Cluster (Crear clúster).

Utilizar 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 detalles de configuración de las flotas de instancias de un clúster, utilice ellist-instance-fleetscomando.

• Para agregar varias AMI de Amazon Linux personalizadas a un clúster que está creando, utilicelaCustomAmiIdopción con cadaInstanceTypeespecificación. Puede configurar nodos de flota deinstancias con varios tipos de instancias y varias AMI personalizadas para ajustarse a sus requisitos.Consulte Crear un clúster con la configuración de flotas de instancias (p. 242).

• 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.

• Se pueden agregar varias AMI personalizadas a la flota de instancias de tareas mediante el argumentoCustomAmiId con el add-instance-fleet comando. Consulte Crear un clúster con la configuración deflotas de instancias (p. 242).

• Para utilizar la opción de estrategia de asignación al crear una flota de instancias, actualice el rol deservicio para incluir el documento de política de ejemplo en la siguiente sección.

• Para utilizar las opciones de reservas de capacidad al crear una flota de instancias con estrategia deasignación bajo demanda, actualice el rol de servicio para incluir el documento de política de ejemplo enla siguiente sección.

• Las flotas de instancias se incluyen automáticamente en el rol de servicio EMR predeterminado y en lapolítica administrada de Amazon EMR (EMR_DefaultRole y AmazonEMRServicePolicy_v2). Si utiliza unrol de servicio personalizado o una política administrada personalizada para su clúster, debe agregar losnuevos permisos para la estrategia de asignación en la siguiente sección.

241

Page 250: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Crear un clúster con la configuración de flotas de instancias

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 Amazon EMR predeterminado y el perfilde instancia EC2, utiliceaws emr create-default-rolespara crearlos antes de utilizarelcreate-clustercomando.

Example Ejemplo: Maestro bajo demanda, núcleo bajo demanda con tipo de instancia única, VPCpredeterminada

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']

Example Ejemplo: Maestro de spot, núcleo de spot con tipo de instancia única, VPCpredeterminada

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: Maestro bajo demanda, núcleo mixto con tipo de instancia única, subred EC2ú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: Master bajo demanda, núcleo de spot con varios tipos de instanciasponderadas, tiempo de espera para spot, rango de subredes EC2

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}'],\

242

Page 251: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}

Example Ejemplo: Maestro bajo demanda, núcleo mixto y tarea con varios tipos de instanciasponderadas, tiempo de espera para instancias puntuales principales, rango de subredes EC2

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,\InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']

Example Ejemplo: Maestro de spot, sin núcleo ni tarea, configuración de Amazon EBS, VPCpredeterminada

aws emr create-cluster --release-label Amazon 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 Múltiples AMI personalizadas, varios tipos de instancias, maestro bajo demanda, núcleobajo demanda

aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']

Example Agregar un nodo de tarea a un clúster en ejecución con varios tipos de instancias yvarias AMI personalizadas

aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\'{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']

243

Page 252: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

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 comando siguientehace referencia a un archivo de configuración JSON,my-fleet-config.json:

aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \--instance-fleets file://my-fleet-config.json

Lami-fleet-config.jsonespecifica flotas de instancias maestras, principales y de tareas comose muestra en el siguiente ejemplo. La flota de instancias principales utiliza un precio puntual máximo(BidPrice) como porcentaje de bajo demanda, mientras que las flotas de instancias de tareas y maestrautilizan un precio máximo de subasta (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, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK",

244

Page 253: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

"TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }]

Modificar las capacidades de destino de 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 <cluster-id> \ --instance-fleet \ InstanceFleetId='<instance-fleet-id>',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 <cluster-id> --instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

Obtenga detalles de configuración de flotas de instancias de un clúster

Utilice el comando list-instance-fleets para obtener detalles de configuración de las flotasde instancias en un clúster. El comando toma un ID de clúster como entrada. El siguiente ejemploilustra el comando y su resultado para un clúster que contiene un grupo de instancias de tareasprincipal y un grupo de instancias de tareas secundario. Para ver la sintaxis de respuesta completa,consulteListInstanceFleetsen laReferencia de la API de Amazon EMR.

list-instance-fleets --cluster-id <cluster-id>

{ "InstanceFleets": [

245

Page 254: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

{ "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" } }, "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" } ]}

Utilizar reservas de capacidad con flotas de instanciasPara lanzar flotas de instancias bajo demanda con opciones de reservas de capacidad, adjunte permisosde rol de servicio adicionales necesarios para utilizar las opciones de reserva de capacidad. Dado que lasopciones de reserva de capacidad deben utilizarse junto con la estrategia de asignación bajo demanda,

246

Page 255: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

también debe incluir los permisos necesarios para la estrategia de asignación en el rol de servicio y lapolítica administrada. Para obtener más información, consulte Permisos de IAM necesarios para utilizaruna estrategia de asignación (p. 239).

Amazon EMR admite reservas de capacidad abiertas y específicas. En los siguientes temas, semuestran configuraciones de flotas de instancias que puede utilizar con laRunJobFlowacción ocreate-clusterpara lanzar flotas de instancias mediante reservas de capacidad bajo demanda.

Utilice las reservas de capacidad abierta en la medida en que sea posible

Si las instancias bajo demanda del clúster coinciden con los atributos de las reservas de capacidadabierta (tipo de instancia, plataforma, arrendamiento y zona de disponibilidad) disponibles en su cuenta,las reservas de capacidad se aplican automáticamente. Sin embargo, no se garantiza que se utilicensus reservas de capacidad. Para aprovisionar el clúster, Amazon EMR evalúa todos los grupos deinstancias especificados en la solicitud de lanzamiento y utiliza el que tiene el precio más bajo que tienecapacidad suficiente para lanzar todos los nodos principales solicitados. Las reservas de capacidad abiertadisponibles que coinciden con el grupo de instancias se aplican automáticamente. Si las reservas decapacidad abierta disponibles no coinciden con el grupo de instancias, permanecen sin usar.

Una vez aprovisionados los nodos principales, se selecciona y corrige la zona de disponibilidad. AmazonEMR aprovisiona nodos de tareas en grupos de instancias, empezando primero por los de menorprecio, en la zona de disponibilidad seleccionada hasta que se aprovisionen todos los nodos de tareas.Las reservas de capacidad abierta disponibles que coinciden con los grupos de instancias se aplicanautomáticamente.

A continuación se presentan casos de uso de la lógica de asignación de capacidad de Amazon EMR parautilizar reservas de capacidad abierta sobre la base del mejor esfuerzo.

Ejemplo 1: El grupo de instancias de menor precio en la solicitud de lanzamiento tiene reservas decapacidad abierta disponibles

En este caso, Amazon EMR lanza capacidad en el grupo de instancias de menor precio con instanciasbajo demanda. Las reservas de capacidad abierta disponibles en ese grupo de instancias se utilizanautomáticamente.

On-Demand Strategy lowest-price

Requested Capacity 100

Instance Type c5.xlarge m5.xlarge r5.xlarge

Available Open capacityreservations

150 100 100

On-Demand Price $ $$ $$$

Instanciasaprovisionadas

100 - -

Reserva de capacidadabierta utilizada

100 - -

Reservaciones decapacidad abiertadisponibles

50 100 100

Después de lanzar la flota de instancias, puede ejecutardescribe-capacity-reservationspara vercuántas reservas de capacidad no utilizadas quedan.

247

Page 256: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Ejemplo 2: El grupo de instancias de menor precio en la solicitud de lanzamiento no tiene reservas decapacidad abierta disponibles

En este caso, Amazon EMR lanza capacidad en el grupo de instancias de menor precio con instanciasbajo demanda. Sin embargo, sus reservas de capacidad abierta permanecen sin utilizar.

On-Demand Strategy lowest-price

Requested Capacity 100

Instance Type c5.xlarge m5.xlarge r5.xlarge

Reservaciones decapacidad abiertadisponibles

- - 100

On-Demand Price $ $$ $$$

Instanciasaprovisionadas

100 - -

Reserva de capacidadabierta utilizada

- - -

Reservaciones decapacidad abiertadisponibles

- - 100

Configurar flotas de instancias para que utilicen reservas de capacidad abierta sobre la base del mejoresfuerzo

Cuando utiliza elRunJobFlowacción para crear un clúster basado en flota de instancias, establezca laestrategia de asignación bajo demanda enlowest-priceyCapacityReservationPreferenceparaobtener opciones de reservas de capacidad paraopen. Alternativamente, si deja este campo en blanco,Amazon EMR establece por defecto la preferencia de reserva de capacidad de la instancia bajo demandaenopen.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "open" } } }

También puede utilizar la CLI de Amazon EMR para crear un clúster basado en flotas de instanciasmediante reservas de capacidad abierta.

aws emr create-cluster \ --name 'open-ODCR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \

248

Page 257: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=open}}'}

Donde,

• open-ODCR-clusterse sustituye por el nombre del clúster mediante reservas de capacidad abierta.• subnet-22XXXX01se sustituye por el ID de subred.

Utilice primero las reservas de capacidad abiertaPuede optar por anular la estrategia de asignación de precios más bajos y priorizar el uso primero delas reservas de capacidad abierta disponibles al aprovisionar un clúster de Amazon EMR. En este caso,Amazon EMR evalúa todos los grupos de instancias con reservas de capacidad especificadas en lasolicitud de lanzamiento y utiliza el que tiene el precio más bajo que tiene capacidad suficiente paralanzar todos los nodos principales solicitados. Si ninguno de los grupos de instancias con reservas decapacidad tiene suficiente capacidad para los nodos principales solicitados, Amazon EMR recurre al casode mayor esfuerzo descrito en el tema anterior. Es decir, Amazon EMR vuelve a evaluar todos los gruposde instancias especificados en la solicitud de lanzamiento y utiliza el que tiene el precio más bajo quetiene capacidad suficiente para lanzar todos los nodos principales solicitados. Las reservas de capacidadabierta disponibles que coinciden con el grupo de instancias se aplican automáticamente. Si las reservasde capacidad abierta disponibles no coinciden con el grupo de instancias, permanecen sin usar.

Una vez aprovisionados los nodos principales, se selecciona y corrige la zona de disponibilidad. AmazonEMR aprovisiona nodos de tareas en grupos de instancias con reservas de capacidad, empezando primeropor los de menor precio, en la zona de disponibilidad seleccionada hasta que se aprovisionen todos losnodos de tareas. Amazon EMR utiliza primero las reservas de capacidad abierta disponibles disponiblesen cada grupo de instancias de la zona de disponibilidad seleccionada y solo si es necesario, utiliza laestrategia de menor precio para aprovisionar los nodos de tareas restantes.

A continuación se indican casos de uso de la lógica de asignación de capacidad de Amazon EMR parautilizar primero las reservas de capacidad abierta.

Ejemplo 1: El grupo de instancias con reservas de capacidad abierta disponibles en la solicitud delanzamiento tiene capacidad suficiente para los nodos principales

En este caso, Amazon EMR lanza capacidad en el grupo de instancias con reservas de capacidadabierta disponibles independientemente del precio del grupo de instancias. Como resultado, las reservasde capacidad abierta se utilizan siempre que sea posible, hasta que se aprovisionen todos los nodosprincipales.

On-Demand Strategy lowest-price

Requested Capacity 100

Usage Strategy use-capacity-reservations-first

Instance Type c5.xlarge m5.xlarge r5.xlarge

Available Open capacityreservations

- - 150

On-Demand Price $ $$ $$$

Instanciasaprovisionadas

- - 100

249

Page 258: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Reserva de capacidadabierta utilizada

- - 100

Reservaciones decapacidad abiertadisponibles

- - 50

Ejemplo 2: El grupo de instancias con reservas de capacidad abierta disponibles en la solicitud delanzamiento no tiene capacidad suficiente para los nodos principales

En este caso, Amazon EMR recurre al lanzamiento de nodos principales utilizando la estrategia de menorprecio con el mejor esfuerzo para utilizar las reservas de capacidad.

On-Demand Strategy lowest-price

Requested Capacity 100

Usage Strategy use-capacity-reservations-first

Instance Type c5.xlarge m5.xlarge r5.xlarge

Available Open capacityreservations

10 50 50

On-Demand Price $ $$ $$$

Instanciasaprovisionadas

100 - -

Reserva de capacidadabierta utilizada

10 - -

Reservas de capacidadabierta disponibles

- 50 50

Después de lanzar la flota de instancias, puede ejecutardescribe-capacity-reservationspara vercuántas reservas de capacidad no utilizadas quedan.

Configurar flotas de instancias para utilizar primero las reservas de capacidad abierta

Cuando utiliza elRunJobFlowacción para crear un clúster basado en flota deinstancias, establezca la estrategia de asignación bajo demanda enlowest-priceyUsageStrategyparaCapacityReservationOptionsause-capacity-reservations-first.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } } }

También puede utilizar la CLI de Amazon EMR para crear un clúster basado en flotas de instanciasutilizando primero las reservas de capacidad.

250

Page 259: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

aws emr create-cluster \ --name 'use-CR-first-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first}}'}

Donde,

• use-CR-first-clusterse sustituye por el nombre del clúster mediante reservas de capacidadabierta.

• subnet-22XXXX01se sustituye por el ID de subred.

Utilice primero las reservas de capacidad específicas

Al aprovisionar un clúster de Amazon EMR, puede optar por anular la estrategia de asignación de preciosmás bajos y priorizar utilizando primero las reservas de capacidad orientadas disponibles. En estecaso, Amazon EMR evalúa todos los grupos de instancias con reservas de capacidad segmentadasespecificadas en la solicitud de lanzamiento y elige el que tiene el precio más bajo que tiene capacidadsuficiente para lanzar todos los nodos principales solicitados. Si ninguno de los grupos de instancias conreservas de capacidad segmentadas tiene suficiente capacidad para los nodos principales, Amazon EMRrecurre al caso de mayor esfuerzo descrito anteriormente. Es decir, Amazon EMR vuelve a evaluar todoslos grupos de instancias especificados en la solicitud de lanzamiento y selecciona el que tiene el preciomás bajo que tiene capacidad suficiente para lanzar todos los nodos principales solicitados. Las reservasde capacidad abierta disponibles que coinciden con el grupo de instancias se aplican automáticamente.Sin embargo, las reservas de capacidad específicas siguen sin utilizarse.

Una vez aprovisionados los nodos principales, se selecciona y corrige la zona de disponibilidad.Amazon EMR aprovisiona nodos de tareas en grupos de instancias con reservas de capacidad dirigidas,empezando primero por los de menor precio, en la zona de disponibilidad seleccionada hasta que seaprovisionen todos los nodos de tareas. Amazon EMR intenta utilizar primero las reservas de capacidadsegmentadas disponibles en cada grupo de instancias de la zona de disponibilidad seleccionada. Luego,solo si es necesario, Amazon EMR utiliza la estrategia de menor precio para aprovisionar los nodos detareas restantes.

A continuación se indican casos de uso de la lógica de asignación de capacidad de Amazon EMR parautilizar primero las reservas de capacidad específicas.

Ejemplo 1: El grupo de instancias con reservas de capacidad segmentadas disponibles en la solicitud delanzamiento tiene capacidad suficiente para los nodos principales

En este caso, Amazon EMR lanza capacidad en el grupo de instancias con reservas de capacidadsegmentadas disponibles, independientemente del precio del grupo de instancias. Como resultado, lasreservas de capacidad segmentadas se utilizan siempre que sea posible hasta que se aprovisionen todoslos nodos principales.

On-Demand Strategy lowest-price

Usage Strategy use-capacity-reservations-first

251

Page 260: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Requested Capacity 100

Instance Type c5.xlarge m5.xlarge r5.xlarge

Available targetedcapacity reservations

- - 150

On-Demand Price $ $$ $$$

Instanciasaprovisionadas

- - 100

Reserva de capacidadespecífica utilizada

- - 100

Reservas de capacidadespecíficas disponibles

- - 50

Example Ejemplo 2: El grupo de instancias con reservas de capacidad segmentada disponibles enla solicitud de lanzamiento no tiene capacidad suficiente para los nodos principales

On-Demand Strategy lowest-price

Requested Capacity 100

Usage Strategy use-capacity-reservations-first

Instance Type c5.xlarge m5.xlarge r5.xlarge

Available targetedcapacity reservations

10 50 50

On-Demand Price $ $$ $$$

Instanciasaprovisionadas

100 - -

Reservas de capacidaddirigidas Utilizadas

- - -

Reservas de capacidadespecíficas disponibles

10 50 50

Después de lanzar la flota de instancias, puede ejecutardescribe-capacity-reservationspara vercuántas reservas de capacidad no utilizadas quedan.

Configurar flotas de instancias para utilizar primero las reservas de capacidad específicas

Cuando utiliza elRunJobFlowacción para crear un clúster basado en flotas deinstancias, establezca la estrategia de asignación bajo demanda enlowest-price,UsageStrategyparaCapacityReservationOptionsause-capacity-reservations-first, yCapacityReservationResourceGroupArnparaCapacityReservationOptionsa<yourresource group ARN>. Para obtener más información, consulteTrabajar con reservas de capacidadenlaGuía del usuario de Amazon EC2 para instancias de Linux.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price",

252

Page 261: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

"CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup" } } }

Dondearn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroupse sustituye porel ARN del grupo de recursos.

También puede utilizar la CLI de Amazon EMR para crear un clúster basado en flotas de instanciasmediante reservas de capacidad específicas.

aws emr create-cluster \ --name 'targeted-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,\InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first,CapacityReservationResourceGroupArn=arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup}}'}

Donde,

• targeted-CR-clusterse sustituye por el nombre de su clúster utilizando reservas de capacidadespecíficas.

• subnet-22XXXX01se sustituye por el ID de subred.• arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroupse sustituye por el

ARN del grupo de recursos.

Evite utilizar reservas de capacidad abierta disponibles

Example

Si desea evitar utilizar de forma inesperada cualquiera de sus reservas de capacidad abierta allanzar un clúster de Amazon EMR, establezca la estrategia de asignación bajo demanda enlowest-priceyCapacityReservationPreferenceparaCapacityReservationOptionsanone. De locontrario, Amazon EMR establece por defecto la preferencia de reserva de capacidad de la instanciabajo demanda enopene intenta utilizar las reservas de capacidad abierta disponibles en la medida de loposible.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } } }

253

Page 262: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

También puede utilizar la CLI de Amazon EMR para crear un clúster basado en flota de instancias sinutilizar ninguna reserva de capacidad abierta.

aws emr create-cluster \ --name 'none-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=none}}'}

Donde,

• none-CR-clusterse sustituye por el nombre del clúster que no utiliza ninguna reserva de capacidadabierta.

• subnet-22XXXX01se sustituye por el ID de subred.

Escenarios para utilizar reservas de capacidadPuede beneficiarse del uso de reservas de capacidad en los siguientes escenarios.

Escenario 1: Rotar un clúster de larga duración utilizando reservas de capacidad

Al rotar un clúster de larga ejecución, es posible que tenga requisitos estrictos en los tipos de instancias yzonas de disponibilidad para las nuevas instancias que aprovisiona. Con las reservas de capacidad, puedeutilizar la garantía de capacidad para completar la rotación del clúster sin interrupciones.

Escenario 2: Suministro de clústeres sucesivos de corta duración utilizando reservas de capacidad

También puede utilizar las reservas de capacidad para aprovisionar un grupo de clústeres sucesivosy efímeros para cargas de trabajo individuales, de modo que cuando finalice un clúster, el siguienteclúster pueda utilizar las reservas de capacidad. Puede utilizar reservas de capacidad específicas paraasegurarse de que solo los clústeres previstos utilicen las reservas de capacidad.

254

Page 263: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Configuración de grupos de instancias uniformCon la configuración de grupos de instancias, cada tipo de nodo (maestro, principal o de tareas) secompone del mismo tipo de instancia y la misma opción de compra para las instancias: Bajo demanda ospot. Estos ajustes se especifican al crear un grupo de instancias. No se pueden cambiar más adelante.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.

Si las instancias bajo demanda del clúster coinciden con los atributos de las reservas de capacidadabierta (tipo de instancia, plataforma, arrendamiento y zona de disponibilidad) disponibles en su cuenta,las reservas de capacidad se aplican automáticamente. Puede utilizar reservas de capacidad abiertapara nodos maestro, básico y de tareas. Sin embargo, no puede utilizar reservas de capacidad dirigidasni evitar que las instancias se lancen en reservas de capacidad abierta con atributos coincidentescuando aprovisiona clústeres mediante grupos de instancias. Si desea utilizar reservas de capacidadespecíficas o evitar que las instancias se lancen en reservas de capacidad abierta, utilice Flotas deinstancias en su lugar. Para obtener más información, consulte Utilizar reservas de capacidad con flotas deinstancias (p. 246).

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 del cl (p. 535).

Al lanzar instancias, la preferencia de reserva de capacidad de la instancia bajo demanda se establecede forma predeterminada enopen, lo que le permite ejecutarse en cualquier reserva de capacidad abiertaque tenga atributos coincidentes (tipo de instancia, plataforma, zona de disponibilidad). Para obtener másinformación acerca de las reservas de capacidad bajo demanda, consulte.Utilizar reservas de capacidadcon flotas de instancias (p. 246).

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 Administrar clústeres (p. 473).

Utilice 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 enhttps://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 Configure redes (p. 224).

Note

La cuenta y la región podrían darle la opción de elegirLanzamiento en EC2-ClassicparaRed.Si elige dicha opción, seleccione una EC2 Availability Zone (Zona de disponibilidad deEC2) en lugar de una EC2 Subnet (Subred de EC2). Para obtener más información,consulteAmazon EC2 y Amazon VPCen laGuía del usuario de Amazon EC2 para instanciasde Linux.

255

Page 264: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

6. Dentro de cada fila Node type (Tipo de nodo):

• UNDERTipo de nodo, si desea cambiar el nombre predeterminado del grupo de instancias, elija elicono de lápiz y, a continuación, escriba un nombre fácil de recordar. Si desea eliminar elTareagrupode instancias, elija el icono X. Elija Add task instance group (Añadir grupo de instancias de tareas)para añadir grupos de instancias Task (De tareas) adicionales.

• UNDERTipo de instancia, elija el icono de lápiz y, a continuación, elija el tipo de instancia que deseautilizar para dicho tipo de nodo.

Important

Cuando eliges un tipo de instancia mediante elAWS Management Console, el númerodevCPUse muestra para cadaTipo de instanciaes el número de vcores YARN de ese tipode instancia, no el número de vCPUs EC2 para ese tipo de instancia. Para obtener másinformación acerca del número de vCPUs para cada tipo de instancia, consulteTipos deinstancias de Amazon EC2.

• UNDERTipo de instancia, elija el icono del lápiz paraConfiguracionesy, a continuación, edite lasconfiguraciones 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.

• UNDEROpción de compra,elegirBajo demandaoSubasta. Si elige Spot, seleccione una opciónpara el precio máximo de las instancias de spot. Por defecto,Utilizar bajo demanda como preciomáximose ha seleccionado. Puede seleccionar Set max $/h (Establecer $/h máx.) y, a continuación,introducir el precio máximo. La zona de disponibilidad de la EC2 Subnet (Subred de EC2) que elijaes inferior al Maximum Spot price (Precio de spot máximo).

Tip

Pausa en la información de herramientas de información paraSubastapara ver el precio despot actual para las zonas de disponibilidad en la región actual. El menor precio de spot semuestra en verde. Es posible que desee utilizar esta información para cambiar su selecciónde EC2 Subnet (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. 554).

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.

UsarAWS CLIpara 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 asume laopción de instancia bajo demanda, a menos que especifique laBidPriceargumento para un grupo deinstancias. Para ver ejemplos decreate-clustercomandos que lanzan grupos de instancias uniformescon instancias bajo demanda y diversas opciones de clúster, escribaaws emr create-cluster helpen la línea de comando, o consultecreate-clusteren laAWS CLIReferencia de los comandos.

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 subasta al lanzar el clúster.

256

Page 265: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

El siguiente ejemplo muestra un comando create-cluster que crea grupos de instancias principales,secundarias y de tareas que utilizan instancias de spot. ReemplazarmyKeycon el nombre de su key pairAmazon EC2.

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítalos o reemplácelos por unsigno de intercalación (^).

aws emr create-cluster --name "MySpotCluster" \ --release-label emr-5.36.0 \ --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

Con la CLI, puede crear clústeres de grupos de instancias uniformes que especifican una AMIpersonalizada única para cada tipo de instancia del grupo de instancias. Esto le permite utilizararquitecturas de instancias diferentes en el mismo grupo de instancias. Cada tipo de instancia debe utilizaruna AMI personalizada con una arquitectura coincidente. Por ejemplo, configuraría un tipo de instanciam5.xlarge con una AMI personalizada de arquitectura x86_64 y un tipo de instancia m6g.xlarge con uncorrespondienteAWS AARCH64(ARM) de arquitectura personalizada AMI.

En el ejemplo siguiente se muestra un clúster de grupos de instancias uniforme creado con dos tipos deinstancias, cada uno con su propia AMI personalizada. Observe que las AMI personalizadas se especificansolo en el nivel de tipo de instancia, no en el nivel de clúster. Esto es para evitar conflictos entre las AMI detipo de instancia y una AMI a nivel de clúster, lo que provocaría un error en el lanzamiento del clúster.

aws emr create-cluster --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups \ InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 \ InstanceGroupType=CORE,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-234567

Puede agregar varias AMI personalizadas a un grupo de instancias que agregue a un clúster en ejecución.LaCustomAmiIdse puede utilizar con laadd-instance-groupscomo se muestra en el ejemplosiguiente.

aws emr add-instance-groups --cluster-id j-123456 \ --instance-groups \ InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456

Utilice el SDK de Java para crear un grupo de instanciasPuede 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")

257

Page 266: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

.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 de configuración de clúster y prácticasUtilice 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 debe utilizar?Hay varias formas de añadir instancias de Amazon EC2 a un clúster, que dependen de si utiliza laconfiguración de grupos 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 un Amazon CloudWatch métrica queespecifique. Para obtener más información, consulte Escalado de recursos del cl (p. 535).

• Flotas de instancias• Añadir una única flota de instancias de tarea.• Cambiar la capacidad de destino de las instancias bajo demanda y de spot para las flotas de

instancias secundarias y de tareas. Para obtener más información, consulte Configuración de flotas deinstancias (p. 235).

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 supervisar un clúster (p. 473). 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 maestro, que asigna tareas, no requiere una instancia EC2 con una granpotencia de procesamiento; las instancias de Amazon EC2 para el tipo de nodo principal, que procesantareas y almacenan datos en HDFS, necesitan tanto potencia de procesamiento como capacidad dealmacenamiento; las instancias de Amazon EC2 para el tipo de nodo de tareas, que no almacenar datos,solo necesita poder de procesamiento. Para directrices acerca de las instancias Amazon EC2 disponibles ysu configuración, consulteConfiguración de instancias de Amazon EC2 (p. 216).

Las siguientes directrices se aplican a la mayoría de los clústeres de Amazon EMR.

• Existe un límite de vCPU para el número total de instancias Amazon EC2 bajo demanda que se ejecutanen unAWScuenta porRegión de AWS. Para obtener más información acerca del límite de vCPU y de

258

Page 267: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

cómo solicitar un aumento en el límite de su cuenta, consulteInstancias bajo demandaen laAmazon EC2Guía del usuario de instancias de Linux.

• El nodo principal no suele tener grandes requisitos informáticos. Para clústeres con un gran númerode nodos o para clústeres con aplicaciones implementadas específicamente en el nodo maestro(JupyterHub, Hue, etc.), es posible que se necesite un nodo maestro más grande que puede ayudara mejorar el rendimiento del clúster. Por ejemplo, considere la posibilidad de utilizar una instanciam5.xlarge para clústeres pequeños (50 o menos nodos) y aumentar a un tipo de instancia mayor paraclústeres más grandes.

• 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 de uso general,que ofrecen un desempeño equilibrado en términos de CPU, espacio en disco y entrada/salida. Losclústeres con cálculo intensivo podrían beneficiarse de ejecutarse en instancias de uso elevado de CPU,que tienen en proporción más CPU que RAM. Las aplicaciones de base de datos y almacenamiento enmemoria caché podrían beneficiarse al ejecutarse en instancias de memoria elevada. Las aplicacionescon uso intensivo de red y uso intensivo de CPU como análisis, NLP y aprendizaje virtual puedenbeneficiarse de las instancias de informática en clúster, que ofrecen proporcionalmente recursos de CPUelevada y mayor rendimiento de red.

• Si distintas fases del clúster tienen diferentes necesidades de capacidad, puede empezar con unpequeño número de nodos secundarios y aumentar o reducir el número de nodos de tareas parasatisfacer los requisitos de capacidad variable del flujo de trabajo.

• 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.

¿Cuándo debe usar instancias puntuales?

Cuando lanza un clúster en Amazon EMR, puede elegir lanzar instancias principales, secundarias o detareas en instancias de spot. Dado que cada tipo de grupo de instancias desempeña un papel diferenteen el clúster, hay distintas consecuencias al lanzar cada tipo de nodo en instancias de spot. No sepuede cambiar una opción de compra de instancias mientras se ejecuta un clúster. Para cambiar deinstancias bajo demanda a instancias de spot o viceversa para el nodo principal y los nodos secundarios,debe terminar 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.

Temas• Configuración de Amazon EMR para evitar errores de trabajo debido a la finalización de instancias

puntuales del nodo de tarea (p. 259)• Nodo principal en una instancia de spot (p. 260)• Nodos secundarios en instancias de spot (p. 261)• Nodos de tareas en instancias de spot (p. 261)• Configuraciones de instancias para escenarios de aplicación (p. 261)

Configuración de Amazon EMR para evitar errores de trabajo debido a la finalización de instanciaspuntuales del nodo de tarea

Dado que las instancias puntuales se utilizan a menudo para ejecutar nodos de tareas, Amazon EMR tienela funcionalidad predeterminada para programar trabajos YARN, de modo que los trabajos en ejecuciónno fallan cuando se terminan los nodos de tareas que se ejecutan en instancias puntuales. Amazon EMRlo hace permitiendo que los procesos maestros de aplicaciones se ejecuten solo en nodos principales. Elproceso maestro de aplicaciones controla los trabajos en ejecución y necesita mantenerse vivo durantetoda la vida del trabajo.

Amazon EMR, versión 5.19.0 y posterior, utiliza laEtiquetas de nodo YARNfunción para lograrlo. (Lasversiones anteriores utilizaban un parche de código). Propiedades en elyarn-siteycapacity-

259

Page 268: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

schedulerlas clasificaciones de configuración se configuran de forma predeterminada para que elprogramador de capacidades YARN y el programador de errores aprovechen las etiquetas de los nodos.Amazon EMR etiqueta automáticamente los nodos principales con elCOREetiqueta y establece propiedadespara que los maestros de aplicaciones se programen solo en nodos con la etiqueta CORE. La modificaciónmanual de las propiedades relacionadas en las clasificaciones de configuración del sitio de hilo y delprogramador de capacidades, o directamente en los archivos XML asociados, podría interrumpir estafunción o modificar esta 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 Amazon EMR 6.x, la función de etiquetas de nodo YARNestá deshabilitada de forma predeterminada. De forma predeterminada, los procesos maestrosde la aplicación se pueden ejecutar tanto en nodos principales como en nodos de tareas. Puedehabilitar la función de etiquetas de nodo YARN configurando las siguientes propiedades:

• 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.

260

Page 269: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

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 principales como instancias de subasta, Amazon EMR esperahasta que puede aprovisionar todas las instancias principales 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 están disponibles las seis instancias de Amazon EC2 o hasta que setermina el clúster. Puede cambiar el número de instancias de spot de un grupo de instancias secundariopara añadir capacidad a un clúster en ejecución. Para obtener más información sobre cómo trabajar conlos grupos de instancias y cómo funcionan las instancias de spot con las flotas de instancias, consulte thesection called “Configurar flotas de instancias o grupos de instancias” (p. 233).

Nodos de tareas en 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 subasta, Amazon EMRaprovisiona tantos nodos de tareas como puede con su precio de subasta máximo. Esto significa que, sisolicita un grupo de instancias de tareas con seis nodos y solo hay cinco instancias de subasta disponiblesa su precio de subasta máximo o por debajo de este, Amazon EMR lanza el grupo de instancias con cinconodos, y añade el sexto má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.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 aplicación

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 aplicaciones Opción de compra denodo maestro

Opción de compra denodos principales

Opción de compra denodos de tareas

Clústeres y almacenes de datosde larga duración (p. 262)

Bajo demanda Bajo demanda ocombinación deflotas de instancias

Spot o combinaciónde flotas deinstancias

Cargas de trabajo dirigidas porcostos (p. 262)

Spot Spot Spot

Cargas de trabajo críticas paradatos (p. 262)

Bajo demanda Bajo demanda Spot o combinaciónde flotas deinstancias

Prueba de aplicación (p. 262) Spot Spot Spot

261

Page 270: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar flotas de instancias o grupos de instancias

Existen varias situaciones en las que las instancias de subasta son útiles para ejecutar un clúster deAmazon EMR.

Clústeres y almacenes de datos de larga duración

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 subasta. Puede lanzar los grupos de instancias principales y secundarios como instanciasbajo demanda para gestionar la capacidad normal y lanzar los grupos de instancias de tareas comoinstancias de 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 maestras y principalescomo instancias bajo demanda y compleméntelas con uno o varios grupos de instancias de tareas deinstancias de subasta. La ejecución de los grupos de instancias maestras y principales como instanciasbajo demanda garantiza que los datos se almacenen en HDFS y que el clúster está protegido de laterminación debido a fluctuaciones en el mercado de subastas, además de proporcionar un ahorro decostos que supone la ejecución de grupos de instancias como instancias de subasta.

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 HDFS requerida de un clústerLa cantidad de almacenamiento HDFS disponible para el clúster depende de los siguientes factores:

• El número de instancias Amazon EC2 utilizadas para los nodos principales.• La capacidad del almacén de instancias de Amazon EC2 para el tipo de instancias que se utiliza. Para

obtener más información sobre los volúmenes del almacén de instancias, consulteAlmacén de instanciasAmazon Amazon EC2en laGuía del usuario de Amazon EC2 para instancias de Linux.

• El número y el tamaño de volúmenes Amazon EBS adjuntos a nodos principales.• 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 principal, añada la capacidad devolumen del almacén de instancias a la capacidad de almacenamiento de Amazon EBS (si se utiliza).Multiplique el resultado por el número de nodos secundarios y, a continuación, divida el total por el factorde replicación que depende del número de nodos secundarios. Por ejemplo, un clúster con 10 nodosprincipales de tipo i2.xlarge, que tiene 800 GB de almacenamiento de instancias y no tiene ningún volumende Amazon EBS asociado, tiene un total de aproximadamente 2 666 GB disponibles para HDFS (10 nodosx 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:

262

Page 271: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar el registro y la depuración de clústeres

• Creación de un clúster con volúmenes de Amazon EBS adicionales o adición de grupos de instanciascon volúmenes Amazon EBS adjuntos a un clúster existente

• Agregar más nodos secundarios• Elección de un tipo de instancia Amazon 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 y la depuración de clústeresUna 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 procesamiento dedatos, le recomendamos probar la aplicación en un clúster que procese un subconjunto pequeño, perorepresentativo, de sus datos. Al hacerlo, probablemente deseará aprovechar 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 archivadode 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 Connect al nodo maestro utilizando SSH (p. 519). Dado que estos registrosexisten en el nodo maestro, 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:

• Registros de pasos: estos registros se generan mediante el servicio de Amazon EMR y contieneninformación acerca del 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.

• Registros de componentes de Hadoop y YARN— Los registros de componentes asociados con ApacheYARN y MapReduce, por ejemplo, se encuentran en carpetas independientes en/mnt/var/log.Las ubicaciones de archivo de registro para los componentes de Hadoop en /mnt/var/log son lassiguientes: hadoop-hdfs, hadoop-mapreduce, hadoop-httpfs y hadoop-yarn. El directorio hadoop-state-pusher es para la salida del proceso state pusher de Hadoop.

• Registros de acciones de arranque— Si su trabajo utiliza acciones de arranque, se registran losresultados de estas acciones. Los archivos de registro se almacenan en /mnt/var/log/bootstrap-actions/

263

Page 272: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónArchivo de archivos de registro en Amazon S3

en el nodo principal. Cada acción de arranque registra sus resultados en un subdirectorio numeradoindependiente: /mnt/var/log/bootstrap-actions/1/ para la primera acción de arranque, /mnt/var/log/bootstrap-actions/2/ para la segunda acción de arranque y así sucesivamente.

• Registros de estado de instancia— Estos registros proporcionan información sobre la CPU, el estadode la memoria y los subprocesos del recolector de elementos no utilizados del nodo. Los archivos deregistro se almacenan en /mnt/var/log/instance-state/ en el nodo principal.

Archivo de archivos de registro en Amazon S3Note

No puede utilizar actualmente la agregación de registros en Amazon S3 con layarn logsutilidad.

Puede configurar un clúster para archivar periódicamente los archivos de registro almacenados en el nodomaestro 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 a 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.

Para el archivado de los archivos de registro en Amazon S3utilizando la consola1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Create cluster.3. Elija Go to advanced options (Ir a las opciones avanzadas).4. En el navegadorOpciones generalesen laRegistro de, acepte la opción predeterminada: Enabled

(Habilitado).

Esto determina si Amazon EMR captura datos de registro detallados en Amazon S3. Solo puededefinirlo cuando se crea el clúster. Para obtener más información, consulte Ver archivos de registro de (p. 487).

5. En el navegadorS3 folder (Carpeta de S3), escriba (o busque) una ruta de Amazon S3 para almacenarsus registros. También puede permitir que la consola genere una ruta de Amazon S3. Si escribe elnombre de 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, consulteVer archivos de registro.6. En el navegadorCifrado de, seleccioneCifrar los registros almacenados en S3 con unAWSClave

administrada por clientes de KMS. A continuación, seleccione unAWSClave de KMS de la lista oescriba un ARN de clave. 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 unaAWSClaveadministrada por clientes de KMS (p. 265).

7. Continúe con la creación del clúster tal como se describe en Planificar y configurarclústeres (p. 141).

264

Page 273: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónArchivo de archivos de registro en Amazon S3

Para cifrar los archivos de registro almacenados en Amazon S3con unaAWSClave administrada por clientes de KMSCon Amazon EMR versión 5.30.0 y posteriores (excepto Amazon EMR 6.0.0), puede cifrar los archivos deregistro almacenados en Amazon S3 con unaAWSClave administrada por clientes de KMS. Para habilitaresta opción en la consola, siga los pasos descritos en Para el archivado de los archivos de registro enAmazon S3 utilizando la consola (p. 264). Su perfil de instancia de Amazon EC2 y su rol de AmazonEMR deben cumplir los siguientes requisitos previos:

• El perfil de instancia de Amazon EC2 utilizado para el clúster debe tener permiso parausarkms:GenerateDataKey.

• El rol de Amazon EMR utilizado para el clúster debe tener permiso para usarkms:DescribeKey.• El perfil de instancia de Amazon EC2 y el rol de Amazon EMR deben agregarse a la lista de usuarios

clave para el especificadoAWSClave administrada por el cliente de KMS, como demuestran lossiguientes pasos:1. Abra el iconoAWS Key Management Service(AWS KMS) enhttps://console.aws.amazon.com/kms.2. Para cambiar la región de AWS, utilice el Region selector (Selector de regiones) en la esquina

superior derecha de la página.3. Seleccione el alias de la clave de KMS que desea modificar.4. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).5. En el navegadorAgregar usuarios clave, seleccione su perfil de instancia de Amazon EC2 y el rol de

Amazon EMR.6. Elija Add.

Para obtener más información, consulteFunciones de servicio de IAM utilizadas por Amazon EMR, yUsarpolíticas de clavesen laAWSGuía para desarrolladores de Key Management Service.

Para el archivado de los archivos de registro en Amazon S3utilizando laAWS CLIPara el archivado de los archivos de registro en Amazon S3 utilizando laAWS CLI, escriba elcreate-clustery especifique la ruta de registro de Amazon S3 mediante el--log-uriparámetro.

• Para registrar archivos en Amazon S3 escriba el siguiente comando y sustituya.myKeycon el nombrede su key pair de EC2.

aws emr create-cluster --name "Test cluster" --release-label emr-5.36.0 --log-uri s3://DOC-EXAMPLE-BUCKET/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 laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

265

Page 274: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónHabilitar la herramienta de depuración

Para agregar registros en Amazon S3 utilizando laAWS 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 mediantelaAWS CLI, utiliza una acción de arranque en el lanzamiento de clústeres para habilitar la agregación deregistros y especificar el bucket para almacenar los registros.

• Para habilitar la agregación de registros, cree el siguiente archivo de configuración myConfig.json,que contiene lo siguiente:

[ { "Classification": "yarn-site", "Properties": { "yarn.log-aggregation-enable": "true", "yarn.log-aggregation.retain-seconds": "-1", "yarn.nodemanager.remote-app-log-dir": "s3:\/\/DOC-EXAMPLE-BUCKET\/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-5.36.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 laAWS 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 los archivos de registro en la herramienta dedepuración (p. 490). 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.

266

Page 275: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónHabilitar la herramienta de depuración

Para habilitar la herramienta de depuración mediante la consola de Amazon EMR

1. Abra la consola de Amazon EMR enhttps://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 navegadorUbicación de la carpeta de logs en S3, escriba una ruta de Amazon S3 para

almacenar sus registros.6. En el campo Debugging (Depuración), elija Enabled (Habilitada).

La opción de depuración un intercambio de Amazon SQS para publicar mensajes de depuración en elbackend de servicio de Amazon EMR. Podrían aplicarse cargos por la publicación de mensajes en elintercambio. Para obtener más información, consulte http://aws.amazon.com/sqs.

7. Continúe con la creación del clúster tal como se describe en Planificar y configurarclústeres (p. 141).

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-5.36.0 --log-uri s3://DOC-EXAMPLE-BUCKET/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 laAWS 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 new

267

Page 276: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónInformación de opción de depuración

StepFactory("region.elasticmapreduce"), como, por ejemplo, new StepFactory("ap-northeast-2.elasticmapreduce").

Información de opción de depuraciónAmazon EMR versión 4.1.0 a 5.27.0 admite la depuración en todas las regiones. Las demás versiones deEMR no son compatibles con la opción de depuración.

Amazon EMR crea una cola de Amazon SQS para procesar datos de depuración. Podrían aplicarse cargosde mensajes. Sin embargo, Amazon SQS tiene capa gratuita de hasta 1 000 000 solicitudes disponibles.Para obtener más información, consulte laPágina de detalles de Amazon SQS.

La depuración requiere el uso de roles; su rol de servicio y perfil de instancia deben permitirle utilizar todaslas operaciones del API de Amazon SQS. Si sus funciones están asociadas 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 servicio deIAM para permisos de Amazon EMR paraAWSservicios y recursos (p. 312).

Clústeres de etiquetasPuede 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 sus clústeres de Amazon EMR utilizando 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.

Al añadir una etiqueta a un clúster de Amazon EMR, la etiqueta también se propaga a cada una de lasinstancias Amazon EC2 activas asociadas con el clúster. Del mismo modo, si suprime una etiqueta de unclú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 de 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 AWS Management Console la CLI y la API.

268

Page 277: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónRestricciones de las etiquetas

Puede añadir etiquetas al crear un nuevo clúster de Amazon EMR y puede añadir, editar o suprimiretiquetas desde un clúster de Amazon EMR en ejecución. Editar una etiqueta es un concepto que seaplica a la consola de Amazon EMR, sin embargo utilizando la CLI y la API, para editar una etiqueta seelimina la etiqueta antigua y se añade una nueva. Puede editar las claves y los valores de las etiquetasy también puede eliminar etiquetas de un recurso en cualquier momento que se ejecuta un clúster. Sinembargo, no puede añadir, editar o suprimir etiquetas desde un clúster terminado o instancias terminadasque se asociaron anteriormente con un clúster que sigue activo. Además, puede establecer el valor de unaetiqueta como una cadena vacía, pero no puede establecer el valor de una etiqueta como nulo.

Si utilizaAWS Identity and Access Management(IAM) con sus instancias Amazon EC2 para permisosbasados en recursos por etiqueta, sus políticas de IAM se aplican a etiquetas que Amazon EMR propagaa instancias Amazon EC2 de un clúster. Para que las etiquetas de Amazon EMR se propaguen a susinstancias de Amazon EC2, su política de IAM para Amazon EC2 debe permitir los permisos para llamara Amazon EC2 CreateTags y DeleteTags API. Además, las etiquetas propagadas pueden afectar a suspermisos basados en recursos de Amazon EC2. Las etiquetas propagadas a Amazon EC2 se pueden leercomo condiciones en la política de IAM, como las demás etiquetas de Amazon EC2. Tenga en cuenta supolítica de IAM a la hora de añadir etiquetas a sus clústeres de Amazon EMR para evitar que los usuariosde IAM tengan permisos incorrectos para un clúster. Para evitar problemas, asegúrese de que sus políticasde IAM no incluyan condiciones de etiquetas que también pretenda utilizar en los clústeres de AmazonEMR. Para obtener más información, consulteControl del acceso a 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 acerca del etiquetado mediante laAWS Management Console, consulteUsode etiquetas en la consolaen laGuía del usuario de Amazon EC2 para instancias de Linux. Para obtenermás información sobre el etiquetado utilizando la API de Amazon EC2API o la línea de comandos,consulteInformación general de la API y de la CLIen laGuía del usuario de Amazon EC2 para instancias deLinux.

Etiquetar recursos para facturaciónPuede usar etiquetas para organizar suAWSFactura para reflejar su propia estructura de costos. Paraello, inscríbase para obtener una factura de la 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 verel costo de los recursos combinados. Aunque Amazon EMR y Amazon EC2 tienen diferentes facturas,las etiquetas en 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 organizar suinformación de facturación para ver el costo total de la aplicación en distintos servicios. Para obtener másinformación, consulteEtiquetado y asignación de costosen laAWS BillingGuía del usuario de.

269

Page 278: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAñadir etiquetas a un clúster nuevo

Añadir etiquetas a un clúster nuevoPuede 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 enhttps://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áginaPaso 3: Configuración del clúster general, en elEtiquetassección, escriba aClavepara la

etiqueta.

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 laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Adición de 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 laLista clústery haga clic en un clúster al que desea añadiretiquetas.

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).

270

Page 279: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización de etiquetas de un clúster

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 (IDde 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 funcionamiento (una con una clavedenominadacostCentercon un valor demercadotecniay otro llamadootrocon un valordecontabilidad) escriba el siguiente comando y sustituyaJ-K T4 XXXXXXXX1nmcon su ID declúster.

aws emr add-tags --resource-id j-KT4XXXXXXXX1NM --tag "costCenter=marketing" --tag "other=accounting"

Note

Cuando se agregan etiquetas mediante elAWSCLI, no hay salida del comando.

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

Visualización de etiquetas de 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 laLista clústery haga clic en un clúster para ver etiquetas.2. En la página Cluster Detailsse (Detalles del clúster), en el campo Tags (Etiquetas), se muestran

algunas 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

271

Page 280: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEliminar etiquetas de un clúster

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 laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

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 laLista clústery haga clic en un clúster del que deseaeliminar 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 laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Integración de controladores e aplicaciones 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• Utilizar herramientas de inteligencia empresarial con Amazon EMR (p. 273)

272

Page 281: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUtilizar herramientas de inteligencia

empresarial con Amazon EMR

Utilizar herramientas de inteligencia empresarial conAmazon 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). Paradescargar e instalar los controladores más recientes, consultehttp://awssupportdatasvcs.com/bootstrap-actions/Simba/latest/.

Para buscar versiones anteriores de los controladores, consultehttp://awssupportdatasvcs.com/bootstrap-actions/Simba/.

273

Page 282: Amazon EMR - Guía de administración

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 beneficia de unaarquitectura de red y un centro de datos que se han diseñado para satisfacer los requisitos de seguridadde las organizaciones 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 los serviciosde AWS 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 sobre los programas deconformidad que se aplican a Amazon EMR, consulteAWSServicios incluidos en el ámbito por programade conformidad.

• 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 vigentes.

Esta documentación lo 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.AWSservicios parasatisfacer sus objetivos de seguridad y 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 Utilizar configuraciones deseguridad para configurar la seguridad del clúster (p. 276).

Protección de los datosPuede implementar el cifrado de datos para ayudar a proteger los datos en reposo en Amazon S3, losdatos en reposo en el almacenamiento de las instancias del clúster y los datos en tránsito. Para obtenermás información, consulte Cifrar datos en reposo y en tránsito (p. 297).

AWS Identity and Access Managementcon AmazonEMR

AWS Identity and Access Management (IAM) es un servicio de AWS que ayuda al administrador acontrolar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quiénpuede serautenticado(iniciado sesión) yautorizado(tienen permisos) para utilizar los recursos de AmazonEMR. IAM es un servicio de AWS que puede utilizar sin cargo adicional.

• Políticas basadas en identidad de IAM— Las políticas de IAM permiten o deniegan permisos para quelos usuarios y grupos de IAM realicen acciones. Las políticas se pueden combinar con el etiquetado para

274

Page 283: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónKerberos

controlar el acceso en un cluster-by-cluster base. Para obtener más información, consulte AWS Identityand Access Managementpara Amazon EMR (p. 306).

• Roles de IAM— El rol de servicio, el perfil de instancia y el rol vinculado a servicios de AmazonEMR controlan cómo Amazon EMR es capaz de acceder a otrosAWSServicios de . Para obtenermás información, consulte Configurar roles de servicio de IAM para permisos de Amazon EMRparaAWSservicios y recursos (p. 312).

• Roles de IAM para solicitudes de EMRFS a Amazon S3— Cuando Amazon EMR accede a AmazonS3, puede especificar el rol de IAM que va a utilizar en función del usuario, el grupo o la ubicación deEMRFS datos en Amazon S3. Esto le permite controlar con precisión si los usuarios del clúster puedenacceder a los archivos desde Amazon EMR. Para obtener más información, consulte Configuración deroles de IAM para solicitudes de EMRFS a Amazon S3 (p. 338).

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. 368).

Lake FormationPuede utilizar los permisos de Lake Formation junto con laAWSGlue Data Catalog para proporcionar unacceso detallado a nivel de columna a bases de datos y a las tablas enAWSGlue Data Catalog. LakeFormation permite un inicio de sesión único federado en blocs de notas de EMR o Apache Zeppelin desdeun sistema de identidades de la compañía. Para obtener más información, consulte Integración de AmazonEMR conAWS Lake Formation (p. 395).

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 key pair de AmazonEC2. Para obtener más información, consulte Utilizar un key pair de Amazon EC2 para las credencialesSSH (p. 368) y Connect al clúster (p. 517).

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 Controlar el tráfico de red con gruposde seguridad (p. 453).

Actualizaciones de la AMI de Amazon Linuxpredeterminada para Amazon EMR

Important

Los clústeres de Amazon EMR que ejecutan AMI de Amazon Linux o Amazon Linux 2 (AmazonLinux Machine Images) utilizan el comportamiento predeterminado de Amazon Linux y no

275

Page 284: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUtilizar configuraciones de seguridad

para configurar la seguridad del clúster

descargan e instalan automáticamente actualizaciones importantes y críticas del kernel querequieren un reinicio. Es el mismo comportamiento que otras instancias de Amazon EC2 queejecutan la AMI de Amazon Linux predeterminada. Si las nuevas actualizaciones de software deAmazon Linux que requieren un reinicio (como actualizaciones del kernel, NVIDIA y CUDA) estándisponibles después de que se publique una versión de Amazon EMR, las instancias de clústerde Amazon EMR que ejecutan la AMI predeterminada no descargan e instalan automáticamentedichas actualizaciones. Para obtener actualizaciones del kernel, puedesPersonalice su AMI deAmazon EMRautilizar la última AMI de Amazon Linux.

En función del nivel de seguridad de la aplicación y del tiempo que lleve ejecutándose un clúster, puedeoptar por reiniciar el clúster periódicamente para aplicar las actualizaciones de seguridad, o crear unaacción de arranque para personalizar la instalación y las actualizaciones de los paquetes. Tambiénpuede optar por probar y, a continuación, instalar determinadas actualizaciones de seguridad en lasinstancias del clúster en ejecución. Para obtener más información, consulte Uso de la AMI de AmazonLinux predeterminada para Amazon EMR (p. 197). Tenga en cuenta que la configuración de red debepermitir la salida HTTP y HTTPS a los repositorios de Amazon Linux en Amazon S3; de lo contrario, lasactualizaciones de seguridad no se realizarán correctamente.

Utilizar 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 crear unaconfiguración de seguridad. Para obtener más información, consulteAWS CloudFormationGuía del usuariodey la referencia de plantilla paraAWS::EMR::SecurityConfiguration.

Temas• Creación de una configuración de seguridad (p. 276)• Especificar una configuración de seguridad para un clúster (p. 296)

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. 297)• Uso de la autenticación Kerberos (p. 368)• Configuración de roles de IAM para solicitudes de EMRFS a Amazon S3 (p. 338)

Creación de una configuración de seguridad utilizando la consola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

276

Page 285: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

2. En el panel de navegación, elija Security Configurations (Configuraciones de seguridad), Createsecurity configuration (Crear configuración de seguridad).

3. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre).4. Elija opciones paraCriptografíayAutenticacióncomo se describe en las secciones siguientes y, a

continuación, elijaCrear.

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.

• 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 opcionesparaCriptografía,Roles de IAM para acceso de EMRFS a Amazon S3, yAutenticacióntal y como sedescribe en las secciones siguientes.

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 cifrar datos enreposo con Amazon EMR (p. 302) y Proporcionar certificados para cifrar datos en tránsito con cifrado deAmazon EMR (p. 304).

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. 297).

Note

Cuando utilice AWS KMS, se aplican cargos por el almacenamiento y el uso de las claves decifrado. Para obtener más información, consulte Precios de AWS KMS.

Especificación de las opciones de cifrado mediante la consola

Elija 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 ambos.• UNDERCifrado de datos S3, paraModo de cifrado, elija un valor para determinar cómo Amazon EMR

cifra los datos de Amazon S3 con EMRFS.

Lo que haga a continuación depende del modo de cifrado que haya elegido:• SSE-S3

277

Page 286: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

EspecificaCifrado en el servidor con claves de cifrado administradas por Amazon S3. No necesitahacer 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). ParaAWS KMSkey, seleccione una clave. La clave debe existir en la misma región que su clúster de EMR. Para losrequisitos de clave, consulte Uso deAWS KMS keyspara Cifrado (p. 302).

• CSE-Custom

Especificacifrado del lado del cliente mediante una clave raíz del lado del cliente (CSE-Custom).Paraobjeto de S3, especifique la ubicación en Amazon S3, o el ARN de Amazon S3 del archivoJAR del proveedor de claves personalizadas. Luego, paraClase de proveedor clave, escribael nombre de clase completo de una clase declarada en la aplicación que implementa laEncryptionMaterialsProvider .

• En Local disk encryption (Cifrado de disco local), seleccione un valor para Key provider type (Tipo deproveedor de clave).• AWS KMS key

Seleccione esta opción para especificar unAWS KMS key. ParaAWS KMS key, seleccione una clave.La clave debe existir en la misma región que su clúster de EMR. Para obtener más información sobrelos requisitos de claves, consulte Uso deAWS KMS keyspara Cifrado (p. 302).

Cifrado de EBS

Cuando especificasAWS KMSComo 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 EMREMR_DefaultRolecon permisos de para usar laAWS KMS keyqueespecifique. Para obtener más información sobre los requisitos de claves, consulte Habilitar el cifradoEBS proporcionando permisos adicionales para claves KMS (p. 302).

• Custom (Personalizado)

Seleccione esta opción para especificar un proveedor de claves personalizadas. Paraobjeto de S3,especifique la ubicación en Amazon S3, o el ARN de Amazon S3 del archivo JAR del proveedor declaves personalizadas. ParaClase de proveedor clave, escriba el nombre de clase completo de unaclase declarada en la aplicación que implementa la EncryptionMaterialsProvider . El nombre de claseque proporcione aquí debe ser distinto al nombre de clase 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 cifrar datos en tránsito con cifrado de Amazon EMR (p. 304). Paraobjeto de S3,especifique la ubicación en Amazon S3, o el ARN de Amazon S3, del campo del archivo zip.

• Custom (Personalizado)

Seleccione esta opción para especificar un proveedor de certificados personalizados y, a continuación,paraobjeto de S3, especifique la ubicación en Amazon S3, o el ARN de Amazon S3 de su archivo JARdel proveedor de certificados personalizado. En Key provider class (Clase de proveedor de claves),escriba el nombre de clase completo de una clase declarada en la aplicación que implemente lainterfaz TLSArtifactsProvider.

278

Page 287: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Especificación de las opciones de cifrado mediante laAWS 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.

Ejemplo de opciones de cifrado de datos en tránsito

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 (consulteProporcionar

certificados para cifrar datos en tránsito con cifrado de Amazon EMR (p. 304)para requisitos decertificados.

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 cifrar datos en

tránsito con cifrado de Amazon EMR (p. 304) 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" } } }}'

Ejemplo de opciones de cifrado de datos en reposo

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.

279

Page 288: Amazon EMR - Guía de administración

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": 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" } } }}'

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.

280

Page 289: Amazon EMR - Guía de administración

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": 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" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } }}'

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.

281

Page 290: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

• El cifrado de Amazon S3 está habilitado con SSE-KMS.• MúltiploAWS KMSSe utilizan claves, una por cada bucket de S3, y se aplican excepciones de cifrado a

estos 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": [ { "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.

282

Page 291: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

• El cifrado de disco local se ha habilitado conAWS KMSya que el proveedor de claves y el cifrado deAmazon S3 están deshabilitados.

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" } } }}'

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 se ha habilitado conAWS KMSya que el proveedor de claves y el cifrado de

Amazon S3 están deshabilitados.• 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 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

«Habilitar cifrado intransit'»: true |falso

Specify true to enable in-transit encryption andfalso to disable it. If omitted, falso is assumed,and in-transit encryption is disabled.

«HabilitRestEncryption»: true | falso Specify true to enable at-rest encryption andfalso to disable it. If omitted, falso is assumedand at-rest encryption is disabled.

Parámetros de cifrado en tránsito

283

Page 292: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

«Configuración de cifradointransitable»:

Specifies a collection of values used to configurein-transit encryption when Habilitar cifradointransitorio is true.

«Tipo de proveedor de certificados»:«PEM» | «personalizado»

Specifies whether to use PEM certificatesreferenced with a zipped file, or a Personalizadocertificate provider. If PEM is specified, Objeto S3must be a reference to the location in Amazon S3of a zip file containing the certificates. If Custom isspecified, Objeto S3 must be a reference to thelocation in Amazon S3 of a JAR file, followed bya Clase de proveedor de certificadosentry.

«Objeto S3»: "Ubicación Zip" | "JarUbicación"

Provides the location in Amazon S3 to a zipfile when PEM is specified, or to a JAR filewhen Personalizado is specified. Theformat can be a path (for example, s3: //MyConfig/artifacts/CertFiles.zip) oran ARN (for example, arn: aws:s3# :code/myCertProvider.jar). If a zip file isspecified, it must contain files named exactlyprivateKey.pem and certificateChain.pem.A file named trustedCertificates.pem isoptional.

«Clase de proveedor de certificados»:"Mi Classid"

Required only if Personalizado is specifiedfor Tipo de proveedor de certificados.Mi Classid specifies a full class namedeclared in the JAR file, which implements theTLSArtifactsProvider interface. For example,com.mycompany.MyCertProvider.

Parámetros de cifrado en reposo

«Configuración de cifrado ATREST»: Specifies a collection of values for at-restencryption when Habilitar el cifradoATREST is true, including Amazon S3 encryptionand local disk encryption.

Parámetros de cifrado de Amazon S3

«Configuración de cifrado S3»: Specifies a collection of values used for AmazonS3 encryption with the EMR File System (EMRFS).

«Modo de cifrado»: «SSE-S3" | «SSE-KMS» |«CSE-KMS» | «CSE-Custom»

Specifies the type of Amazon S3 encryption touse. If SSE-S3 is specified, no further Amazon S3encryption values are required. If either SSE-KMSor CSE-KMS is specified, an AWS KMS key ARNmust be specified as the AwsKmsKey value. If CSE-Custom is specified, Objeto S3 and Clase deproveedor de claves de cifrado valuesmust be specified.

284

Page 293: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

«AwsKmsKey»: "Mi clave ARN" Required only when either SSE-KMS or CSE-KMS is specified for EncryptionMode. Miclave ARN must be a fully specified ARNto a key (for example, arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).

«Objeto S3»: "Jar Ubicación" Required only when CSE-Custom is specifiedfor Tipo de proveedor de certificados.Jar Ubicación provides the location in AmazonS3 to a JAR file. The format can be a path (forexample, s3: //MyConfig/artifacts/MyKeyProvider.jar) or an ARN (for example,arn: aws:s3# :code/mykeyprovider.jar).

«Clase de proveedor de claves decifrado»: "ID de clave MyS3"

Required only when CSE-Custom is specifiedfor EncryptionMode. ID de claveMyS3 specifies a full class name of a classdeclared in the application that implementsthe EncryptionMaterialsProvider interface; forexample, com.mycompany.mys3 proveedor declaves.

Parámetros de cifrado de disco local

«Configuración de cifrado de discolocal»

Specifies the key provider and correspondingvalues to be used for local disk encryption.

«Habilitar cifrado EBS»:true|false Specify true to enable EBS encryption. EBSencryption encrypts the EBS root device volumeand attached storage volumes. To use EBSencryption, you must specify AWS SKM asyour Tipo de proveedor de claves decifrado.

«Tipo de proveedor de claves decifrado»: «ASKMS» | «personalizado»

Specifies the key provider. If AWS SKM is specified,an KMS key ARN must be specified as theAwsKmsKey value. If Personalizado is specified,Objeto S3 and Clase de proveedor declaves de cifrado values must be specified.

«AwsKmsKey: "Mi clave ARN" Required only when AWS SKM is specifiedfor Tipo. Mi clave ARN must bea fully specified ARN to a key (forexample, arn:aws:kms:us-east-1:123456789012:key/1234-1234-1234-1234-1234-1234-1234-1234-1234-1234-1234-1234-1234-1234-1234).

«Objeto S3»: "Jar Ubicación" Required only when CSE-Custom is specifiedfor Tipo de proveedor de certificados.Jar Ubicación provides the location in AmazonS3 to a JAR file. The format can be a path (forexample, s3: //MyConfig/artifacts/MyKeyProvider.jar) or an ARN (for example,arn: aws:s3# :code/mykeyprovider.jar).

285

Page 294: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"EncryptionKeyProviderClass" :"MyLocalDiskKeyClassID"

Required only when Personalizado is specifiedfor Tipo. Mi clase de clave de discolocal specifies a full class name of a classdeclared in the application that implements theEncryptionMaterialsProvider interface; for example,com.mycompany.myproveedor de claves dedisco local.

Configuración de la autenticación 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. 368). Kerberos solo está disponible en versión 5.10.0 y posterioresde Amazon EMR.

Especificación de la configuración de Kerberos mediante la consola

Elija opciones en Kerberos authentication (Autenticación Kerberos) de acuerdo con las siguientesdirectrices.

Parámetro Descripción

Kerberos Especifica que Kerberos está habilitado para clústeresque utilizan esta configuración de seguridad. Si un clústerutiliza esta configuración de seguridad, el clúster tambiéndebe tener especificada la configuración de Kerberos o seproduce un error.

KDC dedicado del clúster Especifica que Amazon EMR crea un KDC en el nodomaestro de cualquier clúster que utilice esta configuraciónde seguridad. Especifique el nombre de dominio y lacontraseña de administrador de KDC al crear el clúster.

Puede hacer referencia a este KDC desde otros clústeres,si es necesario. Cree esos clústeres utilizando unaconfiguración de seguridad diferente, especifique un KDCexterno y utilice el nombre de dominio y la contraseñade administrador de KDC que especifique para el KDCdedicado al clúster.

Proveedor

KDC externo Solo disponible con Amazon EMR 5.20.0 y versionesposteriores. Especifica que los clústeres que utilizan estaconfiguración de seguridad autentican los principalesKerberos mediante un servidor KDC fuera del clúster. Nose crea un KDC en el clúster. Al crear el clúster, especificael nombre de dominio y la contraseña de administrador deKDC para el KDC externo.

Lifetime ticket Opcional. Especifica el periodo de validez para un vale deKerberos generado por el KDC en clústeres que utilizanesta configuración de seguridad.

La vida útil de los vales se limita por motivos de seguridad.Las aplicaciones de clúster y los servicios renuevan

286

Page 295: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripciónautomáticamente los vales después de que expiren.Los usuarios que se conecten al clúster mediante SSHutilizando las credenciales de Kerberos tienen queejecutar.kinitdesde la línea de comandos del nodoprincipal para la renovación tras la expiración de un vale.

Relación de confianza entre ámbitos Especifica una confianza entre dominios entre un KDCdedicado a clústeres en clústeres que utilizan estaconfiguración de seguridad y un KDC en un dominioKerberos diferente.

Los principales (normalmente usuarios) de otro reino seautentican en clústeres que utilizan esta configuración.Se requiere configuración adicional en el otro reino deKerberos. Para obtener más información, consulte Tutorial:Configure una confianza entre ámbitos con un dominio deActive Directory (p. 390).

Ámbito Especifica el nombre de ámbito de Kerberos del otroámbito en la relación de confianza. Por convención,los nombres de dominios de Kerberos son los mismosque el nombre de dominio, pero con todas las letras enmayúsculas.

Dominio Especifica el nombre de dominio del otro ámbito en larelación de confianza.

Servidor de administrador 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 confianzaentredominios

Servidor 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 servidorde administración suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos parautilizarse.

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 externo Especifica que el clúster utiliza KDC externo de clústeres.

287

Page 296: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

Servidor de administrador 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 KDC Especifica el nombre de dominio completo (FQDN) delservidor KDC externo. El servidor de KDC y el servidorde administración suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos parautilizarse.

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.

Dominiode ActiveDirectory

Especifica el nombre de ámbito de Kerberos del dominiode Active Directory. Por convención, los nombres dedominios de Kerberos suelen coincidir con el nombre dedominio, pero con todas las letras en mayúsculas.

Dominiode ActiveDirectory

Especifica el nombre de dominio de Active Directory.

Propiedadesde KDCexternas

Propiedadesdeintegraciónde 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 mediante elAWS 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 deconfiguración (p. 382).

Parámetro Descripción

"AuthenticationConfiguration": { Obligatorio para Kerberos. Especificaque una configuración de autenticaciónforma parte de esta configuración deseguridad.

"KerberosConfiguration": { Obligatorio para Kerberos. Especificalas propiedades de configuración deKerberos.

288

Page 297: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"Provider":"ClusterDedicatedKdc",

—o—

"Provider: "ExternalKdc",

ClusterDedicatedKdcespecificaque Amazon EMR crea un KDC en elnodo maestro de cualquier clúster queutilice esta configuración de seguridad.Especifique el nombre de dominio yla contraseña de administrador deKDC al crear el clúster. Puede hacerreferencia a este KDC desde otrosclústeres, si es necesario. Cree esosclústeres utilizando una configuración deseguridad diferente, especifique un KDCexterno y utilice el nombre de dominio yla contraseña de administrador de KDCque especificó al crear el clúster con elKDC dedicado al clúster.

ExternalKdcespecifica que el clústerutiliza un KDC externo. Amazon EMRno crea un KDC en el nodo principal.Un clúster que utilice esta configuraciónde seguridad debe especificar elnombre de dominio y la contraseña deadministrador de KDC del KDC externo.

"ClusterDedicatedKdcConfiguration":{

Es obligatorio cuando se especificaClusterDedicatedKdc.

"TicketLifetimeInHours":24,

Opcional. Especifica el periodo devalidez para un vale de Kerberosgenerado por el KDC en clústeres queutilizan 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.kinitdesde la líneade comandos del nodo principal para larenovación tras la expiración de un vale.

289

Page 298: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"CrossRealmTrustConfiguration":{

Especifica una confianza entre dominiosentre un KDC dedicado a clústeres enclústeres que utilizan esta configuraciónde seguridad y un KDC en un dominioKerberos diferente.

Los principales (normalmente usuarios)de otro reino se autentican en clústeresque utilizan esta configuración. Serequiere configuración adicionalen el otro reino de Kerberos. Paraobtener más información, consulteTutorial: Configure una confianza entreámbitos con un dominio de ActiveDirectory (p. 390).

"Realm":"KDC2.COM",

Especifica el nombre de ámbito deKerberos del otro ámbito en la relaciónde confianza. Por convención, losnombres de dominios de Kerberos sonlos mismos que el nombre de dominio,pero con todas las letras en mayúsculas.

"Domain":"kdc2.com",

Especifica el nombre de dominio del otroámbito 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 para utilizarse.

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).

290

Page 299: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

}

}

«Configuración externa de KDC»: { Es obligatorio cuando se especificaExternalKdc.

"TicketLifetimeInHours":24,

Opcional. Especifica el periodo devalidez para un vale de Kerberosgenerado por el KDC en clústeres queutilizan 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.kinitdesde la líneade comandos del nodo principal para larenovación tras la expiración de un vale.

"KdcServerType":"Single",

Especifica que se hace referenciaa un único servidor KDC.Singleesactualmente el único valor admitido.

«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).

«Servidor KDC»:»kdc.com:88«,

Especifica el nombre de dominiocompleto (FQDN) del servidor KDCexterno. El servidor de KDC y el servidorde administración suelen ejecutarse enel mismo equipo con el mismo FQDN,pero utilizan puertos distintos parautilizarse.

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).

291

Page 300: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Parámetro Descripción

"AdIntegrationConfiguration":{

Especifica que la autenticación principalde Kerberos está integrada con undominio de Microsoft Active Directory.

"AdRealm":"AD.DOMAIN.COM",

Especifica el nombre de ámbitode Kerberos del dominio de ActiveDirectory. Por convención, los nombresde dominios de Kerberos suelencoincidir con el nombre de dominio, perocon todas las letras en mayúsculas.

"AdDomain":"ad.domain.com"

Especifica el nombre de dominio deActive Directory.

"AdServer":"ad.domain.com"

Especifica el nombre de dominiocompleto (FQDN) del controlador dedominio de Microsoft Active Directory.

}

}

}

}

Configuración de roles de IAM para solicitudes de EMRFS aAmazon S3Las funciones de IAM para EMRFS le permiten proporcionar diferentes permisos a los datos de EMRFS enAmazon S3. Puede crear mapeos que especifiquen un rol de IAM que se utiliza para los permisos cuandouna solicitud de acceso contenga un identificador que usted especifique. El identificador puede ser unusuario o un rol de Hadoop o un prefijo de Amazon S3.

Para obtener más información, consulte Configuración de roles de IAM para solicitudes de EMRFS aAmazon S3 (p. 338).

Especificación de roles de IAM para EMRFS mediante elAWS CLI

A continuación se muestra un fragmento JSON de ejemplo para especificar roles de IAM personalizadospara EMRFS dentro de una configuración de seguridad. Muestra las asignaciones de roles para los trestipos de identificadores diferentes, seguidas de una referencia de parámetros.

{ "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",

292

Page 301: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

"IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } }}

Parámetro Descripción

"AuthorizationConfiguration": Obligatorio.

"EmrFsConfiguration": Obligatorio. Contiene asignaciones de roles.

"RoleMappings": Obligatorio. Contiene una o más definicionesde asignación de roles. Los mapeos de rolesse evalúan en el orden descendente en elque aparecen. Si una asignación de roles seevalúa como verdadera para una llamada dedatos de EMRFS en Amazon S3, no se evalúanotras asignaciones de roles y EMRFS utilizael rol de IAM especificado para la solicitud.Las asignaciones de funciones constan de lossiguientes parámetros obligatorios:

"Role": Especifica el identificador ARN de un rol deIAM en el formatoarn:aws:iam::account-id:role/role-name. Esta es la función deIAM que Amazon EMR asume si la solicitudEMRFS a Amazon S3 coincide con cualquiera delasIdentifiersespecificada.

"IdentifierType": Puede ser uno de los siguientes:

• "User"especifica que los identificadores sonuno o varios usuarios de Hadoop, que puedenser usuarios de cuentas Linux o directoresKerberos. Cuando la solicitud EMRFS se originacon el usuario o los usuarios especificados, seasume el rol de IAM.

• "Prefix"especifica que el identificador esuna ubicación de Amazon S3. El rol de IAMse asume para las llamadas a la ubicación oubicaciones con los prefijos especificados. Porejemplo, el prefijo s3://mybucket/coincides3://mybucket/mydir ys3://mybucket/yetanotherdir.

• "Group"especifica que los identificadores sonuno o variosGrupos de Hadoop. El rol de IAM seasume si la solicitud se origina en un usuario delgrupo o grupos especificados.

"Identifiers": Especifica uno o varios identificadores deltipo de identificador adecuado. Separe variosidentificadores por comas sin espacios.

293

Page 302: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Configurar solicitudes de servicio de metadatos para instanciasde Amazon EC2Los metadatos de instancia son datos sobre una instancia que se pueden utilizar para configurar oadministrar la instancia en ejecución. Para acceder a los metadatos de instancia desde una instancia enejecución puede utilizar uno de los métodos siguientes:

• Servicio de metadatos de instancia versión 1 (IMDSv1): un método de solicitud y respuesta• Servicio de metadatos de instancia versión 2 (IMDSv2): un método orientado a la sesión

Si bien Amazon EC2 admite IMDSv1 e IMDSv2, Amazon EMR admite IMDSv2 en Amazon EMR 5.23.1,5.27.1, 5.32 o posterior y 6.2 o posterior. En estas versiones, los componentes de Amazon EMR utilizanIMDSv2 para todas las llamadas IMDS. Para las llamadas IMDS en el código de la aplicación, puedeutilizar IMDSv1 e IMDSv2, o configurar IMDS para que utilice únicamente IMDSv2 para mayor seguridad.Si especifica que debe usarse IMDSv2, IMDSv1 dejará de funcionar.

Para obtener más información, consulteConfigurar el servicio de metadatos de instanciaen laGuía delusuario de Amazon EC2 para instancias de Linux.

Note

En versiones anteriores de Amazon EMR 5.x o 6.x, al desactivar IMDSv1 se produce un erroren el inicio del clúster, ya que los componentes de Amazon EMR utilizan IMDSv1 para todas lasllamadas IMDS. Al desactivar IMDSv1, asegúrese de que cualquier software personalizado queutilice IMDSv1 se actualice a IMDSv2.

Especificación de la configuración del servicio de metadatos de instanciasmediante elAWS CLI

A continuación se muestra un fragmento de JSON de ejemplo para especificar el servicio de metadatos deinstancia (IMDS) de Amazon EC2 en una configuración de seguridad.

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer }}

Parámetro Descripción

"InstanceMetadataServiceConfiguration": Obligatorio.

"MinimumInstanceMetadataServiceVersion":Obligatorio. Especifique 1 o 2. Un valor de1permiteIMDSv1 e IMDSv2. Un valor de2solo permiteIMDSv2.

"HttpPutResponseHopLimit": Obligatorio. Límite de saltos de respuesta HTTPPUT deseado para las solicitudes de metadatosde instancia. Cuanto mayor sea el número, mássolicitudes de metadatos de instancia puedenviajar. Valor predeterminado: 1. Especifique unnúmero entero de1a64.

294

Page 303: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCreación de una configuración de seguridad

Especificación de la configuración del servicio de metadatos de instanciasmediante la consola

Puede configurar el uso de IMDS para un clúster cuando lo inicia desde la consola de Amazon EMR.

Para configurar el uso de IMDS mediante la consola:

1. Al crear una nueva configuración de seguridad en laConfiguraciones de seguridad,seleccioneConfiguración del servicio de metadatos de instancia de EC2en elServicio de metadatosde instancia EC2configuración de configuración. Esta configuración solo se admite en Amazon EMR5.23.1, 5.27.1, 5.32 o posterior y 6.2 o posterior.

2. Para el registroVersión de servicio de metadatos de instancia mínima, seleccione cualquiera de lassiguientes opciones:• Desactiva IMDSv1 y solo permite IMDSv2, si desea permitir solo IMDSv2 en este clúster.

ConsulteTransición al uso del servicio de metadatos de instancia versión 2en laGuía del usuariode Amazon EC2 para instancias de Linux.

• Permitir IMDSv1 e IMDSv2 en clúster, si desea permitir IMDSv1 e IMDSv2 orientado a la sesiónen este clúster.

3. Para IMDSv2, también puede configurar el número permitido de saltos de red para el token demetadatos configurando elLímite de saltos de respuesta de HTTPa un número entero entre1y64.

Para obtener más información, consulteConfigurar el servicio de metadatos de instanciaen laGuía delusuario de Amazon EC2 para instancias de Linux.

ConsulteConfiguración de detalles de la instanciayConfigurar el servicio de metadatos de instanciaenlaGuía del usuario de Amazon EC2 para instancias de Linux.

295

Page 304: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEspecificar una configuración de seguridad para un clúster

Especificar una configuración de seguridad para unclústerPuede especificar la configuración de cifrado al crear un clúster especificando la configuración deseguridad. Puede utilizar la AWS Management Console o la AWS CLI.

Especificación de una configuración de seguridad utilizando laconsolaCuando se utiliza el iconoAWSpara crear un clúster de EMR, puede seleccionar la configuración deseguridad durantePaso 4: Seguridaddel proceso de creación de opciones avanzadas.

1. Abra la consola de Amazon EMR enhttps://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áginaPaso 1: Software y pasospantalla, desde elLiberar ellista, elijaemr-4.8.0o una versión más

reciente. Elija la configuración que desee y haga clic en Next (Siguiente).4. En la páginaPaso 2: Hardware, elija la configuración que desea y elijaPróximo. Haga lo mismo

paraPaso 3: Configuración general del clúster.5. En la páginaPaso 4: Seguridadpantalla, debajo deOpciones de cifrado, elija un valor

paraConfiguració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 mediante 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 datos en Amazon EMRLaAWS modelo de responsabilidad compartidase aplica a la protección de datos en Amazon EMR. Talcomo se describe en este modelo, AWS es responsable de proteger la infraestructura global que ejecutatoda la nube de AWS. Usted es responsable de mantener el control sobre el contenido alojado en estainfraestructura. Este contenido incluye la configuración de seguridad y las tareas de administración para elque utiliza AWS. Para obtener más información sobre la privacidad de datos, consulte Data Privacy FAQ(Preguntas frecuentes sobre la privacidad de datos). Para obtener información sobre la protección de datosen Europa, consulteel modelo de responsabilidad compartida de Amazon y el RGPDPublicación del blogsobre elAWSBlog de seguridad.

Para fines de protección de datos, recomendamos proteger las credenciales de cuenta de AWS yconfigurar cuentas de usuario individuales con AWS Identity and Access Management. De esta manera,solo se otorgan a cada usuario los permisos necesarios para cumplir con sus obligaciones laborales.También recomendamos proteger sus datos de las siguientes formas:

296

Page 305: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

• Utilice Multi-Factor Authentication (MFA) con cada cuenta.• Utilice TLS para comunicarse con los recursos de AWS. Requerimos TLS 1.2.• Configure la API y el registro de actividad del usuario con AWS CloudTrail.• Utilice las soluciones de cifrado de AWS, junto con todos los controles de seguridad predeterminados

dentro de los servicios de AWS.• Utilice avanzados servicios de seguridad administrados, como Amazon Macie, que lo ayuden a detectar

y proteger los datos personales almacenados en Amazon S3.• Si necesita módulos criptográficos validados FIPS 140-2 al acceder a AWS a través de una interfaz de

línea de comandos o una API, utilice un punto de enlace de FIPS. Para obtener más información acercade los puntos de enlace de FIPS disponibles, consulte Estándar de procesamiento de la informaciónfederal (FIPS) 140-2.

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). Esto incluye cuando trabaje con Amazon EMR u otroAWSservicios que utilizan laconsola, API,AWS CLI, o bienAWSSDK. Es posible que cualquier dato que ingrese en Amazon EMR oen otros servicios se incluya en los registros de diagnóstico. Cuando proporcione una URL a un servidorexterno, no incluya información de credenciales en la URL para validar la solicitud para ese servidor.

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 Amazon EMR versión 4.8.0, puede utilizar configuraciones de seguridad de Amazon EMR paradefinir configuraciones de cifrado de datos para clústeres de manera más sencilla. Las configuraciones deseguridad ofrecen ajustes para habilitar la seguridad de los datos en tránsito y de los datos en reposo envolú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, consulteCifrado transparente en HDFS en Amazon EMRen laGuía de publicaciónde Amazon EMR.

Temas• Opciones de cifrado (p. 297)• Creación de claves y certificados para el cifrado de datos (p. 301)

Opciones de cifradoCon Amazon EMR versiones 4.8.0 y posteriores, puede utilizar una configuración de seguridad paraespecificar las opciones de cifrado de datos en reposo, datos en tránsito o ambos. Al habilitar el cifradode datos en reposo, puede elegir cifrar los datos de EMRFS en Amazon S3, datos en discos locales oambos. 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. 276).

En el siguiente diagrama se muestran las distintas opciones de cifrado de datos disponibles con lasconfiguraciones de seguridad.

297

Page 306: Amazon EMR - Guía de administración

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 de Amazon EMR y posteriores, puede elegir configurar elcifrado transparente en HDFS. Para obtener más información, consulteCifrado transparente en HDFS enAmazon EMRen laGuí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,consulteEspecificación del cifrado de Amazon S3 utilizando propiedades de EMRFS.

• Si utiliza una versión de Amazon EMR anterior a 5.24.0, un volumen de dispositivo raíz cifrado deEBS se 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 de Amazon EBScifradoen 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 deseguridad para cifrar el dispositivo raíz y los volúmenes de almacenamiento de EBS alespecificarAWS KMScomo proveedor clave. Para obtener más información, consulte Cifrado dedisco local (p. 300).

298

Page 307: Amazon EMR - Guía de administración

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 porAWS Key ManagementService, claves administradas por Amazon S3 y claves y certificados de proveedores personalizadosque proporcione. Cuando se utiliza AWS KMS como proveedor de claves, se aplican cargos por elalmacenamiento y el uso de las claves de cifrado. Para obtener más información, consulte Precios de AWSKMS.

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 S3El cifrado de Amazon S3 funciona con objetos del sistema de archivos EMR (EMRFS) que se leen desdey se escriben en Amazon S3. Se especifica el cifrado del lado del servidor (SSE) o el cifrado del lado delcliente (CSE) de Amazon S3 comoModo de cifrado predeterminadocuando habilita el cifrado en reposo.También puede especificar métodos de cifrado diferentes para buckets individuales utilizando Per bucketencryption overrides (Reemplazos de cifrado por bucket). Independientemente de si el cifrado de AmazonS3 está habilitado, Transport Layer Security (TLS) cifra los objetos de EMRFS en tránsito entre los nodosdel clúster de EMR y Amazon S3. Para obtener información detallada sobre el cifrado de Amazon S3,consulteProtección de datos mediante cifradoen laAmazon Simple Storage Service Service Service.

Note

Cuando utilice AWS KMS, se aplican cargos por el almacenamiento y el uso de las claves decifrado. Para obtener más información, consulte Precios de AWS KMS.

Uso de 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 elnivel de objeto a medida que escribe los datos en el disco y descifra los datos cuando se accede. Paraobtener más información acerca de SSE, consulte.Proteger los datos con el cifrado del lado del servidorenlaAmazon Simple Storage Service Service 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— Usas unAWS KMS keypara configurar políticas adecuadas para Amazon EMR. Para

obtener más información sobre los requisitos de claves de Amazon EMR, consulteUso deAWS KMSkeyspara Cifrado.

SSE con claves proporcionadas por el cliente (SSE-C) no está disponible para su uso con Amazon EMR.

Uso de cifrado del lado del cliente de Amazon S3

Con el cifrado del lado cliente de Amazon S3, el cifrado y el descifrado de Amazon S3 tiene lugar enel cliente EMRFS en su clúster. Los objetos se cifran antes de cargarlos en Amazon S3 y se descifrandespués de que se descarguen. El proveedor que especifique proporciona la clave de cifrado que utilizael cliente. El cliente puede utilizar las claves proporcionadas porAWS KMS(CSE-KMS) o una claseJava personalizada que proporciona la clave raíz 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 sobre estas diferencias,consulteProteger datos con el cifrado del lado del clienteen laAmazon Simple Storage Service ServiceService.

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.

299

Page 308: Amazon EMR - Guía de administración

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 mediante 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. Paraobtener más información, consulte Cifrado en tránsito (p. 301). Estos ajustes de cifrado noactivan el cifrado transparente de HDFS, que puede configurar manualmente. Para obtener másinformación, consulteCifrado transparente en HDFS en Amazon EMRen laGuía de publicación deAmazon EMR.

Cifrado de almacenes

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 AmazonEMR. Para obtener más información, consulteVolúmenes SSD de NVMeen laGuí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 cifran mediante 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 de de volúmenes de EBS se hahabilitado por defecto para su cuenta, los volúmenes EBS se cifran incluso si el cifrado de disco localno está habilitado. Para obtener más información, consulte Cifrado de forma predeterminada en la Guíadel usuario de Amazon EC2 para instancias de Linux. Con el cifrado de disco local habilitado en unaconfiguración de seguridad, la configuración de Amazon EMR tiene preferencia sobre la Amazon EC2.encryption-by-default configuración de instancias EC2 de clúster.

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 cifradoEBS. 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 LUKS para volúmenes de Amazon EBS, el cifrado LUKSse aplica solo a los volúmenes de almacenamiento adjuntos, no al volumen del dispositivo raíz. Paraobtener más información sobre el cifrado de LUKS, consulte la especificación de LUKS en disco.

Para su proveedor clave, puede configurar unAWS KMS keycon políticas adecuadas para AmazonEMR o una clase de Java personalizada que proporcione los artefactos de cifrado. Cuando utilice AWS

300

Page 309: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

KMS, se aplican cargos por el almacenamiento y el uso de las claves de cifrado. Para obtener másinformación, consulte Precios de AWS KMS.

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 aplicación para habilitar las siguientes características de cifrado específicas dela aplicación. Para obtener más información, consulteConfigure aplicaciones.

• Hadoop (para obtener más información, consulte.Hadoop en modo seguroen la documentación deApache Hadoop):• Hadoop MapReduce mezcla cifradautiliza TLS.• RPC seguro de Hadoopse ha definido en «Privacy» y utiliza SASL (activada en Amazon EMR cuando

se habilita el cifrado en reposo).• Cifrado de datos en la transferencia de datos en bloque HDFSutiliza AES 256 (activado en Amazon

EMR cuando se habilita 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, consulteConfiguración en el lado del clientepara un funcionamiento seguroen la documentación de Apache HBase. Para obtener más informaciónsobre Kerberos con Amazon EMR, consulteUso de la autenticación Kerberos (p. 368).

• Presto:• La comunicación interna entre nodos de Presto utiliza SSL/TLS (solo Amazon EMR versión 5.6.0 y

posteriores).• Tez:

• Manejador aleatorio Tezutiliza 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 o 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, consulteConfiguración de SSLen 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 cifrar datos en tránsito con cifrado de AmazonEMR (p. 304).

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 un

301

Page 310: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

proveedor personalizado que cree. A continuación, cree las claves o el proveedor tal y como se describeen esta sección.

Proporcionar claves para cifrar datos en reposo con Amazon EMRPuede usarAWS Key Management Service(AWS KMS) o un proveedor de claves personalizadas parael 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 Precios de AWSKMS.

En este tema se ofrecen detalles para una política de claves para una clave KMS que se va a usar conAmazon EMR, así como directrices y ejemplos de código para escribir una clase de proveedor de clavespersonalizadas para el cifrado de Amazon S3. Para obtener más información acerca de la creación declaves, consulteCrear clavesen laAWS Key Management ServiceGuía para desarrolladores.

Uso deAWS KMS keyspara Cifrado

LaAWS KMSLa clave de cifrado de debe estar creada en la misma región que su instancia de clúster deAmazon EMR y los buckets de Amazon S3 utilizados con EMRFS. Si la clave especificada se encuentra enuna cuenta distinta de la que utiliza para configurar un clúster, debe especificar la clave mediante su ARN.

El rol del perfil de instancia de Amazon EC2 debe tener permisos para poder usar la clavede KMS que especifique. La función predeterminada del perfil de instancia en Amazon EMResEMR_EC2_DefaultRole. Si utiliza un rol diferente para el perfil de instancia o utiliza roles de IAMpara las solicitudes de EMRFS a Amazon S3, asegúrese de que cada rol se agregue como usuarioclave según corresponda. Esto proporciona al rol permisos para utilizar la clave de KMS. Para obtenermás información, consulteUso de políticas de clavesen laAWS Key Management ServiceGuía paradesarrolladoresyConfiguración de roles de IAM para solicitudes de EMRFS a Amazon S3.

Puede utilizar elAWS Management Consolepara añadir su perfil de instancia o perfil de instancia EC2 ala lista de usuarios clave de la clave de KMS especificada o puede usar laAWS CLIo unAWSSDK paraadjuntar una política clave adecuada.

Tenga en cuenta que Amazon EMR solo admiteteclas KMS simétricas. No se puede utilizar una clave KMSasimétrica para cifrar datos en reposo en un clúster de Amazon EMR. Para obtener ayuda para determinarsi una clave KMS es simétrica o asimétrica, consulteIdentificar clave KMS simétricas y asimétricas.

El siguiente procedimiento describe cómo añadir el perfil de instancia de EMRpredeterminado,EMR_EC2_DefaultRolecomousuario clavemedianteAWS Management Console. Sesupone que ya ha creado una clave de KMS. Para crear una nueva clave KMS, consulteCreación declavesen laAWS Key Management ServiceGuía para desarrolladores.

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 AWS Management Console y abra la consola AWS Key Management Service (AWSKMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superiorderecha de la página.

3. Seleccione el alias de la clave KMS 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 predeterminado es EMR_EC2_DefaultRole.6. Elija Add.

Habilitar el cifrado EBS proporcionando permisos adicionales para claves 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,

302

Page 311: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

debe especificar a AWS KMS como su proveedor de claves. Además, debe otorgar el rol de servicio deEMREMR_DefaultRolecon permisos para utilizar elAWS KMS keyque especifique.

Puede utilizar elAWS Management Consolepara añadir el rol de servicio de EMR a la lista de usuariosclave de la clave de KMS especificada o puede utilizar laAWS CLIo unAWSSDK para adjuntar una políticaclave adecuada.

El siguiente procedimiento describe cómo añadir el rol de servicio de EMR predeterminado,EMR_DefaultRole, como un usuario de claves con la AWS Management Console. Se supone que yaha creado una clave de KMS. Para crear una nueva clave KMS, consulteCrear clavesen laAWS KeyManagement ServiceGuía para desarrolladores.

Para añadir el rol de servicio de EMR a la lista de usuarios de claves de cifrado

1. Inicie sesión en la AWS Management Console y abra la consola AWS Key Management Service (AWSKMS) en https://console.aws.amazon.com/kms.

2. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superiorderecha de la página.

3. ElegirClaves administradas por el clienteen la barra lateral izquierda.4. Seleccione el alias de la clave KMS que modificar.5. En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).6. 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.7. Elija Add.

Creación de un proveedor de claves personalizado

Al utilizar una configuración de seguridad, es necesario especificar un nombre de clase de proveedordistinto 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 serAES/GCM/Sin relleno.

La EncryptionMaterialsProvider obtiene materiales de cifrado por contexto de cifrado. Amazon EMR rellenael contexto de cifrado en tiempo de ejecución para ayudar al intermediario a determinar el material decifrado correcto que debe devolver.

Example Ejemplo: Uso de un proveedor de claves personalizado para el cifrado de Amazon S3con 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 el JobFlowId del clúster, que puede utilizar la claseEncryptionMaterialsProvider para devolver materiales de cifrado selectivamente.

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.Cuando se descifran un objeto de Amazon S3, la descripción del material de cifrado se transfiere a la

303

Page 312: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

clase EncryptionMaterialsProvider, de modo que puede, nuevamente, devolver de forma selectiva la clavecoincidente para descifrar el objeto.

Un EncryptionMaterialsProvider A continuación, se proporciona la implementación de referencia. 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;

/** * 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 cifrar datos en tránsito con cifrado de Amazon EMR

Con la versión 4.8.0 de Amazon EMR o posterior, dispone de dos opciones para especificar artefactos parael cifrado de datos en tránsito mediante 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.

304

Page 313: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCifrar datos en reposo y en tránsito

• 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. 301).

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.

Si el archivo PEM proporcionado en el artefacto de cifrado no tiene un carácter comodín en la CN deldominio, debe cambiar el valor dehadoop.ssl.hostname.verifieraALLOW_ALL. Esto se realizacon elcore-siteclasificación al enviar configuraciones a un clúster o añadiendo este valor en elcore-site.xmlfile. Este cambio es obligatorio porque el verificador de nombre de host predeterminado noacepta un nombre de host sin el comodín, lo que produce un error. Para obtener más información acercade la configuración del clúster de EMR dentro de Amazon VPC, consulte.Seleccione una subred deAmazon 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ústeresde Amazon EMR del emisor en la región us-west-2 (Oregón), tal y como se especifica en la*.us-west-2.compute.internalnombre de dominio 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 archivo

305

Page 314: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIAM con Amazon EMR

certificateChain.pem en el archivo trustedCertificates.pem. El tercer comando utiliza zippara crear el archivo my-certs.zip que contiene los certificados.

Important

Este es un ejemplo de proof-of-concept solo demostración. El uso de certificados autofirmadosno se recomienda y presenta un posible riesgo para la seguridad. En el caso de los sistemas deproducción, utilice una autoridad de certificación (CA) de confianza para emitir certificados.

$ 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

AWS Identity and Access ManagementparaAmazon EMR

AWS Identity and Access Management (IAM) es un servicio de AWS que ayuda al administrador acontrolar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quiénpuede serautenticado(iniciado sesión) yautorizado(tienen permisos) para utilizar los recursos de AmazonEMR. IAM es un servicio de AWS que puede utilizar sin cargo adicional.

Temas• Público (p. 306)• Autenticación con identidades (p. 307)• Administración de acceso mediante políticas (p. 308)• Cómo funciona Amazon EMR con IAM (p. 310)• Configurar roles de servicio de IAM para permisos de Amazon EMR paraAWSservicios y

recursos (p. 312)• Ejemplos de políticas de Amazon EMR basadas en identidades (p. 344)

PúblicoCómo usaAWS Identity and Access Management(IAM) difiere en función del trabajo que realice enAmazon 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 servicios— Si está a cargo de los recursos de Amazon EMR de su empresa,probablemente disponga de acceso completo a Amazon EMR. Su trabajo consiste en determinar a quécaracterísticas y recursos de Amazon EMR pueden acceder los empleados. A continuación, debe enviarsolicitudes a su administrador de IAM para cambiar los permisos de los usuarios de su servicio. Revisela información de esta página para conocer los conceptos básicos de IAM. Para obtener más informaciónsobre cómo su empresa puede utilizar IAM con Amazon EMR, consulteCómo funciona Amazon EMR conIAM (p. 310).

306

Page 315: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAutenticación con identidades

Administrador de IAM— Si es un administrador de IAM, es posible que quiera conocer más informaciónsobre cómo escribir políticas para administrar el acceso a Amazon EMR. Para consultar ejemplos depolíticas basadas en la identidad de Amazon EMR que puede utilizar en IAM, consulte.Ejemplos depolíticas de Amazon EMR basadas en identidades (p. 344).

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 AWS Management Console, consulte los datos de 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 el usuario raíz de la Cuenta de AWS, comoun usuario de IAM o asumiendo un rol de IAM. También puede utilizar la autenticación de inicio de sesiónúnico de su empresa o incluso iniciar sesión con Google o Facebook. En estos casos, su administradorhabrá configurado previamente la federación de identidad mediante roles de IAM. Cuando obtiene accesoa AWS mediante credenciales de otra empresa, asume un rol indirectamente.

Para iniciar sesión directamente en la AWS Management Console, utilice la contraseña con su email deusuario raíz o nombre de usuario de IAM. Puede acceder a AWS mediante programación con sus clavesde acceso de usuario raíz o usuario de IAM. AWS proporciona SDK y herramientas de línea de comandospara firmar criptográficamente su solicitud con sus credenciales. Si no utiliza las herramientas de AWS,debe firmar usted mismo la solicitud. Para ello, utilice Signature Version 4, un protocolo para autenticarsolicitudes de API de entrada. Para obtener más información acerca de cómo autenticar solicitudes,consulte Proceso de firma de Signature Version 4 en la Referencia general de AWS.

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 laautenticación multifactor (MFA) en AWS en la Guía del usuario de IAM.

Cuenta de AWS usuario raízCuando se crea una Cuenta de AWS por primera vez, se comienza con una única identidad de inicio desesión que tiene acceso completo a todos los recursos y Servicios de AWS de la cuenta. Esta identidadrecibe el nombre de usuario raíz de la Cuenta de AWS y se accede a ella iniciando sesión con el email yla contraseña que utilizó para crear la cuenta. Recomendamos encarecidamente que no utilice el usuarioraíz en sus tareas cotidianas, ni siquiera en las tareas administrativas. En lugar de ello, es mejor ceñirse ala práctica recomendada de utilizar el usuario final exclusivamente para crear al primer usuario de IAM. Acontinuación, guarde las credenciales del usuario raíz en un lugar seguro y utilícelas tan solo para algunastareas de administración de cuentas y servicios.

Usuarios y grupos de IAMUn usuario de IAM es una identidad 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 información sobre cómogenerar claves de acceso, consulte Administración de claves de acceso de los usuarios de IAM en la Guíadel usuario de IAM. Al generar claves de acceso para un usuario de IAM, asegúrese de ver y guardar deforma segura el par de claves. No puede recuperar la clave de acceso secreta en el futuro. En su 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 IAMAdmins y conceder permisos a dicho grupo para administrar los recursos deIAM.

307

Page 316: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministración de acceso mediante políticas

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.

IAM rolesUn rol de IAM es una identidad de la cuenta de AWS que dispone de permisos específicos. Es similar a unusuario de IAM, pero no está asociado a una determinada persona. Puede asumir temporalmente un rol deIAM en la AWS Management Consolecambiando de roles. Puede asumir un rol llamando a una operaciónde la AWS CLI o de la API de AWS, o utilizando una URL personalizada. Para obtener más informaciónacerca de los métodos para el uso de roles, consulte Uso de roles de IAM en la Guía del usuario de IAM.

Los roles de IAM con credenciales temporales son útiles en las siguientes situaciones:

• Permisos de usuario de IAM temporales: un usuario de IAM puede asumir un rol de IAM para recibirtemporalmente permisos distintos que le permitan realizar una tarea concreta.

• Acceso de usuarios federados: en lugar de crear un usuario de IAM, puede utilizar identidadesexistentes de AWS Directory Service, del directorio de usuarios de su empresa o de un proveedorde identidades web. A estas identidades se les llama usuarios federados. AWS asigna una función aun usuario federado cuando se solicita acceso a través de un proveedor de identidad. Para obtenermás informació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 principalde confianza) de otra cuenta acceda a los recursos de la cuenta. Los roles son la forma principal deconceder acceso entre cuentas. Sin embargo, con algunos servicios de AWS, puede asociar una políticadirectamente a un recurso (en lugar de utilizar un rol como proxy). Para obtener información acerca dela diferencia entre los roles y las políticas basadas en recursos para el acceso entre cuentas, consulteCómo los roles de IAM difieren de las políticas basadas en recursos en la Guía del usuario de IAM.

• Acceso a los servicios de AWS: un rol de servicio es un rol de IAM que un servicio asume para realizaracciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de serviciodesde IAM. Para obtener más información, consulte Creación de roles para delegar permisos a unServicio de AWS en la Guía del usuario de IAM.

• Aplicaciones que se ejecutan en Amazon EC2: puede utilizar un rol de IAM que le permita administrarcredenciales temporales para las aplicaciones que se ejecutan en una instancia de EC2 y realizansolicitudes a la AWS CLI o a la API de AWS. Es preferible hacerlo de este modo a almacenar clavesde acceso en la instancia de EC2. Para asignar un rol de AWS a una instancia de EC2 y ponerla adisposición de todas las aplicaciones, cree un perfil de instancia adjuntado a la instancia. Un perfil deinstancia contiene el rol y permite a los programas que se ejecutan en la instancia de EC2 obtenercredenciales temporales. Para obtener más información, consulte Uso de un rol de IAM para concederpermisos a aplicaciones que se ejecutan 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 adjuntan 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, define suspermisos. AWS evalúa estas políticas cuando una entidad (usuario de raíz, usuario de IAM o rol de IAM)realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o se deniega. Lasmayoría de las políticas se almacenan en AWS como documentos JSON. Para obtener más informaciónsobre la estructura y el contenido de los documentos de política JSON, consulte Información general depolíticas JSON en la Guía del usuario de IAM.

308

Page 317: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAdministración de acceso mediante políticas

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 adjuntarle una política de permisos. O bien el administrador puede agregar 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.

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 AWSManagement Console, la AWS CLI o la API de AWS.

Políticas basadas en 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 sobre cómo crear una política basada en identidad, consulte Creación de políticas de IAM enla 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 adicionales menos frecuentes. Estos tipos de políticas puedenestablecer el má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 establecer 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 resultantesson la intersección de las políticas basadas en identidad de la entidad y los límites de sus permisos.Las políticas basadas en recursos que especifiquen el usuario o rol en el campo Principal noestarán restringidas por el límite de permisos. Una denegación explícita en cualquiera de estas políticasanulará el permiso. Para obtener más información sobre los límites de los permisos, consulte Límites depermisos para las entidades de IAM en la Guía del usuario de IAM.

• Políticas de control de servicio (SCP): las SCP son políticas de JSON que especifican los permisosmáximos de una organización o una unidad organizativa (OU) en AWS Organizations. AWSOrganizations es un servicio que le permite agrupar y administrar de manera centralizada varias cuentasde AWS que posea su empresa. Si habilita todas las funciones en una organización, entonces podráaplicar políticas de control de servicio (SCP) a una o todas sus cuentas. Las SCP limitan los permisosde las entidades de las cuentas miembro, incluido cada usuario raíz de la Cuenta de AWS. Para obtenermás información acerca de Organizations y las SCP, consulte Funcionamiento de las SCP en la Guía delusuario 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 identidad 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.

309

Page 318: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCómo funciona Amazon EMR con 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 decide si permitir o no 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.

Cómo funciona Amazon EMR con IAMCon las políticas basadas en identidad de IAM, puede especificar las acciones y recursos permitidos odenegados, así como las condiciones en las que se permiten o deniegan las acciones. Amazon EMRadmite acciones, claves de condiciones y recursos 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.

AccionesEl elemento Action de una política basada en la 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 mediantelaRunJobFlowOperación de la API, incluye elelasticmapreduce:RunJobFlowacción en su política.Las instrucciones de la política deben incluir un elemento Action o un elemento NotAction. AmazonEMR define su propio conjunto de acciones que describen las tareas que se pueden realizar con esteservicio.

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 las acciones de Amazon EMR, consulteAcciones definidas por Amazon EMRen laIAMUser Guide.

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, consulteRecursos definidos porAmazon EMRen laIAM User Guide. Para obtener más información acerca de con qué acciones puedeespecificar los ARN de cada recurso, consulteAcciones definidas por Amazon EMR.

310

Page 319: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCómo funciona Amazon EMR con IAM

Claves de condiciónEl elemento Condition (o bloque Condition) permite especificar condiciones en las que entra en vigoruna instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales que utilizanoperadores de condición, tales como igual o menor que, para que coincida la condición de la política convalores de la solicitud.

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, consulteElementos de la política de IAM: Variables yetiquetasen laIAM User Guide.

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, consulteEjemplo: Limitar el acceso a una región específica.

Para ver una lista de claves de condición de Amazon EMR, consulteClaves de condición de AmazonEMRen laIAM User Guide. Para obtener más información acerca de las acciones y los recursos con losque puede utilizar una clave de condición, consulteAcciones definidas por Amazon EMR.

Uso de etiquetas de clúster y Notebook con políticas de IAM para control deaccesoEs posible ajustar el permiso para acciones de Amazon EMR asociadas con blocs de notas y clústeresde EMR con control de acceso basado en etiquetas con políticas de IAM basadas en identidades. Puedeutilizar claves de condición en un Conditionelemento (también denominado bloqueCondition) parapermitir ciertas acciones solo cuando un bloc de notas, un clúster o ambos tengan una clave de etiqueta ouna combinación clave-valor determinadas. También puedes limitar elCreateEditoracción (que crea unbloc de notas EMR) y laRunJobFlow(que crea un clúster) de modo que sea necesario enviar una solicitudde una etiqueta cuando se cree el recurso.

En Amazon EMR, las claves de condición que se pueden utilizar en unConditionelemento solo seaplica a las acciones de la API de Amazon EMR en las queClusterIDoNotebookIDes un parámetro desolicitud obligatorio. Por ejemplo, la acción ModifyInstanceGroups no admite las claves de contexto porqueClusterID 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 de Amazon EMR basadas enidentidades (p. 344).

311

Page 320: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

• 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.

EjemplosPara ver ejemplos de políticas basadas en identidades de Amazon EMR, consulteEjemplos de políticas deAmazon EMR basadas en identidades (p. 344).

Configurar roles de servicio de IAM para permisos deAmazon EMR paraAWSservicios y recursos

Amazon EMR y las aplicaciones como Hadoop necesitan permisos para obtener acceso aotrosAWSrecursos y realiza acciones cuando se ejecutan. Cada clúster de Amazon EMR debe tenerunRol de servicio dey un papel para Amazon EC2perfil de instancia. Para obtener más información,consulteRoles de IAMyUso de perfiles de instanciaen laIAM User Guide. Las políticas de IAM asociadas aestos roles proporcionan permisos que permiten al clúster interoperar con otrosAWSservicios en nombrede un usuario.

Es necesario otro rol adicional, el rol de Auto Scaling, si el clúster utiliza el escalado automático en AmazonEMR. LaAWSse requiere el rol de servicio para EMR Notebooks si utiliza EMR Notebooks.

Amazon EMR proporciona roles predeterminados y políticas administradas predeterminadas quedeterminan los permisos para cada rol. Las políticas administradas las crea y las mantiene AWS, porlo que se actualizan automáticamente si cambian los requisitos de servicio. ConsulteAWSpolíticasadministradasen laIAM User Guide.

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 roles predeterminados para que Amazon EMR pueda crear y utilizar, puede crear suspropios roles y especificarlos de forma individual al crear un clúster para personalizar los permisos, ypuede especificar roles predeterminados que se utilizará al crear un clúster mediante elAWS CLI. Paraobtener más información, consulte Personalizar roles de IAM (p. 336).

Modificación de las políticas basadas en la identidad de lospermisos para pasar roles de servicio para Amazon EMRLa política administrada predeterminada de permisos completos de Amazon EMR(AmazonEMRFullAccessPolicy_v2) y política de servicios de Amazon EMR(AmazonEMRServicePolicy_v2) están disponibles para sustituir el soon-to-be-deprecated política. Laspolíticas v2 incorporan nuevas configuraciones de seguridad de IAM:PassRole, incluidas las siguientes:

• iam:PassRolepermisos solo para roles específicos de Amazon EMR predeterminados.• iam:PassedToServicecondiciones que le permiten utilizar la política solo con las

especificadasAWSservicios, tales comoelasticmapreduce.amazonaws.comyec2.amazonaws.com.

Puede ver la versión JSON de laAmazonemrFullAccessPolicy_v2yAmazonEMRServicePolicy_v2políticasen la consola de IAM.

Recomendamos crear nuevos clústeres utilizando las políticas administradas de v2.

312

Page 321: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

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

Función de serviciopara Amazon EMR (rolEMR) (p. 316)

EMR_DefaultRole Permite a AmazonEMR llamar aotrosAWSserviciosen su nombre alaprovisionar recursos yllevar 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 serviciode EMR debetener permisospara crearlo; encaso contrario,se produciráun error depermisos. Sitiene previstosolicitarinstancias despot, debeactualizar estapolítica paraincluir unainstrucciónque permitala creaciónde este rolvinculado a unservicio. Paraobtener másinformación,consulteFunciónde serviciopara AmazonEMR (rolEMR) (p. 316)yRolvinculado alservicio parasolicitudes deinstancias despoten laGuíadel usuario deAmazon EC2para instanciasde Linux.

313

Page 322: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Función Rol predeterminado Descripción Política administradapredeterminada

Función de serviciopara instanciasEC2 de clúster(perfil de instanciaEC2) (p. 322)

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. Paraobtener acceso a losdatos en Amazon S3mediante EMRFS,puede especificardiferentes roles que seasumirán en funciónde la ubicación de losdatos en Amazon S3.Por ejemplo, variosequipos pueden accedera una única «cuentade almacenamiento»de datos de AmazonS3. Para obtener másinformación, consulteConfiguración de rolesde IAM para solicitudesde EMRFS a AmazonS3 (p. 338). Este roles necesario para todoslos clústeres.

AmazonElasticMapReduceforEC2Role.Para obtenermás información,consulteFunción deservicio para instanciasEC2 de clúster(perfil de instanciaEC2) (p. 322).

Rol de servicio paraescalado automáticoen EMR (rol AutoScaling) (p. 326)

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. 554).

AmazonElasticMapReduceforAutoScalingRole.Para obtener másinformación, consulteRolde servicio paraescalado automáticoen EMR (rol AutoScaling) (p. 326).

314

Page 323: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Función Rol predeterminado Descripción Política administradapredeterminada

Función de serviciopara los EMRNotebooks (p. 327)

EMR_Notebooks_DefaultRoleProporciona permisosque un bloc de notasde EMR necesitapara tener acceso aotrosAWSrecursos yrealizar acciones. Soloes obligatorio si seutilizan EMR Notebooks.

AmazonElasticMapReduceEditorsRole.Para obtenermás información,consulteFunción deservicio para los EMRNotebooks (p. 327).

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. 330)

AWSServiceRoleForEMRCleanupAmazon EMR creaautomáticamente unrol vinculado a unservicio. Si el serviciode Amazon EMR haperdido la capacidad delimpiar los recursos deAmazon EC2, AmazonEMR puede utilizareste rol para limpiaresta operación. Si unclúster utiliza instanciasde spot, la política depermisos vinculada alFunción de serviciopara Amazon EMR (rolEMR) (p. 316) debepermitir la creaciónde un rol vinculado alservicio. Para obtenermás información,consulte Permisosde roles vinculados aservicios para AmazonEMR (p. 330).

AmazonEMRCleanupPolicy

315

Page 324: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Temas• Funciones de servicio de IAM utilizadas por Amazon EMR (p. 316)• Personalizar roles de IAM (p. 336)• Configuración de roles de IAM para solicitudes de EMRFS a Amazon S3 (p. 338)• Uso de políticas basadas en recursos para el acceso de Amazon EMR aAWSGlue Data

Catalog (p. 343)• Utilizar roles de IAM con aplicaciones que llamanAWSservicios directamente (p. 343)• Permitir a los usuarios y grupos crear y modificar roles (p. 344)

Funciones de servicio de IAM utilizadas por Amazon EMRAmazon EMR utiliza roles de servicio de IAM para realizar acciones en su nombre al aprovisionar recursosdel clúster, ejecutar aplicaciones, escalar recursos de forma dinámica y crear y ejecutar bloc de EMRNotebooks. Amazon EMR utiliza los siguientes roles cuando interactúa con otrosAWSServicios de . Cadarol tiene una función exclusiva en Amazon EMR. Los temas de esta sección describen la función del rol yfacilitan 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 Utilizarroles de IAM con aplicaciones que llamanAWSservicios directamente (p. 343).

Temas• Función de servicio para Amazon EMR (rol EMR) (p. 316)• Función de servicio para instancias EC2 de clúster (perfil de instancia EC2) (p. 322)• Rol de servicio para escalado automático en EMR (rol Auto Scaling) (p. 326)• Función de servicio para los EMR Notebooks (p. 327)• Uso del rol vinculado a un servicio para Amazon EMR (p. 330)

Función de servicio para Amazon EMR (rol 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 nombre predeterminado de rol es.EMR_DefaultRole• La política administrada predeterminada con el ámbito de Amazon EMR y asociada

aEMR_DefaultRoleesAmazonEMRServicePolicy_v2. Esta política v2 reemplaza a la políticaadministrada predeterminada,AmazonElasticMapReduceRole, que está en vías de ser rechazado.

AmazonEMRServicePolicy_v2depende del acceso reducido a los recursos que EMR aprovisiona outiliza. Cuando utiliza esta política, debe pasar la etiqueta de usuariofor-use-with-amazon-emr-managed-policies = trueal aprovisionar el clúster. EMR propagará automáticamente esas etiquetas.Además, es posible que tenga que agregar manualmente una etiqueta de usuario a tipos específicos derecursos, como los grupos de seguridad de EC2 que EMR no creó. Consulte Etiquetado de recursos parautilizar políticas administradas (p. 349).

A continuación se muestra el contenido de la actualAmazonEMRServicePolicy_v2política. Tambiénpuede consultar el contenido actual de laAmazonEMRServicePolicy_v2política administrada en la consolade IAM.

{ "Version": "2012-10-17",

316

Page 325: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"Statement": [ { "Sid": "CreateInTaggedNetwork", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:RunInstances", "ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "CreateWithEMRTaggedLaunchTemplate", "Effect": "Allow", "Action": [ "ec2:CreateFleet", "ec2:RunInstances", "ec2:CreateLaunchTemplateVersion" ], "Resource": "arn:aws:ec2:*:*:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "CreateEMRTaggedLaunchTemplate", "Effect": "Allow", "Action": "ec2:CreateLaunchTemplate", "Resource": "arn:aws:ec2:*:*:launch-template/*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "CreateEMRTaggedInstancesAndVolumes", "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateFleet" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "ResourcesToLaunchEC2",

317

Page 326: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*::image/ami-*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:capacity-reservation/*", "arn:aws:ec2:*:*:placement-group/pg-*", "arn:aws:ec2:*:*:fleet/*", "arn:aws:ec2:*:*:dedicated-host/*", "arn:aws:resource-groups:*:*:group/*" ] }, { "Sid": "ManageEMRTaggedResources", "Effect": "Allow", "Action": [ "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DeleteNetworkInterface", "ec2:ModifyInstanceAttribute", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "ManageTagsOnEMRTaggedResources", "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:launch-template/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "CreateNetworkInterfaceNeededForPrivateSubnet", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"

318

Page 327: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

} } }, { "Sid": "TagOnCreateTaggedEMRResources", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:launch-template/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": [ "RunInstances", "CreateFleet", "CreateLaunchTemplate", "CreateNetworkInterface" ] } } }, { "Sid": "TagPlacementGroups", "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "arn:aws:ec2:*:*:placement-group/pg-*" ] }, { "Sid": "ListActionsForEC2Resources", "Effect": "Allow", "Action": [ "ec2:DescribeAccountAttributes", "ec2:DescribeCapacityReservations", "ec2:DescribeDhcpOptions", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribePlacementGroups", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVolumeStatus", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "CreateDefaultSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup"

319

Page 328: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

], "Resource": [ "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "CreateDefaultSecurityGroupInVPCWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "TagOnCreateDefaultSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true", "ec2:CreateAction": "CreateSecurityGroup" } } }, { "Sid": "ManageSecurityGroups", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "CreateEMRPlacementGroups", "Effect": "Allow", "Action": [ "ec2:CreatePlacementGroup" ], "Resource": "arn:aws:ec2:*:*:placement-group/pg-*" }, { "Sid": "DeletePlacementGroups", "Effect": "Allow",

320

Page 329: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"Action": [ "ec2:DeletePlacementGroup" ], "Resource": "*" }, { "Sid": "AutoScaling", "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget" ], "Resource": "*" }, { "Sid": "ResourceGroupsForCapacityReservations", "Effect": "Allow", "Action": [ "resource-groups:ListGroupResources" ], "Resource": "*" }, { "Sid": "AutoScalingCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms" ], "Resource": "arn:aws:cloudwatch:*:*:alarm:*_EMR_Auto_Scaling" }, { "Sid": "PassRoleForAutoScaling", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMR_AutoScaling_DefaultRole", "Condition": { "StringLike": { "iam:PassedToService": "application-autoscaling.amazonaws.com*" } } }, { "Sid": "PassRoleForEC2", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMR_EC2_DefaultRole", "Condition": { "StringLike": { "iam:PassedToService": "ec2.amazonaws.com*" } } } ]}

321

Page 330: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Función de servicio para instancias EC2 de clúster (perfil de instancia EC2)El rol de servicio para las instancias EC2 del clúster (también llamado el perfil de instancia EC2 paraAmazon EMR) es un tipo especial de rol de servicio que se asigna 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 otrosAWSServicios de .

Para obtener más información acerca de los roles de servicio para instancias EC2, consulteUso de un rolde IAM para conceder permisos a aplicaciones que se ejecutan en instancias Amazon EC2en laIAM UserGuide.

Important

El rol de servicio predeterminado para las instancias EC2 del clúster y sus asociadosAWSpolíticaadministrada predeterminada,AmazonElasticMapReduceforEC2Roleestán en el camino dela depreciación, sin sustituciónAWSSe proporcionan políticas administradas. Tendrá que crear yespecificar un perfil de instancia para reemplazar el rol obsoleto y la política predeterminada.

Función predeterminada y política administrada

• El nombre predeterminado de rol es.EMR_EC2_DefaultRole.• LaEMR_EC2_DefaultRolepolítica administrada

predeterminada,AmazonElasticMapReduceforEC2Role, se encuentra en la ruta de desaprobacióny no se reemplazará por otra política administrada predeterminada. En lugar de utilizar una políticaadministrada predeterminada para el perfil de instancia de EC2, aplique políticas basadas enrecursos a los depósitos de S3 y otros recursos que Amazon EMR necesita, o utilice su propia políticaadministrada por el cliente con un rol de IAM como perfil de instancia. Para obtener más información,consulte Creación de un rol de servicio para instancias EC2 de clúster con permisos de mínimosprivilegios (p. 323).

A continuación se muestra el contenido de la versión 3 deAmazonElasticMapReduceforEC2Role.

{ "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*", "s3:*", "sdb:*", "sns:*", "sqs:*",

322

Page 331: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"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 instancias EC2 de clúster con permisos de mínimos privilegios

Como práctica recomendada, le recomendamos encarecidamente que cree un rol de serviciopara las instancias EC2 del clúster y la política de permisos que tenga los permisos mínimos paraotrosAWSservicios requeridos por su solicitud.

La política administrada predeterminada, AmazonElasticMapReduceforEC2Role,proporciona los permisos que facilitan el lanzar un clúster inicial. Sinembargo,AmazonElasticMapReduceforEC2Roleestá en vías de ser declarado excluido y AmazonEMR no proporcionará un reemplazo.AWSdirectiva predeterminada administrada para el rol obsoleto. Paralanzar un clúster inicial, debe proporcionar una política basada en recursos administrada por el cliente obasada en ID.

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 elus-west-2Región y ficticiaAWSID de la cuentade123456789012. 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, consultePersonalizar roles de IAM (p. 336).

Note

Si crea un rol EMR personalizado para EC2, siga el flujo de trabajo básico, que creaautomáticamente un perfil de instancia del mismo nombre. Amazon EC2 le permite crear perfilesde instancias y roles con nombres diferentes, pero Amazon EMR no admite esta configuración yproduce un error de «perfil de instancia no válido» al crear el clúster.

Lectura y escritura de datos en Amazon S3 mediante EMRFS

Cuando una aplicación que se ejecuta en un clúster de Amazon EMR hace referencia a los datos mediantelas3://mydata, Amazon EMR utiliza el perfil de instancia EC2 para realizar la solicitud. Por lo general,los clústeres leen y escriben datos en Amazon S3 de esta forma, y Amazon EMR utiliza los permisos

323

Page 332: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

asociados al rol de servicio de para las instancias EC2 del clúster de forma predeterminada. Paraobtener más información, consulte Configuración de roles de IAM para solicitudes de EMRFS a AmazonS3 (p. 338).

Dado que los roles de IAM para EMRFS seguirán usando los permisos asociados al rol de servicio para lasinstancias EC2 del clúster, como práctica recomendada, le recomendamos que utilice roles de IAM paraEMRFS y limite los permisos de EMRFS y Amazon S3 asociados al rol de servicio para las instancias EC2del clúster.

La siguiente instrucción de ejemplo muestra los permisos que EMRFS necesita para hacer solicitudes aAmazon S3.

• my-data-bucket-in-s3-for-emrfs-reads-and-writesespecifica el bucket de Amazon S3,donde el clúster lee y escribe datos y todas las subcarpetas utilizando/*. 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.

{ "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", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:DeleteTable", "dynamodb:UpdateTable" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/EmrFSMetadata"

324

Page 333: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

}, { "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-*" } }

Archivo de archivos de registro en 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 especificada. 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 usandoel parámetro LogUri en el comando RunJobFlow. Para obtener más información, consulte Archivo dearchivos de registro en Amazon S3 (p. 264).

{ "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. 266).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:GetQueueUrl", "sqs:SendMessage" ],

325

Page 334: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"Resource": "arn:aws:sqs:us-west-2:123456789012:AWS-ElasticMapReduce-*" } ]}

Uso deAWSGlue Data Catalog

La siguiente instrucción de política permite las acciones que se requieren si utiliza laAWSGlue DataCatalog como metaalmacén de aplicaciones. Para obtener más información, consulteUso deAWSGlueData Catalog como metaalmacén de Spark SQL,Uso deAWSGlue Data Catalog as the metastore paraHive, yUsar Presto con laAWSGlue Data Catalogen laGuía de publicación de Amazon EMR.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "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" ], "Resource": "*", } ]}

Rol de servicio para escalado automático en EMR (rol Auto Scaling)El rol Auto Scaling para EMR sirve básicamente para lo mismo que el rol de servicio, pero permiteacciones adicionales para entornos de escalado dinámico.

• El nombre predeterminado de rol 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.

{

326

Page 335: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DescribeAlarms", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" } ]}

Función de servicio para los EMR Notebooks

Cada bloc de notas de EMR necesita permisos para obtener acceso a otrosAWSrecursos y realizaracciones. Las políticas de IAM asociadas a este rol de servicio proporcionan permisos que permiten albloc de notas interoperar con otrosAWSServicios de . Cuando crea un bloc de notas utilizando laAWSManagement Console, especifica unAWSRol de servicio de. Puede utilizar el rol predeterminado,EMR_Notebooks_DefaultRole o especificar un rol que haya creado. Si no se ha creado un bloc denotas anteriormente, puede elegir crear el rol predeterminado.

• El nombre predeterminado de rol es.EMR_Notebooks_DefaultRole.• Las políticas administradas predeterminadas asociadas

aEMR_Notebooks_DefaultRolesonAmazonElasticMapReduceEditorsRoleyS3FullAccessPolicy.

Su rol de servicio debe utilizar la siguiente política de confianza.

Important

Le recomendamos encarecidamente que utilice la siguiente política de confianza, que incluyelaaws:SourceArnyaws:SourceAccountclaves de condición global para limitar los permisosque otorga Amazon EMR a recursos concretos de su cuenta. Hacerlo puede protegerte contraElproblema del suplente confuso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>:<account-id>:*" } } } ]}

El contenido de la versión 1 deAmazonElasticMapReduceEditorsRoleson los siguientes.

{

327

Page 336: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"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" ], "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" ] } } } ]}

A continuación se muestra el contenido delS3FullAccessPolicy. LaS3FullAccessPolicypermite queel rol de servicio de los EMR Notebooks realice todas las acciones de Amazon S3 en objetos de suCuentade AWS. Cuando crea un rol de servicio personalizado para EMR Notebooks, debe otorgar permisos a surol de servicio Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ]}

Puede reducir el alcance del acceso de lectura y escritura de su rol de servicio a la ubicación de AmazonS3 en la que desea guardar los archivos del bloc de notas. Utilice el siguiente conjunto mínimo depermisos de Amazon S3.

"s3:PutObject","s3:GetObject","s3:GetEncryptionConfiguration",

328

Page 337: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"s3:ListBucket","s3:DeleteObject"

Si su bucket de Amazon S3 está cifrado, debe incluir los siguientes permisos paraAWS Key ManagementService.

"kms:Decrypt","kms:GenerateDataKey","kms:ReEncryptFrom","kms:ReEncryptTo","kms:DescribeKey"

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": "*" } ]}

Permisos de rol de servicio de EMR Notebooks

En esta tabla se enumeran las acciones que realizan los EMR Notebooks utilizando el rol de servicio, juntocon los permisos necesarios para cada acción.

Acción Permisos

Establezca un canal de red seguroentre un bloc de notas y un clúster deAmazon EMR y realice las acciones delimpieza necesarias.

"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup","ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress","ec2:DescribeTags","ec2:DescribeInstances","ec2:DescribeSubnets","ec2:DescribeVpcs","elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"

Utilizar credenciales de Gitalmacenadas enAWS SecretsManagerpara vincular repositorios deGit a un bloc de notas.

"secretsmanager:GetSecretValue"

329

Page 338: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Acción Permisos

AplicarAWSetiquetas en la interfazde red y los grupos de seguridadpredeterminados que crean los EMRNotebooks al configurar el canal de redseguro. Para obtener más información,consulteEtiquetadoAWSrecursos.

"ec2:CreateTags"

Acceda a o cargue archivos de bloc denotas y metadatos en Amazon S3. "s3:PutObject",

"s3:GetObject","s3:GetEncryptionConfiguration","s3:ListBucket","s3:DeleteObject"

Los siguientes permisos solo son necesarios si utiliza unbucket de Amazon S3 cifrado.

"kms:Decrypt","kms:GenerateDataKey","kms:ReEncryptFrom","kms:ReEncryptTo","kms:DescribeKey"

Uso del rol vinculado a un servicio para Amazon EMR

Amazon EMR utilizaAWS Identity and Access Management(IAM)roles vinculados a servicios. Un rolvinculado a servicios es un tipo único de rol de IAM que se encuentra vinculado directamente a AmazonEMR. Amazon EMR predefine el rol vinculado a un servicio 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 rolde servicio y del perfil de instancia, consulte Configurar roles de servicio de IAM para permisos de AmazonEMR paraAWSservicios y recursos (p. 312).

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 adjuntar 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 al servicio, consulte Serviciosde AWS que funcionan con IAM y busque los servicios que muestran Sí en la columna Rol vinculado alservicio. Seleccione una opción Sí con un enlace para ver la documentación acerca del rol vinculado alservicio en cuestión.

Permisos de roles vinculados a servicios para Amazon EMR

Amazon EMR utiliza elFunción de servicio de AWS para MR Cleanuprol, que es un rol basado en servicioque permite a Amazon EMR terminar y eliminar recursos de Amazon EC2 en su nombre si el rol de serviciode Amazon EMR de pierde la capacidad de. Amazon EMR crea el rol automáticamente durante la creacióndel clúster si aún no existe.

La AWSServiceRoleForEMRCleanup El rol vinculado al servicio confía en que los siguientes serviciosasuman el rol:

• elasticmapreduce.amazonaws.com

330

Page 339: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

La AWSServiceRoleForEMRCleanup La política de permisos del rol vinculado a servicios 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 rol) crear, editar oeliminar un rol vinculado a servicios.

Para permitir a una entidad de IAM crear la AWSServiceRoleForEMRCleanup Rol vinculado al servicio de

Agregue la siguiente instrucción a la política de permisos de la entidad de IAM que tiene que crear el rolvinculado al 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 IAM editar la descripción del rol vinculado al servicioAWSServiceRoleForEMRCleanup

Agregue la siguiente instrucción a la política de permisos de la entidad de IAM que tiene que editar ladescripción del rol vinculado al servicio:

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": {

331

Page 340: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

"iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

Para permitir a una entidad de IAM eliminar el AWSServiceRoleForEMRCleanup Rol vinculado al serviciode

Agregue la siguiente instrucción a la política de permisos de la entidad de IAM que tiene que eliminar un rolvinculado al 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 a un servicio para Amazon EMR

No es necesario crear manualmente el AWSServiceRoleForEMRCleanup Rol de . Cuando lanza un clúster,ya sea por primera vez o no hay ningún rol vinculado a un servicio, Amazon EMR crea el rol vinculado alservicio por usted. Debe tener permisos de para crear el rol vinculado a servicios. Para una declaración deejemplo que añade esta capacidad a la política de permisos de una entidad de IAM (como un usuario, ungrupo o un rol), consultePermisos de roles vinculados a servicios para Amazon EMR (p. 330).

Important

Si utilizaba Amazon EMR antes del 24 de octubre de 2017, cuando no se admitían los rolesvinculados a servicios, entonces Amazon EMR creó el AWSServiceRoleForEMRCleanup en tucuenta. Para obtener más información, consulte Un nuevo rol ha aparecido en la cuenta de IAM.

Edición de un rol vinculado a un servicio para Amazon EMR

Amazon EMR no le permite editar la AWSServiceRoleForEMRCleanup Rol vinculado al servicio de.Después de crear un rol vinculado a servicios, no puede cambiarle el nombre, ya que varias entidadespueden hacer referencia al mismo. Sin embargo, puede editar la descripción del rol mediante IAM.

Edición de la descripción de un rol vinculado a un servicio (consola de IAM)

Puede utilizar la consola de IAM para editar la descripción de un rol vinculado a un servicio.

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 (Roles).2. Seleccione el nombre del rol que desea modificar.

332

Page 341: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

3. A la derecha delDescripción del rol, eligeEditar.4. Escriba una nueva descripción en el cuadro y elijaGuarde los 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 un rol vinculado 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:

API de IAM: 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 servicios,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 servicios

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 a un servicio tiene una sesión activa en la consola de IAM

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Seleccione Roles (Roles) en el panel de navegación. Seleccione el nombre (no la casilla de

verificación) de la AWSServiceRoleForEMRCleanup Rol de .3. En la página Summary (Resumen) del rol seleccionado, seleccione Access Advisor.

333

Page 342: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

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 está utilizando el AWSServiceRoleForEMRCleanuprole, puede intentar eliminar el rol para comprobarlo. Si el servicio está utilizando el rol, esteno podrá eliminarse y podrá ver las regiones de 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 lasesión de un rol vinculado a servicios.

Para eliminar los 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. 533).

Eliminación de un rol vinculado a un servicio (consola de IAM)

Puede utilizar la consola de IAM para eliminar un rol vinculado 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 (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. En Role actions (Acciones de rol) en la parte superior de la página, elija Delete role (Eliminar rol).4. En el cuadro de diálogo de confirmación, revise los datos del último acceso al servicio, que muestra

cuándo cada uno de los roles seleccionados tuvo acceso a un servicio de AWS por última vez. Esto loayuda a confirmar si el rol está actualmente activo. Para continuar, elija Yes, Delete.

5. Consulte las notificaciones de la consola de IAM para monitorear el progreso de la eliminación delrol vinculado al servicio. Como el proceso de eliminación del rol vinculado 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 (Ver detalles) oView Resources (Ver recursos) desde las notificaciones para obtener información sobre el motivopor el que no se pudo eliminar el rol. Si la eliminación no pudo producirse porque hay recursos en elservicio que está utilizando el rol, entonces el motivo del error incluye una lista de recursos.

Eliminación de 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:

$ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

334

Page 343: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

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.

Eliminación de un rol vinculado a un servicio (API de 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 una llamada aDeleteServiceLinkedRole. En la solicitud, especifique la AWSServiceRoleForEMRCleanup nombre derol.

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 a servicios de Amazon EMR

Amazon EMR admite el uso de roles vinculados al servicio en las siguientes regiones.

Nombre de la región de Identidad de la región Support en Amazon EMR

Este de EE. UU. (Norte de Virginia) us-east-1 Sí

US East (Ohio) us-east-2 Sí

Oeste de EE. UU. (Norte de California) us-west-1 Sí

Oeste de EE. UU. (Oregón) us-west-2 Sí

Asia Pacífico (Mumbai) ap-south-1 Sí

Asia Pacífico (Osaka) 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í

Canada (Central) ca-central-1 Sí

Europa (Fráncfort) eu-central-1 Sí

Europe (Ireland) eu-west-1 Sí

Europa (Londres) eu-west-2 Sí

335

Page 344: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Nombre de la región de Identidad de la región Support en Amazon EMR

Europa (París) eu-west-3 Sí

South America (São Paulo) sa-east-1 Sí

Personalizar 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 conlos roles y las políticas. Para obtener más información, consulte Permitir a los usuarios y grupos crear ymodificar roles (p. 344).

Si crea un rol EMR personalizado para EC2, siga el flujo de trabajo básico, que crea automáticamenteun perfil de instancia del mismo nombre. Amazon EC2 le permite crear perfiles de instancias y roles connombres diferentes, pero Amazon EMR no admite esta configuración y produce un error de «perfil deinstancia no válido» al crear el clúster.

Important

Las políticas insertadas no se actualizan automáticamente cuando cambian los requisitosde servicio. Si crea y asocia políticas en línea, tenga en cuenta que pueden producirseactualizaciones de servicio que provoquen errores de permisos de forma repentina. Paraobtener más información, consultePolíticas administradas y políticas insertadasen laIAM UserGuideyEspecifique roles de IAM personalizados al crear un clúster (p. 336).

Para obtener más información acerca de cómo trabajar con los roles de IAM, consulte los siguientes temasen laIAM User Guide:

• Creación de un rol para delegar permisos a unAWSServicio de• Modificación de un rol• Eliminación de un rol

Especifique roles de IAM personalizados al crear un clústerEl 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 funciones alas instancias EC2 y de Amazon EMR. De lo contrario, se produce el error User account is not authorizedto call EC2 (La cuenta de usuario no está autorizada para llamar a EC2). Para obtener más información,consulte Permitir a los usuarios y grupos crear y modificar roles (p. 344).

Use la consola para especificar roles de personalizados

Cuando crea un clúster, puede especificar un rol de servicio personalizado para Amazon EMR,un rol personalizado para el perfil de instancia EC2 y una función de Auto Scaling personalizadamedianteOpciones avanzadas. Si utiliza las Quick options (Opciones rápidas), se especifican el rol deservicio y el rol para el perfil de instancia EC2 predeterminados. Para obtener más información, consulteFunciones de servicio de IAM utilizadas por Amazon EMR (p. 316).

Para especificar roles de IAM personalizados mediante la consola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

336

Page 345: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

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).

UNDERPermisos, elPredeterminadose seleccionan roles para Amazon EMR.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).

UsarAWS CLIpara especificar roles de personalizados

Puede especificar un rol de servicio para EMR y un rol de servicio para las instancias EC2 de clústeresde forma explícita mediante opciones con lacreate-clusterdesde elAWS CLI. Utilice la opción --service-role para especificar el rol de servicio. Utilice el argumento InstanceProfile de la opción--ec2-attributes para especificar el rol para el perfil de instancia EC2.

La función 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. 554).

Para especificar roles de IAM personalizados mediante laAWS 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 rolpredeterminado de Amazon EMR.

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítelas o reemplácese porun signo de intercalación (^).

aws emr create-cluster --name "Test cluster" --release-label emr-5.36.0 \--applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \--ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\KeyName=myKey --instance-type m5.xlarge --instance-count 3

337

Page 346: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

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 unconfigarchivo para elAWS CLIespecifica rolespersonalizados para Amazon EMR. Con este archivo de configuración, cuando se especifica laopció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 solicitudes de EMRFS aAmazon S3Cuando una aplicación que se ejecuta en un clúster hace referencia a los datos utilizandolas3://mydata, Amazon EMR utiliza EMRFS para realizar la solicitud. Para interactuar con Amazon S3,EMRFS asume las políticas de permisos vinculadas a suEl perfil de instancias de Amazon EC2 (p. 322).El mismo perfil de instancia de Amazon EC2 se utiliza independientemente del usuario o grupo que ejecutala aplicación o la ubicación de los datos en Amazon S3.

Si tiene un clúster con varios usuarios que necesitan diferentes niveles de acceso a los datos de AmazonS3 a través de EMRFS, puede configurar una configuración de seguridad con roles de IAM para EMRFS.EMRFS puede asumir un rol de servicio diferente para las instancias EC2 del clúster en función del usuarioo grupo que realiza la solicitud o en función de la ubicación de los datos en Amazon S3. Cada rol deIAM para EMRFS puede tener diferentes permisos para obtener acceso a los datos en Amazon S3. Paraobtener más información sobre el rol de servicio para instancias EC2 del clúster, consulteFunción deservicio para instancias EC2 de clúster (perfil de instancia EC2) (p. 322).

El uso de roles de IAM personalizados para EMRFS se admite en las versiones 5.10.0 y posteriores deAmazon EMR. Si utiliza una versión anterior o tiene requisitos de autorización que las funciones de IAMpara EMRFS no son capaces de proporcionar, puede crear un proveedor de credenciales personalizadoen su lugar. Para obtener más información, consulteAutorización del acceso a los datos de EMRFS enAmazon S3.

Cuando se usa una configuración de seguridad para especificar roles de IAM para EMRFS, debe definirmapeos de roles. Cada mapeo de roles especifica un rol de IAM que corresponde a los identificadores.Dichos identificadores determinan la base para el acceso a Amazon S3 a través de EMRFS. Losidentificadores pueden ser usuarios, grupos o prefijos de Amazon S3 que indican una ubicación de datos.Cuando EMRFS realiza una solicitud a Amazon S3, y la solicitud coincide con la base para el acceso,EMRFS tiene las instancias EC2 del clúster que asumen el rol de IAM correspondiente para la solicitud.Los permisos de IAM vinculados a dicho rol se aplican en lugar de los permisos de IAM vinculados al rol deservicio para las instancias de EC2 del clúster de.

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 especificador debucket de cualquier profundidad (por ejemplo,s3://mybucketos3://mybucket/myproject/mydata).

338

Page 347: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Puede especificar varios identificadores dentro de un único mapeo de roles, pero todos deben ser delmismo tipo.

Important

Los roles de IAM para EMRFS proporcionan aislamiento a nivel de aplicación entre los usuariosde la aplicación. No proporcionan aislamiento de nivel del host entre los usuarios del host.Cualquier usuario con acceso a el clúster puede omitir el aislamiento para asumir cualquiera delos roles.

Cuando una aplicación del clúster realiza una solicitud a Amazon S3 a través de EMRFS, EMRFS evalúalos mapeos de roles en el orden descendente en el que aparecen en la configuración de seguridad. Si unasolicitud realizada a través de EMRFS no coincide con ningún identificador, EMRFS vuelve a usar el rolde servicio para las instancias de EC2 del clúster de. 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 Funciónde servicio para instancias EC2 de clúster (perfil de instancia EC2) (p. 322).

Configurar roles de

Antes de configurar una configuración de seguridad con funciones de IAM para EMRFS, planifique ycree los roles 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 laIAM User Guide. 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 nombre delrol predeterminado es.EMR_EC2_DefaultRole, y la política administrada predeterminada para editaresAmazonElasticMapReduceforEC2Role. Para obtener más información, consulte Función de serviciopara instancias EC2 de clúster (perfil de instancia EC2) (p. 322).

Actualización de políticas de confianza para asumir permisos de 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", "Statement":[

339

Page 348: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

{ "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 usuario clave

Si un rol permite el acceso a una ubicación de Amazon S3 cifrada mediante unAWS KMS key, asegúresede que el rol se especifique como usuario clave. Esto proporciona al rol permiso para utilizar la clave KMS.Para obtener más información, consulte Políticas de claves en AWS KMS en la Guía para desarrolladoresde AWS Key Management Service.

Configure una configuración de seguridad con funciones de IAM para EMRFSImportant

Si ninguna de las funciones de IAM para EMRFS especificadas se aplican, EMRFS vuelve a usarla función de EMR para EC2. Considere la posibilidad de personalizar este rol para restringirlos permisos de Amazon S3 según sea necesario para su aplicación y de especificar despuéseste rol personalizado en lugar deEMR_EC2_DefaultRolecuando crea un clúster. Para obtenermás información, consulte Personalizar roles de IAM (p. 336) y Especifique roles de IAMpersonalizados al crear un clúster (p. 336).

Para especificar funciones de IAM para solicitudes de EMRFS a Amazon S3 mediante la consola

1. Cree una configuración de seguridad que especifique los mapeos de roles:

a. En la consola de Amazon EMR, seleccionaConfiguraciones de seguridad,Crear.b. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre). Este nombre

se utiliza para especificar la configuración de seguridad cuando crea un clúster.c. ElegirUse roles de IAM para solicitudes de EMRFS a Amazon S3.d. Seleccionar unaRol de IAMpara solicitar, y enBase para el accesoseleccione un tipo de

identificador (Usuarios de,Groups, o bienPrefijos de S3) de la lista e introduzca los identificadorescorrespondientes. Si utiliza varios identificadores, sepárelos con una coma y sin espacios. Paraobtener más información acerca de cada tipo de identificador, consulte JSON configurationreference (p. 341) a continuación.

e. Elija Add role (Añadir rol) para configurar mapeos de roles adicionales, tal y como se describe enel paso anterior.

340

Page 349: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

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. 276).

2. Especifique la configuración de seguridad que creó anteriormente cuando cree un clúster.Para obtener más información, consulte Especificar una configuración de seguridad para unclúster (p. 296).

Para especificar funciones de IAM para solicitudes de EMRFS a Amazon S3 mediante laAWS 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 delMyEmrFsSecConfig.jsonfile. 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. 276).

A continuación se muestra un fragmento JSON de ejemplo para especificar roles de IAMpersonalizados para EMRFS dentro de una configuración de seguridad. Muestra las asignaciones deroles para los tres tipos de identificadores diferentes, seguidas de una referencia de parámetros.

{ "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 asignaciones de roles.

"RoleMappings": Obligatorio. Contiene una o más definicionesde asignación de roles. Los mapeos de rolesse evalúan en el orden descendente en elque aparecen. Si una asignación de roles seevalúa como verdadera para una llamada de

341

Page 350: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

Parámetro Descripcióndatos de EMRFS en Amazon S3, no se evalúanotras asignaciones de roles y EMRFS utilizael rol de IAM especificado para la solicitud.Las asignaciones de funciones constan de lossiguientes parámetros obligatorios:

"Role": Especifica el identificador ARN de un rol deIAM en el formatoarn:aws:iam::account-id:role/role-name. Esta es la función deIAM que Amazon EMR asume si la solicitudEMRFS a Amazon S3 coincide con cualquierade lasIdentifiersespecificada.

"IdentifierType": Puede ser uno de los siguientes:

• "User"especifica que los identificadoresson uno o varios usuarios de Hadoop, quepueden ser usuarios de cuentas Linux odirectores Kerberos. Cuando la solicitudEMRFS se origina con el usuario o losusuarios especificados, se asume el rol deIAM.

• "Prefix"especifica que el identificador esuna ubicación de Amazon S3. El rol de IAMse asume para las llamadas a la ubicación oubicaciones con los prefijos especificados. Porejemplo, el prefijo s3://mybucket/coincides3://mybucket/mydir ys3://mybucket/yetanotherdir.

• "Group"especifica que los identificadoresson uno o variosGrupos de Hadoop. El rol deIAM se asume si la solicitud se origina en unusuario del grupo o grupos especificados.

"Identifiers": Especifica uno o varios identificadores deltipo de identificador adecuado. Separe variosidentificadores por comas 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

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítelas o reemplácese porun signo de intercalación (^).

aws emr create-cluster --name MyEmrFsS3RolesCluster \--release-label emr-5.36.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \--instance-type m5.xlarge --instance-count 3 \

342

Page 351: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfiguración de roles de servicio para Amazon EMR

--security-configuration EMRFS_Roles_Security_Configuration

Uso de políticas basadas en recursos para el acceso de AmazonEMR aAWSGlue Data CatalogSi usaAWSGlue junto con Hive, Spark o Presto en Amazon EMR,AWSGlue admite políticas basadasen recursos para controlar el acceso a recursos del Data Catalog. Estos recursos incluyen basesde datos, tablas, conexiones y funciones definidas por el usuario. Para obtener más información,consulteAWSPolíticas de recursos de Glueen laAWSGuía para desarrolladores Glue.

Al utilizar políticas basadas en recursos para limitar el acceso aAWSGlue desde Amazon EMR, la principalque especifique en la política de permisos debe ser el ARN de rol asociado al perfil de instancia de EC2que se especifica cuando se crea un clúster. Por ejemplo, para una política basada en recursos asociada aun catálogo, puede especificar el ARN de rol para el rol de servicio predeterminado para las instancias EC2del clúster,EMR_EC2_Función predeterminadacomo elPrincipal, utilizando el formato mostrado enel siguiente ejemplo:

arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole

Laacct-idpuede ser diferente de laAWSID de cuenta de Glue. Esto permite el acceso desde clústeresEMR en distintas cuentas. Puede especificar varios directores, cada uno de ellos desde una cuentadiferente.

Utilizar roles de IAM con aplicaciones que llamanAWSserviciosdirectamenteLas 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 Amazon EMR versión 2.3.0 y posteriores se han actualizadopara utilizar los roles de IAM. Si su aplicación se ejecuta estrictamente sobre la arquitectura de Hadoopy no llama directamente a ningún servicio enAWS, debería funcionar con roles de IAM sin ningunamodificación.

Si tu aplicación llama a servicios enAWSdirectamente, debe actualizarlo para aprovechar los roles deIAM. Esto significa que en lugar de obtener credenciales de cuenta de/etc/hadoop/conf/core-site.xmlen las instancias EC2 del clúster, la aplicación utiliza un SDK para acceder a los recursosmediante roles de IAM o llama a los metadatos de la instancia EC2 para obtener las credencialestemporales.

Para obtener acceso aAWSrecursos con roles de IAM utilizando un SDK

• En los siguientes temas, se muestra cómo utilizar varios de losAWSSDK para acceder a credencialestemporales mediante roles de IAM. Cada tema comienza con una versión de una aplicación queno utiliza roles de IAM y, a continuación, realiza un recorrido por proceso de conversión de dichaaplicación para utilizar roles de IAM.

• Uso de roles de IAM para instancias Amazon EC2 con el SDK for Javaen laAWS SDK for JavaGuíapara desarrolladores

• Uso de roles de IAM para instancias Amazon EC2 con el SDK for .NETen laAWS SDK for .NETGuíapara desarrolladores

• Uso de funciones de IAM para instancias de Amazon EC2 con el SDK for PHPen laAWS SDK forPHPGuía para desarrolladores

343

Page 352: Amazon EMR - Guía de administración

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 for Rubyen laAWS SDK for RubyGuíapara desarrolladores

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 acerca de la escritura de aplicaciones que utilizan funciones deIAM, consulteConcesión de acceso a las aplicaciones que se ejecuten en instancias Amazon EC2aAWSrecursos.

Para obtener más información acerca de las credenciales de seguridad temporales, consulteUso decredenciales de seguridad temporalesen laUsar credenciales de seguridad temporalesguía.

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.Actionsen laReferencia de la API deIAM.

• 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.

Para obtener información sobre la asignación de permisos a un usuario de IAM, consulteCambio de lospermisos de un usuario de IAMen laIAM User Guide.

Ejemplos de políticas de Amazon EMR basadas enidentidadesDe forma predeterminada, los usuarios y roles de IAM no tienen permiso para crear ni modificar recursosde Amazon EMR. Tampoco pueden realizar tareas mediante la AWS Management Console, la AWS CLI,

344

Page 353: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

o la API de AWS. Un administrador de IAM debe crear políticas de IAM que concedan permisos a losusuarios y a los roles para realizar operaciones de la API concretas en los recursos especificados quenecesiten. El administrador debe adjuntar esas políticas a los usuarios o grupos de IAM que necesitenesos permisos.

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 de políticas para Amazon EMR (p. 345)• Permitir a los usuarios consultar sus propios permisos (p. 345)• Políticas administradas por Amazon EMR (p. 346)• Políticas de IAM para el acceso basado en etiquetas a clústeres y blocs de notas EMR (p. 357)• Denegación del ModifyInstanceGroup acción (p. 366)

Prácticas recomendadas de políticas para Amazon EMRLas políticas basadas en identidad son muy eficaces. Determinan si alguien puede crear, acceder oeliminar recursos de Amazon EMR de la 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 al uso deAWSPolíticas administradas de— Para empezar a utilizar Amazon EMRrápidamente, utiliceAWSpolíticas administradas de 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, consulteAprenda a usar permisos conAWSpolíticas administradasen laIAMUser GuideyPolíticas administradas por Amazon EMR (p. 346).

• 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 estrictos 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 la autenticación multifactor (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,consulteElemento de la política de JSON de IAM: Condiciónen laIAM User Guide.

Permitir a los usuarios consultar 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 adjuntan 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.

{

345

Page 354: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "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 por 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.

Amazon EMR va a desaprobar las políticas administradas existentes (políticas v1) a favor de las nuevaspolíticas administradas (políticas v2). Las nuevas políticas gestionadas se han reducido para ajustarseaAWSprácticas recomendadas. Una vez que las políticas administradas v1 existentes hayan quedadoobsoletas, no podrá adjuntar estas políticas a ningún nuevo rol o usuario de IAM. Los roles y usuariosexistentes que utilizan políticas obsoletas pueden seguir usándolos. Las políticas administradas v2restringen el acceso mediante etiquetas. Solo permiten acciones específicas de Amazon EMR y requierenrecursos de clúster etiquetados con una clave específica de EMR. Le recomendamos que revisedetenidamente la documentación antes de utilizar las nuevas políticas v2.

Las políticas v1 se marcarán en desuso con un icono de advertencia junto a ellas en elPolíticaslista de laconsola de IAM. Las políticas obsoletas tendrán las siguientes características:

• Seguirán funcionando para todos los usuarios, grupos y roles asociados actualmente. Ningún elementodeja de funcionar.

• No pueden asociarse a nuevos usuarios, grupos o roles. Si separa una de las políticas de una entidadactual, no puede volver a acoplarla.

• Después de separar una política v1 de todas las entidades actuales, la política dejará de estar visible ydejará de poder utilizarse.

346

Page 355: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

En la siguiente tabla, se resumen los cambios entre las políticas actuales (v1) y la v2.

Cambios en las políticas administradas por EMR

Tipo de política Nombres de las políticas Fin de la política Cambios en la políticav2

Política administradade IAM para accesocompleto a EMR porusuario, rol o grupoadjunto

Política V1 (que se va adesaprobar):AmazonElasticMapReduceFullAccess (p. 353)

Nombre de ladirectiva V2 (conámbito):AmazonEMRFullAccessPolicy_v2 (p. 350)

Permite a los usuariospermisos completospara acciones deEMR. Incluye permisosIAM:PassRole para losrecursos.

La directiva añade unrequisito previo de quelos usuarios debenagregar etiquetas deusuario a los recursosantes de poder utilizaresta política. ConsulteEtiquetado de recursospara utilizar políticasadministradas (p. 349).

IAM:la acción PassRolerequiere la condiciónIAM:PassedToServiceestablecida en elservicio especificado.El acceso a AmazonEC2, Amazon S3 niotros servicios deestá permitido deforma predeterminada.ConsultePolíticaadministrada deIAM para accesocompleto (v2 directivapredeterminadaadministrada) (p. 350).

Política administradapor IAM para el accesode solo lectura por elusuario, rol o grupoasociados

Política V1 (que se va adesaprobar):AmazonElasticMapReduceReadOnlyAccess (p. 355)

Nombre de ladirectiva V2 (conámbito):AmazonEMRReadOnlyAccessPolicy_v2 (p. 354)

Permite a los usuariospermisos de solo lecturapara acciones deAmazon EMR.

Los permisos permitensolo las accionesde solo lecturaelasticmapreduceespecificadas. El accesoa Amazon S3 es elacceso no permitido deforma predeterminada.ConsultePolíticaadministrada deIAM para acceso desolo lectura (políticapredeterminadaadministradav2) (p. 354).

Función de servicioEMR predeterminaday política administradaadjunta

Nombre del rol:EMR_DefaultRole

Política V1 (que seva a desaprobar):AmazonElasticMapReduceRole(Funciónde servicio EMR)

Permite a AmazonEMR llamar aotrosAWSserviciosen su nombre alaprovisionar recursos yllevar a cabo accionesa nivel de servicio. Este

El rol de serviciov2 y la directivapredeterminada v2reemplazan al rol yla política obsoletas.La política añade unrequisito previo de que

347

Page 356: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

Tipo de política Nombres de las políticas Fin de la política Cambios en la políticav2

Nombre de la directivaV2 (con alcancereducido):AmazonEMRServicePolicy_v2 (p. 316)

rol es necesario paratodos los clústeres.

los usuarios debenagregar etiquetas deusuario a los recursosantes de poder utilizaresta política. ConsulteEtiquetado de recursospara utilizar políticasadministradas (p. 349).Consulte Funciónde servicio paraAmazon EMR (rolEMR) (p. 316).

Función de serviciopara instancias EC2de clúster (perfil deinstancia EC2)

Política V1 (que seva a desaprobar):EMR_EC2_Funciónpredeterminada(perfil deinstancia)

Nombre depolítica obsoleto:AmazonElasticMapReduceforEC2Role

Permite que lasaplicaciones quese ejecutan en unclúster de EMR tenganaccesoAWSrecursos,como Amazon S3. Porejemplo, si ejecutatrabajos de ApacheSpark que procesandatos de Amazon S3,la política debe permitirel acceso a dichosrecursos.

Tanto el rolpredeterminado como lapolítica predeterminadaestán en la ruta dedesaprobación. No hayreemplazoAWSrol opolítica administradospredeterminados.Debe proporcionaruna política basadaen recursos o basadaen identidad. Estosignifica que, de formapredeterminada, lasaplicaciones que seejecutan en un clústerde EMR no tienenacceso a AmazonS3 u otro recurso amenos que los agreguemanualmente a lapolítica. ConsulteFunción predeterminaday políticaadministrada (p. 322).

Otras políticas de rol deservicio de la EC2

Nombres depolíticas actuales:Función de AmazonElastic MapReducepara escaladoautomático, función deAmazonElasticMapReduceEditorsRole,AmazonEMRCleanupPolicy

Proporciona permisosque EMR necesita paraacceder a otrosAWSyrealice acciones siutiliza escalado auto,blocs de notas o paralimpiar recursos de EC2.

Sin cambios para v2.

Proteger iam:PassRoleLa política administrada predeterminada de permisos completos de Amazon EMR(AmazonEMRFullAccessPolicy_v2) y política de servicios de Amazon EMR(AmazonEMRServicePolicy_v2) están disponibles para sustituir el soon-to-be-deprecated política. Laspolíticas v2 incorporan nuevas configuraciones de seguridad de IAM:PassRole, incluidas las siguientes:

348

Page 357: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

• iam:PassRolepermisos solo para roles específicos de Amazon EMR predeterminados.• iam:PassedToServicecondiciones que le permiten utilizar la política solo con las

especificadasAWSservicios, tales comoelasticmapreduce.amazonaws.comyec2.amazonaws.com.

Puede ver la versión JSON de laAmazonemrFullAccessPolicy_v2yAmazonEMRServicePolicy_v2políticasen la consola de IAM.

Recomendamos crear nuevos clústeres utilizando políticas administradas por v2.

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 acerca de cómo asociar políticas a los usuarios de IAM (entidades principales),consulte.Uso de políticas administradas mediante laAWS Management Consoleen laIAM User Guide.

Etiquetado de recursos para utilizar políticas administradas

AmazonEMRServicePolicy_v2 y AmazonEMRFullAccessPolicy_v2 dependen del acceso reducido a losrecursos que Amazon EMR aprovisiona o utiliza. La reducción del alcance se logra restringiendo el accesosolo a aquellos recursos que tienen una etiqueta de usuario predefinida asociada a ellos. Cuando utilizacualquiera de estas dos políticas, debe pasar la etiqueta de usuario predefinidafor-use-with-amazon-emr-managed-policies = trueal aprovisionar el clúster. Amazon EMR propagará automáticamenteesa etiqueta. Además, debe agregar manualmente una etiqueta de usuario a los recursos enumerados enla siguiente sección. Si utiliza la consola de Amazon EMR, consulteConsideraciones para utilizar la consolade Amazon EMR para lanzar clústeres con políticas administradas v2 (p. 350).

Para utilizar políticas administradas, pasa la etiqueta de usuariofor-use-with-amazon-emr-managed-policies = trueal aprovisionar un clúster utilizando la CLI, el SDK u otro método.

Cuando pasa la etiqueta, Amazon EMR propaga la etiqueta a volúmenes ENI de subred privada, instanciaEC2 y EBS que crea. Amazon EMR también etiqueta automáticamente los grupos de seguridad quecrea. Sin embargo, si desea que Amazon EMR se inicie con un grupo de seguridad determinado, debeetiquetarlo. Para los recursos que Amazon EMR no ha creado, debe agregar etiquetas manualmentea esos recursos. Por ejemplo, debe etiquetar subredes EC2, grupos de seguridad de EC2 (si no los hacreado Amazon EMR) y VPC (si desea que Amazon EMR cree grupos de seguridad). Para lanzar clústerescon políticas administradas v2 en VPC, debe etiquetarlas con la etiqueta de usuario predefinida. Consulte,Consideraciones para utilizar la consola de Amazon EMR para lanzar clústeres con políticas administradasv2 (p. 350).

Etiquetado propagado especificado por el usuario

Amazon EMR etiqueta los recursos que crea mediante las etiquetas de Amazon EMR que especifica alcrear un clúster. Amazon EMR aplica etiquetas a los recursos que crea durante la vida útil del clúster.

Amazon EMR propaga etiquetas de usuario para los siguientes recursos:

• ENI de subred privada (interfaces de red elásticas de acceso a servicios)• Instancias EC2• Volúmenes de EBS• Plantilla de lanzamiento de EC2

Grupos de seguridad etiquetados automáticamente

Amazon EMR etiqueta los grupos de seguridad de EC2 que crea con la etiqueta necesaria para laspolíticas administradas v2 para Amazon EMR,for-use-with-amazon-emr-managed-policies,

349

Page 358: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

independientemente de las etiquetas que especifique en el comando create cluster. Para un grupo deseguridad creado antes de la introducción de las políticas administradas v2, Amazon EMR no etiquetaautomáticamente el grupo de seguridad. Si desea utilizar políticas administradas v2 con los gruposde seguridad predeterminados que ya existen en la cuenta, debe etiquetar los grupos de seguridadmanualmente confor-use-with-amazon-emr-managed-policies = true.

Recursos de clúster etiquetados manualmente

Debe etiquetar manualmente algunos recursos de clúster para que los roles predeterminados de AmazonEMR puedan acceder a ellos.

• Debe etiquetar manualmente los grupos de seguridad de EC2 y las subredes EC2 con la etiqueta depolítica administrada de Amazon EMR.for-use-with-amazon-emr-managed-policies.

• Debe etiquetar manualmente una VPC si desea que Amazon EMR cree grupos de seguridadpredeterminados. EMR intentará crear un grupo de seguridad con la etiqueta específica si el grupo deseguridad predeterminado aún no existe.

Amazon EMR etiqueta automáticamente los siguientes recursos:

• Grupos de seguridad de la EC2 creados por EMR

Debe etiquetar manualmente los siguientes recursos:

• Subred EC2• Grupos de seguridad de la EC2

De forma opcional, puede etiquetar manualmente los siguientes recursos:

• VPC: solo cuando desea que Amazon EMR cree grupos de seguridad

Consideraciones para utilizar la consola de Amazon EMR para lanzar clústerescon políticas administradas v2

Puede aprovisionar clústeres con políticas administradas v2 mediante la consola de Amazon EMR. Estasson algunas consideraciones al utilizar la consola para lanzar clústeres de Amazon EMR.

• No es necesario pasar la etiqueta predefinida. Amazon EMR añade automáticamente la etiqueta y lapropaga a los componentes adecuados.

• En el caso de los componentes que deben etiquetarse manualmente, la consola de Amazon EMR intentaetiquetarlos automáticamente si tiene los permisos necesarios para etiquetar recursos. Si no tienespermisos para etiquetar recursos, pídele al administrador que los etiquete.

• No se pueden lanzar clústeres con políticas administradas v2 a menos que se cumplan todos losrequisitos previos.

• La consola muestra qué recursos (VPC o subredes) deben etiquetarse.

Política administrada de IAM para acceso completo (política predeterminadaadministrada v2)

Las políticas administradas predeterminadas de EMR de ámbito v2 otorgan privilegios de accesoespecíficos a los usuarios. Requieren una etiqueta de recurso de Amazon EMR predefinidayiam:PassRoleclaves de condición de los recursos utilizados por Amazon EMR, comoelSubnetySecurityGrouputiliza para lanzar el clúster.

350

Page 359: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

Para conceder las acciones requeridas con el alcance de Amazon EMR, adjunteelAmazonEMRFullAccessPolicy_v2política administrada de. Esta política administrada predeterminadaactualizada reemplaza laAmazonElasticMapReduceFullAccess (p. 353)política administrada de.

AmazonEMRFullAccessPolicy_v2depende del acceso reducido a los recursos que Amazon EMRaprovisiona o utiliza. Cuando utiliza esta política, debe pasar la etiqueta de usuariofor-use-with-amazon-emr-managed-policies = trueal aprovisionar el clúster. Amazon EMR propagaráautomáticamente la etiqueta. Además, es posible que tenga que agregar manualmente una etiquetade usuario a tipos específicos de recursos, como grupos de seguridad de EC2 que Amazon EMRno creó. Para obtener más información, consulte Etiquetado de recursos para utilizar políticasadministradas (p. 349).

LaAmazonEMRFullAccessPolicy_v2protege los recursos haciendo lo siguiente:

• Requiere que los recursos se etiqueten con la etiqueta de políticas administradas de Amazon EMRpredefinidafor-use-with-amazon-emr-managed-policiespara la creación de clústeres y accesoa Amazon EMR.

• Restringe eliam:PassRoleacción para roles predeterminados específicosyiam:PassedToServiceacceso a servicios específicos.

• Ya no proporciona acceso a Amazon EC2, Amazon S3 y otros servicios de forma predeterminada.

A continuación se detalla el contenido de esta política.

Note

También puede usar el enlace de la consolaAmazonEMRFullAccessPolicy_v2para ver lapolítica.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RunJobFlowExplicitlyWithEMRManagedTag", "Effect": "Allow", "Action": [ "elasticmapreduce:RunJobFlow" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "ElasticMapReduceActions", "Effect": "Allow", "Action": [ "elasticmapreduce:AddInstanceFleet", "elasticmapreduce:AddInstanceGroups", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:AddTags", "elasticmapreduce:CancelSteps", "elasticmapreduce:CreateEditor", "elasticmapreduce:CreateSecurityConfiguration", "elasticmapreduce:DeleteEditor", "elasticmapreduce:DeleteSecurityConfiguration", "elasticmapreduce:DescribeCluster", "elasticmapreduce:DescribeEditor", "elasticmapreduce:DescribeJobFlows", "elasticmapreduce:DescribeSecurityConfiguration",

351

Page 360: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"elasticmapreduce:DescribeStep", "elasticmapreduce:DescribeReleaseLabel", "elasticmapreduce:GetBlockPublicAccessConfiguration", "elasticmapreduce:GetManagedScalingPolicy", "elasticmapreduce:GetAutoTerminationPolicy", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListEditors", "elasticmapreduce:ListInstanceFleets", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSecurityConfigurations", "elasticmapreduce:ListSteps", "elasticmapreduce:ModifyCluster", "elasticmapreduce:ModifyInstanceFleet", "elasticmapreduce:ModifyInstanceGroups", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:PutAutoScalingPolicy", "elasticmapreduce:PutBlockPublicAccessConfiguration", "elasticmapreduce:PutManagedScalingPolicy", "elasticmapreduce:RemoveAutoScalingPolicy", "elasticmapreduce:RemoveManagedScalingPolicy", "elasticmapreduce:RemoveTags", "elasticmapreduce:SetTerminationProtection", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:TerminateJobFlows", "elasticmapreduce:ViewEventsFromAllClustersInConsole" ], "Resource": "*" }, { "Sid": "ViewMetricsInEMRConsole", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricStatistics" ], "Resource": "*" }, { "Sid": "PassRoleForElasticMapReduce", "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::*:role/EMR_DefaultRole", "arn:aws:iam::*:role/EMR_DefaultRole_V2" ], "Condition": { "StringLike": { "iam:PassedToService": "elasticmapreduce.amazonaws.com*" } } }, { "Sid": "PassRoleForEC2", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMR_EC2_DefaultRole", "Condition": { "StringLike": { "iam:PassedToService": "ec2.amazonaws.com*" } } }, { "Sid": "PassRoleForAutoScaling",

352

Page 361: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMR_AutoScaling_DefaultRole", "Condition": { "StringLike": { "iam:PassedToService": "application-autoscaling.amazonaws.com*" } } }, { "Sid": "ElasticMapReduceServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringEquals": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } } }, { "Sid": "ConsoleUIActions", "Effect": "Allow", "Action": [ "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeVpcEndpoints", "s3:ListAllMyBuckets", "iam:ListRoles" ], "Resource": "*" } ]}

Política administrada de IAM para acceso total (en camino hacia ladesaprobación)LaAmazonElasticMapReduceFullAccessLa política administrada concede todas las accionesnecesarias para Amazon EMR y otros servicios. LaAmazonElasticMapReduceFullAccessLa políticaadministrada se encuentra en vías de ser declarado obsoleto, pero no está obsoleta. Cuando la políticaquede obsoleta, no podrá adjuntarla a un rol. Sin embargo, un rol que ya tiene una política obsoletaadjunta se puede adjuntar a un clúster.AmazonElasticMapReduceFullAccessse ha sustituidoporAmazonEMRFullAccessPolicy_v2 (p. 350)como política administrada predeterminada de AmazonEMR.

La política administrada predeterminada de permisos completos de Amazon EMR(AmazonEMRFullAccessPolicy_v2) y política de servicios de Amazon EMR(AmazonEMRServicePolicy_v2) están disponibles para sustituir el soon-to-be-deprecated política. Laspolíticas v2 incorporan nuevas configuraciones de seguridad de IAM:PassRole, incluidas las siguientes:

• iam:PassRolepermisos solo para roles específicos de Amazon EMR predeterminados.

353

Page 362: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

• iam:PassedToServicecondiciones que le permiten utilizar la política solo con lasespecificadasAWSservicios, tales comoelasticmapreduce.amazonaws.comyec2.amazonaws.com.

Puede ver la versión JSON de laAmazonemrFullAccessPolicy_v2yAmazonEMRServicePolicy_v2políticasen la consola de IAM.

Recomendamos crear nuevos clústeres utilizando políticas administradas por v2.

Puede ver el contenido de esta política mediante laAWS ManagementConsolevínculoAmazonElasticMapReduceFullAccess.

Note

Laec2:TerminateInstancesLa acción de la política permite que el usuario o rol de IAM queasume esta política de termine cualquiera de las instancias Amazon EC2 asociadas con la cuentade IAM, incluso las que no forman parte de un clúster de Amazon EMR.

Política administrada de IAM para acceso de solo lectura (política predeterminadaadministrada v2)Para conceder privilegios de solo lectura a Amazon EMR, adjuntelaAmazonEMRReadOnlyAccessPolicy_v2política administrada de. Esta política administradapredeterminada reemplaza elAmazonElasticMapReduceReadOnlyAccess (p. 355)políticaadministrada de. El contenido de esta instrucción de política se muestra en el siguientefragmento. En comparación con elAmazonElasticMapReduceReadOnlyAccesspolítica,laAmazonEMRReadOnlyAccessPolicy_v2directiva no utiliza caracteres comodín paraelelasticmapreduceelemento. En su lugar, la política v2 predeterminada abarca el ámbitoespecíficoelasticmapreduceacciones permitidas.

Note

También puede utilizar laAWS ManagementConsolevínculoAmazonEMRReadOnlyAccessPolicy_v2para ver la política.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ElasticMapReduceActions", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:DescribeEditor", "elasticmapreduce:DescribeJobFlows", "elasticmapreduce:DescribeSecurityConfiguration", "elasticmapreduce:DescribeStep", "elasticmapreduce:DescribeReleaseLabel", "elasticmapreduce:GetBlockPublicAccessConfiguration", "elasticmapreduce:GetManagedScalingPolicy", "elasticmapreduce:GetAutoTerminationPolicy", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListEditors", "elasticmapreduce:ListInstanceFleets", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSecurityConfigurations", "elasticmapreduce:ListSteps", "elasticmapreduce:ViewEventsFromAllClustersInConsole" ], "Resource": "*" }, {

354

Page 363: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"Sid": "ViewMetricsInEMRConsole", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricStatistics" ], "Resource": "*" } ]}

Política administrada de IAM para el acceso de solo lectura (en el camino hacia ladesaprobación)LaAmazonElasticMapReduceReadOnlyAccessLa política administrada seencuentra en vías de ser autorizado. No se puede adjuntar esta política al lanzarnuevos clústeres.AmazonElasticMapReduceReadOnlyAccessse ha sustituidoporAmazonEMRReadOnlyAccessPolicy_v2 (p. 354)como política administrada predeterminada deAmazon EMR. El contenido de esta instrucción de política se muestra en el siguiente fragmento. Loscaracteres comodín para el elemento elasticmapreduce especifican que solo se permiten las accionesque empiezan por las cadenas especificadas. Tenga en cuenta que, dado que esta política no deniegaacciones explícitamente, se puede seguir utilizando una instrucción de política distinta para otorgar accesoa acciones especificadas.

Note

También puede utilizar laAWS Management Consolepara ver la política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticmapreduce:Describe*", "elasticmapreduce:List*", "elasticmapreduce:ViewEventsFromAllClustersInConsole" "s3:GetObject", "s3:ListAllMyBuckets", "s3:ListBucket", "sdb:Select", "cloudwatch:GetMetricStatistics" ], "Resource": "*" } ]}

AWSpolíticas administradas para Amazon EMR

Para agregar permisos a usuarios, grupos y roles, es más fácil utilizar las políticas administradas de AWSque escribirlas uno mismo. Se necesita tiempo y experiencia para crear políticas de IAM administradaspor el cliente que proporcionen a su equipo solo los permisos necesarios. Para comenzar a hacerlo conrapidez, puede utilizar nuestras políticas administradas por AWS. Estas políticas cubren casos de usocomunes y están disponibles en su cuenta de AWS. Para obtener más información sobre las políticasadministradas por AWS, consulte Políticas administradas por AWS en la Guía del usuario de IAM.

Los servicios de AWS mantienen y actualizan las políticas administradas por AWS. No puede cambiarlos permisos en las políticas administradas por AWS. En ocasiones, los servicios agregan permisosadicionales a una política administrada por AWS para admitir características nuevas. Este tipo deactualización afecta a todas las identidades (usuarios, grupos y roles) donde se asocia la política. Es

355

Page 364: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

más probable que los servicios actualicen una política administrada por AWS cuando se lanza una nuevacaracterística o cuando se ponen a disposición nuevas operaciones. Los servicios no quitan permisos deuna política administrada por AWS, por lo que las actualizaciones de políticas no deteriorarán los permisosexistentes.

Además, AWS admite políticas administradas para funciones de trabajo que abarcan varios servicios.Por ejemplo, la política administrada por ReadOnlyAccessAWS proporciona acceso de solo lectura atodos los servicios y los recursos de AWS. Cuando un servicio lanza una nueva característica, AWSagrega permisos de solo lectura para las operaciones y los recursos nuevos. Para obtener una lista ydescripciones de las políticas de funciones de trabajo, consulte Políticas administradas de AWS parafunciones de trabajo en la Guía del usuario de IAM.

Actualizaciones de Amazon EMR aAWSpolíticas administradas

Muestra los detalles de las actualizaciones deAWSpolíticas administradas para Amazon EMR debido a queeste servicio comenzó a realizar el seguimiento de estos cambios. Para obtener alertas automáticas sobrecambios en esta página, suscríbase a la fuente RSS en la página de historial de documentos de AmazonEMR.

Cambio Descripción Fecha

AmazonEMRFullAccessPolicy_v2 (p. 350)yAmazonEMRReadOnlyAccessPolicy_v2 (p. 354)—Actualización de una políticaexistente

Se añadieronelasticmapreduce:DescribeReleaseLabelyelasticmapreduce:GetAutoTerminationPolicy.

21 de abril de 2022

AmazonEMRFullAccessPolicy_v2 (p. 350):actualización de una políticaactual

Seañadióec2:DescribeImagesparaUsode una AMIpersonalizada (p. 199).

15 de febrero de 2022

Políticas administradas porAmazon EMR (p. 346)

Actualizado para aclarar eluso de etiquetas de usuariopredefinidas.

Se ha añadido una secciónsobre el uso deAWSconsola paralanzar clústeres con políticasadministradas v2.

29 de septiembre de 2021

AmazonEMRFullAccessPolicy_v2 (p. 350):actualización de una políticaactual

Se ha cambiadolaPassRoleForAutoScalingyPassRoleForEC2accionespara utilizar elarchivoStringLikeoperadorde condición paracoincidir"iam:PassedToService":"application-autoscaling.amazonaws.com*"y"iam:PassedToService":"ec2.amazonaws.com*",respectivamente.

20 de mayo de 2021

AmazonEMRFullAccessPolicy_v2 (p. 350):actualización de una políticaactual

Acción no válidaeliminadas3:ListBucketsyreemplazadopors3:ListAllMyBucketsaction.

23 de marzo de 2021

356

Page 365: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

Cambio Descripción FechaSe ha actualizado la creaciónde roles vinculados aservicios (SLR) para ajustarseexplícitamente a la única SLRque Amazon EMR tiene conprincipios de servicio explícitos.Las SLR que se pueden crearson exactamente las mismas queantes de este cambio.

AmazonEMRFullAccessPolicy_v2 (p. 350):política nueva

Amazon EMR añadió nuevospermisos para el acceso alos recursos y para agregarun requisito previo de que losusuarios deben agregar etiquetasde usuario predefinidas a losrecursos antes de poder utilizarlas políticas administradas deAmazon EMR.

iam:PassRoleLa acciónrequiereiam:PassedToServicecondiciónestablecida en un servicioespecificado. El acceso aAmazon EC2, Amazon S3 niotros servicios de está permitidode forma predeterminada.

11 de marzo de 2021

AmazonEMRServicePolicy_v2 (p. 316):política nueva

Añade un requisito previo deque los usuarios deben agregaretiquetas de usuario a losrecursos antes de poder utilizaresta política.

11 de marzo de 2021

AmazonEMRReadOnlyAccessPolicy_v2 (p. 354):política nueva

Los permisos permiten sololas acciones de solo lecturaelasticmapreduce especificadas.El acceso a Amazon S3 es elacceso no permitido de formapredeterminada.

11 de marzo de 2021

Amazon EMR comenzó realizarseguimientos de los cambios

Amazon EMR comenzó arealizar seguimientos de loscambios para suAWSpolíticasadministradas.

11 de marzo de 2021

Políticas de IAM para el acceso basado en etiquetas a clústeres yblocs de notas 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. 311).

357

Page 366: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

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 laIAM User Guide.

Important

La denegación de permisos explícita para acciones de etiquetado de acciones es un factorimportante. Esto impide a los usuarios etiquetar un recurso y, por lo tanto, concederse permisosque no tenga previsto conceder. Si no se deniegan las acciones de etiquetado de un recurso, unusuario puede modificar etiquetas y eludir la intención de las políticas basadas en etiquetas. Paraver un ejemplo de una política que deniega las acciones de etiquetado, consulteDenegar accesopara añadir y eliminar etiquetas (p. 360).

Ejemplos de instrucciones de políticas basadas en identidades para clústeres

En los ejemplos siguientes se muestran las políticas de permisos basadas en identidades que se utilizanpara controlar las acciones que se permiten con clústeres de EMR.

Important

LaModifyInstanceGroupacción en Amazon EMR no requiere que especifique un ID declúster. Por este motivo, denegar esta acción basándose en etiquetas de clúster requiereuna consideración adicional. Para obtener más información, consulte Denegación delModifyInstanceGroup acción (p. 366).

Temas• Permitir acciones solo en clústeres con valores de etiqueta específicos (p. 358)• Requiere etiquetado de clúster cuando se crea un clúster (p. 359)• Denegar acceso para añadir y eliminar etiquetas (p. 360)• Permitir acciones en clústeres con una etiqueta específica, independientemente del valor de

etiqueta (p. 360)

Permitir acciones solo en clústeres con valores de etiqueta específicos

Los siguientes ejemplos muestran una política que permite a un usuario realizar acciones basándose enla etiqueta del clústerdepartmentcon el valordevy también permite a un usuario etiquetar clústeres conla misma etiqueta. El ejemplo de política muestra cómo denegar los privilegios para etiquetar clústeres deEMR con cualquier otra cosa excepto la misma etiqueta.

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", "elasticmapreduce:SetTerminationProtection",

358

Page 367: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"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"] } }

Requiere etiquetado de clúster cuando se crea un clúster

Como en el ejemplo anterior, la siguiente política de ejemplo busca la misma etiqueta coincidente: el valordev de la etiqueta department. Sin embargo, en este caso, elRequestTagclave de condición especificaque la política se aplica durante la creación de la etiqueta, por lo que el usuario debe crear un clúster conuna etiqueta que coincida con el valor especificado. Para el registroPassRole, tiene que proporcionarelAWSID o alias de cuenta y el nombre del rol del servicio. Para obtener más información sobre el formatodel ARN de IAM, consulteARN de IAMen laIAM User Guide.

Para obtener más información sobre cómo especificar valores de clave de etiqueta coincidentes,consulteaws:RequestTag/tag-keyen laIAM User Guide.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "RunJobFlowExplicitlyWithTag", "Effect": "Allow", "Action": [ "elasticmapreduce:RunJobFlow" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "dev" } } }, { "Sid": "PolicyPassroleXYZ", "Effect": "Allow", "Action": [ "iam:PassRole" ],

359

Page 368: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"Resource": [ "arn:aws:iam::AccountId:role/Role-Name-With-Path" ] } ]}

Denegar acceso para añadir y eliminar etiquetas

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 enejemplos anteriores. Esta política impide que un usuario agregue o elimine etiquetas de los clústeres deEMR condepartmentetiqueta cuyo valor no esdev.

{ "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, independientemente del 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ónen laIAM User Guide.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. Para el registroPassRole, tiene queproporcionar elAWSID o alias de cuenta y el nombre del rol del servicio. Para obtener más informaciónsobre el formato del ARN de IAM, consulteARN de IAMen laIAM User Guide.

360

Page 369: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

Para obtener más información sobre cómo especificar el operador de condición nulo («falso»),consulteOperador de condición para comprobar la existencia de claves de condiciónen laIAM User Guide.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "PolicyCreateClusterTagNullPassroleXYZ", "Effect": "Allow", "Action": [ "elasticmapreduce:RunJobFlow" ], "Resource": [ "*" ], "Condition": { "Null": { "aws:RequestTag/department": "false" } } }, { "Sid": "PolicyPassroleXYZ", "Effect": "Allow", "Action": [ "iam:PassRole" ],

"Resource": [ "arn:aws:iam::AccountId:role/Role-Name-With-Path" ] } ]}

Ejemplos de instrucciones de políticas basadas en identidades para EMRNotebooksLas instrucciones de políticas de IAM de ejemplo de esta sección demuestran escenarios comunes del usode claves para limitar las acciones permitidas mediante EMR Notebooks. 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 EMR Notebooks que un usuario crea basándose en eletiquetado

En la siguiente instrucción de política de ejemplo, cuando se asocia a un rol o a un usuario, el usuario deIAM puede trabajar únicamente con blocs de notas que ha creado. Esta instrucción de política utiliza laetiqueta predeterminada que se aplica al crear un bloc de notas.

En el ejemplo, a la acciónStringEqualsEl operador de condición intenta hacer coincidir unavariable que representa el ID de usuario de IAM del usuario actual ({aws:userId}) con el valor de laetiquetacreatorUserID. Si la etiqueta creatorUserID no se ha añadido al bloc de notas o no contieneel valor del ID del usuario actual, la política no se aplica y esta política no permite las acciones. Si no hayotras instrucciones de política que permitan las acciones, el usuario solo puede trabajar con blocs de notasque tengan este valor para esta etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Action": [

361

Page 370: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"elasticmapreduce:DescribeEditor", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } } ]}

Example : requiere etiquetado de bloc de notas cuando se crea 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", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/dept": [ "datascience", "analytics", "operations"

362

Page 371: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

] } } } ]}

Example : limita la creación de bloc de notas a clústeres etiquetados y requiere etiquetas denotebook

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 : limita la capacidad de iniciar un bloc de notas basándose en 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" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [ "owner1", "owner2"

363

Page 372: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

] } } } ]}

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": [ "user1", "user2" ] } } }, { "Action": [

364

Page 373: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

"elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [ "datascience", "analytics" ] } } } ]}

Example : limita la capacidad de abrir el editor de bloc de notas basándose en 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": [ "datascience", "analytics" ] } } } ]}

365

Page 374: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplos de políticas basadas en identidad

Denegación del ModifyInstanceGroup acciónLaModifyInstanceGroupsacción en Amazon EMR no requiere que proporcione un ID de clúster con laacción. En su lugar, solo puede especificar un ID de grupo de instancias. Por este motivo, es posible queuna política de denegación aparentemente simple para esta acción basada en un ID de clúster o unaetiqueta de clúster no tenga el efecto previsto. Considere la política de ejemplo siguiente.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67" } ] }

Si un usuario con esta política adjunta realiza unModifyInstanceGroupy especifica solo el ID del grupode instancias, la política no se aplica. Puesto que la acción está permitida en todos los demás recursos, laacción se realiza correctamente.

Una solución a este problema es adjuntar una declaración de política a la identidad que utiliza unNoRecursoelemento para denegar cualquierModifyInstanceGroupacción emitida sin un ID de clúster.En la siguiente política de ejemplo se agrega una declaración de denegación de este tipo para quecualquierModifyInstanceGroupsla solicitud falla a menos que se especifique un ID de clúster. Puestoque una identidad debe especificar un ID de clúster con la acción, las sentencias de denegación basadasen el ID de clúster son efectivas.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ],

366

Page 375: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAutenticarse en nodos de clú

"Effect": "Deny", "NotResource": "arn:*:elasticmapreduce:*:*:cluster/*" } ] }

Existe un problema similar cuando quieres denegar elModifyInstanceGroupsacción basadaen el valor asociado a una etiqueta de clúster. La solución es similar. Además de una declaracióndeny que especifica el valor de la etiqueta, puede agregar una declaración de política que niegueelModifyInstanceGroupacción si la etiqueta que especifique no está presente, independientemente delvalor.

El siguiente ejemplo de muestra una política que, cuando se asocia a una identidad, niega laidentidadModifyInstanceGroupsaccionar cualquier clúster con la etiquetadepartmentestablecidoendev. Esta declaración solo es efectiva debido a la declaración de denegación que utilizaelStringNotLikecondición para denegar la acción a menos que eldepartmentLa etiqueta estápresente.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Condition": { "StringEquals": { "aws:ResourceTag/department": "dev" } }, "Effect": "Deny", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Condition": { "StringNotLike": { "aws:ResourceTag/department": "?*" } }, "Effect": "Deny", "Resource": "*" } ],}

Autenticar en nodos de clúster de Amazon EMRLos clientes SSH pueden utilizar un key pair de Amazon EC2 para autenticarse en instancias de clúster.De forma alternativa, versión de Amazon EMR 5.10.0 o posterior, puede configurar Kerberos para

367

Page 376: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUtilizar un key pair de AmazonEC2 para las credenciales SSH

autenticar a los usuarios y las conexiones SSH con el nodo principal. Para obtener más información,consulte Uso de la autenticación Kerberos (p. 368).

Temas• Utilizar un key pair de Amazon EC2 para las credenciales SSH (p. 368)• Uso de la autenticación Kerberos (p. 368)

Utilizar un key pair de Amazon EC2 para lascredenciales SSHLos nodos de clúster de Amazon EMR ejecutan en instancias de Amazon EC2. Puede conectarse a nodosdel clúster de la misma forma que puede conectarse a instancias de Amazon EC2. Puede utilizar AmazonEC2 para crear un key pair o importar un key pair. Cuando se crea un clúster, puede especificar el key pairde Amazon EC2 que se utilizará para las conexiones SSH en todas las instancias del clúster. Tambiénpuede crear un clúster sin un par de claves. Esto se hace con clústeres transitorios que se inician, ejecutanpasos, 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 acerca de la creación de un key pair de Amazon EC2, consultePares declaves de Amazon EC2en laGuí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.Convierta su clave privada utilizando PuTTYgenen laGuía del usuario de AmazonEC2 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 maestro de un clúster de EMR con distintos métodos (incluidosshdesdeLinux o macOS, PuTTY de Windows o elAWS CLIdesde cualquier sistema operativo compatible,consulteConnect al nodo maestro utilizando SSH (p. 519).

Uso de la autenticación KerberosAmazon EMR versión 5.10.0 y posterior es compatible con Kerberos, que es un protocolo de autenticaciónde red creado por el Massachusetts Institute of Technology (MIT). Kerberos utiliza la criptografía de clavesecreta para proporcionar una autenticación sólida, de forma que las contraseñas u otras credenciales nose 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.

368

Page 377: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Cuando utiliza autenticación Kerberos, Amazon EMR configura Kerberos para las aplicaciones,componentes y subsistemas que instala en el clúster, de forma que se autentiquen entre sí.

Important

Amazon EMR no es compatible conAWS Directory Service for Microsoft Active Directoryen unfideicomiso 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 serviciosde Kerberos. Para obtener más información, consulteDocumentación de MIT Kerberos, publicado porelConsorcio Kerberos.

Temas• Aplicaciones compatibles (p. 369)• Opciones de arquitectura Kerberos (p. 370)• Configuración de Kerberos en Amazon EMR (p. 378)• Uso de SSH para conectarse a clústeres que utilizan Kerberos (p. 386)• Tutorial: Configuración de un KDC dedicado del clúster (p. 388)• Tutorial: Configure una confianza entre ámbitos con un dominio de Active Directory (p. 390)

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 conAWS 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.

La interfaz de usuario de Livy es la única interfaz de usuario web alojada en el clúster que está Kerberized.

• 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

• La suplantación de Livy con clústeres Kerberized se admite en la versión 5.22.0 y posteriores deAmazon EMR.

369

Page 378: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

• Oozie• Phoenix• Spark• Tez• YARN• Zeppelin

• Zeppelin solo está configurado para utilizar Kerberos con el intérprete Spark. No está configurado paraotros intérpretes.

• La suplantación de usuario no es compatible con los intérpretes de Zeppelin Kerberized que no seanSpark.

• ZooKeeper• Zookeeper cliente no es compatible.

Opciones de 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. 378).

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.

370

Page 379: Amazon EMR - Guía de administración

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 maestro en un clústerdiferente (p. 375).

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.

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 dominios con un KDC de MIT externo o un KDC en otroclúster de Amazon EMR.

371

Page 380: Amazon EMR - Guía de administración

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

372

Page 381: Amazon EMR - Guía de administración

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 versionesposteriores.

• KDC externo: MIT KDC (p. 373)• KDC externo: nodo maestro en un clúster diferente (p. 375)• KDC externo: clúster de KDC en un clúster diferente con confianza entre dominios de Active

Directory (p. 376)

KDC externo: MIT KDC

Esta configuración permite que uno o varios clústeres de EMR utilicen entidades principales definidas ymantenidos en un servidor de KDC de MIT.

373

Page 382: Amazon EMR - Guía de administración

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 de 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 configure elhardware 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 en los clústeres que utilizanKerberos y el KDC.

• La solución de problemas puede ser más difícil debido a las interdependencias.

374

Page 383: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

KDC externo: nodo maestro 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. 370) y Tutorial: Configure una confianza entre ámbitoscon un dominio de Active Directory (p. 390).

375

Page 384: Amazon EMR - Guía de administración

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: clúster de KDC en un clúster diferente con confianza entre dominios de ActiveDirectory

En esta configuración, primero se crea un clúster con un KDC dedicado del clúster que tiene unarelación de confianza entre ámbitos unidireccional con Active Directory. Para ver un tutorial detallado,consulte Tutorial: Configure una confianza entre ámbitos con un dominio de Active Directory (p. 390).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 de clúster externo con confianzaentre dominios de Active Directory (p. 384). Esto permite a cada clúster de Amazon EMR que utiliza elKDC externo autenticar entidades principales definidas y mantenidas en un dominio de Microsoft ActiveDirectory.

376

Page 385: Amazon EMR - Guía de administración

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.

377

Page 386: Amazon EMR - Guía de administración

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 de 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: Crear 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, laAWS CLIo 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 Utilizar configuraciones de seguridad para configurar la seguridad del clúster (p. 276).Para obtener más información acerca de las propiedades de Kerberos en una configuración de seguridad,consulte Configuración de Kerberos para configuraciones de seguridad (p. 379).

Paso 2: Creación de un clúster y especifique los atributos de Kerberos específicosdel clú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 utiliza la consola de Amazon EMR, solo están disponibles lasopciones de Kerberos compatibles con la configuración de seguridad especificada. Cuando utiliza elAWSCLIo 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. 381).

378

Page 387: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Paso 3: Configuración del 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 uncontrolador 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, consulteConfiguración de un clúster para usuarios HDFS autenticados por Kerberos y conexiones SSH (p. 384).

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 HDFS autenticados por Kerberos y conexiones SSH (p. 384).

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 configuraciones de seguridad

Puede crear una configuración de seguridad que especifica Kerberos atributos utilizando la consola deAmazon EMR, elAWS CLIo la API de EMR. La configuración de seguridad también pueden contener otrasopciones de seguridad, como, por ejemplo, el cifrado. Para obtener más información, consulte Creación deuna configuración de seguridad (p. 276).

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 medianteelAWS CLI (p. 288) o Ejemplos de configuración (p. 382).

Parámetro Descripción

Kerberos Especifica que Kerberos está habilitado para clústeresque utilizan esta configuración de seguridad. Si un clústerutiliza esta configuración de seguridad, el clúster tambiéndebe tener especificada la configuración de Kerberos o seproduce un error.

Proveedor KDC dedicado del clúster Especifica que Amazon EMR crea un KDC en el nodomaestro de cualquier clúster que utilice esta configuraciónde seguridad. Especifique el nombre de dominio y lacontraseña de administrador de KDC al crear el clúster.

Puede hacer referencia a este KDC desde otros clústeres,si es necesario. Cree esos clústeres utilizando una

379

Page 388: Amazon EMR - Guía de administración

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 dominio y la contraseñade administrador de KDC que especifique para el KDCdedicado al clúster.

KDC externo Solo disponible con Amazon EMR 5.20.0 y versionesposteriores. Especifica que los clústeres que utilizan estaconfiguración de seguridad autentican los principalesKerberos mediante un servidor KDC fuera del clúster. Nose crea un KDC en el clúster. Al crear el clúster, especificael nombre de dominio y la contraseña de administrador deKDC para el KDC externo.

Lifetime ticket Opcional. Especifica el periodo de validez para un vale deKerberos generado por el KDC en clústeres que utilizanesta 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 queejecutar.kinitdesde la línea de comandos del nodoprincipal para la renovación tras la expiración de un vale.

Relación de confianza entre ámbitos Especifica una confianza entre dominios entre un KDCdedicado a clústeres en clústeres que utilizan estaconfiguración de seguridad y un KDC en un dominioKerberos diferente.

Los principales (normalmente usuarios) de otro reino seautentican en clústeres que utilizan esta configuración.Se requiere configuración adicional en el otro reino deKerberos. Para obtener más información, consulte Tutorial:Configure una confianza entre ámbitos con un dominio deActive Directory (p. 390).

Ámbito Especifica el nombre de ámbito de Kerberos del otroámbito en la relación de confianza. Por convención,los nombres de dominios de Kerberos son los mismosque el nombre de dominio, pero con todas las letras enmayúsculas.

Dominio Especifica el nombre de dominio del otro ámbito en larelación de confianza.

Propiedadesde confianzaentredominios

Servidor de administrador 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).

380

Page 389: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Parámetro Descripción

Servidor 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 servidorde administración suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos parautilizarse.

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 externo Especifica que el clúster utiliza KDC externo de clústeres.

Servidor de administrador 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 KDC Especifica el nombre de dominio completo (FQDN) delservidor KDC externo. El servidor de KDC y el servidorde administración suelen ejecutarse en el mismo equipocon el mismo FQDN, pero utilizan puertos distintos parautilizarse.

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.

Dominiode ActiveDirectory

Especifica el nombre de ámbito de Kerberos del dominiode Active Directory. Por convención, los nombres dedominios de Kerberos suelen coincidir con el nombre dedominio, pero con todas las letras en mayúsculas.

Dominiode ActiveDirectory

Especifica el nombre de dominio de Active Directory.

Propiedadesde KDCexternas

Propiedadesdeintegraciónde 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,AWSCLIo la API de EMR.

381

Page 390: Amazon EMR - Guía de administración

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 configuración (p. 382).

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 permiso 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: Agregar cuentas de usuario aldominio del clúster de EMR” (p. 392).

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 “Paso 3:Agregar cuentas de usuario al dominio del clústerde EMR” (p. 392).

Ejemplos de configuración

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 HDFS autenticados por Kerberos y conexionesSSH (p. 384).

Crear configuración de seguridad

aws emr create-security-configuration --name LocalKDCSecurityConfig \--security-configuration '{"AuthenticationConfiguration": \

382

Page 391: Amazon EMR - Guía de administración

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.36.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 al clúster con confianza entre dominios 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: Configure una confianza entre ámbitos con un dominio de Active Directory (p. 390).

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.36.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 HDFS autenticados por Kerberos y conexiones SSH (p. 384).

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.36.0 \

383

Page 392: Amazon EMR - Guía de administración

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 de clúster externo con confianza entre dominios de Active Directory

Los siguientes comandos crean un clúster sin KDC. El clúster hace referencia a un KDC dedicadodel clúster que se ejecuta en el nodo principal de otro clúster para autenticar entidades principales.Esa KDC posee una relación de confianza entre ámbitos con un controlador de dominio de ActiveDirectory. Es necesario realizar una configuración adicional en el nodo principal con el KDC. Para obtenermás información, consulte Tutorial: Configure una confianza entre ámbitos con un dominio de ActiveDirectory (p. 390).

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", \"AdServer":"ad.domain.com"}}}}}'

Crear un clúster

aws emr create-cluster --release-label emr-5.36.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 HDFS autenticados por Kerberos yconexiones SSH

Amazon EMR crea clientes de usuario autenticados por Kerberos para las aplicaciones que se ejecutanen el clúster; por ejemplo, elhadoopusuario,sparkusuario y otros. También puede añadir usuariosautenticados a los procesos del clúster mediante Kerberos. Luego, los usuarios autenticados puedenconectarse al clúster con sus credenciales de Kerberos y trabajar con aplicaciones. Para que un usuariopueda autenticarse 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 en elKDC 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 Linux y directores Kerberos al nodo maestro

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

384

Page 393: Amazon EMR - Guía de administración

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. 371) y KDC externo: clúster de KDC en unclúster diferente con confianza entre dominios de Active Directory (p. 376).

Important

El KDC, junto con la base de datos de los principales, se pierde cuando finaliza el nodo maestroporque el nodo maestro utiliza almacenamiento efímero. Si crea usuarios para conexiones SSH,le recomendamos que establezca una confianza entre dominios con un KDC externo configuradopara alta disponibilidad. Alternativamente, si crea usuarios para conexiones SSH mediantecuentas de usuario de Linux, automatice el proceso de creación de cuentas mediante acciones dearranque y scripts para que pueda repetirse 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 Connect al nodo maestro utilizando SSH (p. 519).

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-2AL4XXXXXX5T9> \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,\Args=["s3://DOC-EXAMPLE-BUCKET/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_configsudo systemctl restart sshd

385

Page 394: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Adición de directorios HDFS de usuario

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, consulteConnect al nodo maestro utilizando SSH (p. 519).

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 <j-2AL4XXXXXX5T9> \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://DOC-EXAMPLE-BUCKET/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 systemctl restart sshd

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. Porejemplo, 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 una

386

Page 395: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

implementació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 Connect al clúster (p. 517).

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. 386). Los clientes SSH también deben utilizar GSSAPI.

En los siguientes ejemplos, paraMasterPublicDNSutilizar el valor que apareceparaDNS público maestroen elResumendel panel de detalles del clúster; porejemplo,ec2-11-222-33-44.compute-1.amazonaws.com.

Requisito previo para krb5.conf (no 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 key pair de EC2 y el valorpredeterminado.hadoopusuario, por ejemplo,hadoop@MasterPublicDNS. Para obtenerinstrucciones detalladas, consulte Connect al clúster (p. 517).

2. Desde el nodo principal, copie el contenido del archivo /etc/krb5.conf. Para obtener másinformación, consulte Connect al clúster (p. 517).

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: Los usuarios de Linux

La opción -K especifica la autenticación GSSAPI.

ssh -K user1@MasterPublicDNS

Ejemplo: Usuarios de Windows (PuTTY)

Asegúrese de que la opción de autenticación GSSAPI de la sesión está habilitada, tal y como semuestra:

387

Page 396: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Tutorial: Configuración de un KDC dedicado del clústerEste tema le guía a través de la creación de un clúster con un clúster dedicadocentro de distribuciónde claves (KDC), añadiendo manualmente cuentas de usuario de Linux a todos los nodos del clúster,añadiendo entidades principales de Kerberos al KDC en el nodo principal y asegurándose de que losequipos cliente tienen instalado un cliente de Kerberos.

Para obtener más información sobre la compatibilidad de Amazon EMR para Kerberos y KDC, así comoenlaces a la documentación de MIT Kerberos, consulteUso de la autenticación Kerberos (p. 368).

Paso 1: Creación del clúster Kerberized

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 referenciaa la configuración de seguridad que se ha creado anteriormente, MyKerberosConfig. También hace

388

Page 397: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

referencia a un sencillo guión,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.36.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://DOC-EXAMPLE-BUCKET/createlinuxusers.sh

El siguiente código muestra el contenido delcreatelinuxusers.shscript, que añade user1, user2 yuser3 a 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: Agregue principios al KDC, cree directorios de usuario HDFS y configureSSH

En 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-2AL4XXXXXX5T9> --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myregion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://DOC-EXAMPLE-BUCKET/configurekdc.sh"]

El siguiente código muestra el contenido delconfigurekdc.shscript.

#!/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}]}

389

Page 398: Amazon EMR - Guía de administración

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 systemctl restart sshd

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. 386).

Tutorial: Configure una confianza entre ámbitos con un dominiode 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.La dedicada al clústercentro de distribución de claves (KDC)establece una relación de confianza con otroKDC mediante unprincipal de todos los dominiosque existe en ambos KDC. El nombre y la contraseña dela entidad principal 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 de clúster externo con confianzaentre dominios de Active Directory (p. 384).

Para obtener más información sobre la compatibilidad de Amazon EMR para Kerberos y KDC, así comoenlaces a la documentación de MIT Kerberos, consulteUso de la autenticación Kerberos (p. 368).

Important

Amazon EMR no admite las relaciones de confianza entre ámbitos conAWS Directory Service forMicrosoft Active Directory.

Paso 1: Configuración de la VPC y la subred (p. 391)

Paso 2: Inicie e instale el controlador de dominio de Active Directory (p. 392)

Paso 3: Agregar cuentas de usuario al dominio del clúster de EMR (p. 392)

Paso 4: Configurar una confianza entrante en el controlador de dominio de Active Directory (p. 392)

Paso 5: Utilice un conjunto de opciones DHCP para especificar el controlador de dominio de ActiveDirectory como servidor DNS de VPC (p. 393)

390

Page 399: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

Paso 6: Lanzamiento de un clúster de EMR Kerbered (p. 393)

Paso 7: Crear usuarios HDFS y establecer permisos en el clúster para cuentas de usuario de ActiveDirectory (p. 394)

Paso 1: Configuración de 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: Utilice un conjunto de opciones DHCP para especificar elcontrolador de dominio de Active Directory como servidor DNS de VPC (p. 393).

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, puede hacer referencia a la confianza mediantela dirección IP del controlador de dominio de Active Directory. Sin embargo, debe añadir manualmentelas cuentas de usuario de Linux, añadir las correspondientes entidades principales al KDC dedicado delclú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, consultePaso 1:Creación de la VPCen laGuí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.AWSasignaNombre de host DNSbasándose en las direcciones IPv4 con un métodoque, de usarse direcciones IP más largas, podría dar como resultado nombres de DNS demás de 15 caracteres. Active Directory tiene un límite de 15 caracteres para registrar losnombres de los equipos que se incorporan, y trunca los nombres que son más largos, lo quepuede provocar errores impredecibles.

2. Elimine el conjunto de opciones de DHCP predeterminado asignado a la VPC. Para obtener másinformación, consulteModificació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, consulteActualización de la compatibilidad de DNS para su VPC.

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, consulteCreación de una tabla deruteo personalizada.

391

Page 400: Amazon EMR - Guía de administración

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, consulteModificar elatributo 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, consulteAsignar una dirección IPv4 pública durante ellanzamiento 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: Inicie e instale el controlador de dominio de Active Directory

1. Lance una instancia de EC2 basada en la AMI base de Microsoft Windows Server 2016.Le recomendamos un tipo de instancia m4.xlarge o mejor. Para obtener más información,consulteLanzamiento de unaAWS Marketplaceejemploen laGuí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: Lanzamiento de un clúster de EMR Kerbered (p. 393). 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, consulteConexióncon la instancia de Windowsen laGuía del usuario de Amazon EC2 para instancias de Windows.

4. iniciaAdministrador de servidorespara instalar y configurar el rol de servicios de dominio de ActiveDirectory en el servidor. Promocione el servidor a controlador de dominio y asígnele un nombre dedominio (el ejemplo que utilizamos aquí es ad.domain.com). Anote el nombre de dominio porque lonecesitará más adelante al crear el clúster y la configuración de seguridad de EMR. Si es la primera vezque configura Active Directory, puede seguir las instrucciones deCómo configurar Active Directory (AD)en Windows Server 2016.

La instancia se reiniciará cuando termine.

Paso 3: Agregar cuentas de usuario al dominio del clúster de EMRRealice una conexión RDP al controlador de dominio de Active Directory para crear cuentas de usuarioen Usuarios y equipos de Active Directory para cada usuario del clúster. Para obtener instrucciones,consulteCrear una cuenta de usuario en los usuarios y equipos de Active Directory. Anote el User logonname (Nombre de inicio de sesión de usuario) de cada usuario. Necesitas estas versiones posteriores alconfigurar 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 utiliza para unirse a instancias de clústercon el dominio. Solo debe especificar esta cuenta y su contraseña Paso 6: Lanzamiento de un clústerde EMR Kerbered (p. 393). 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, consulteDelegación de privilegios de vinculación deen laAWS DirectoryServiceGuía de administración.

Paso 4: Configurar una confianza entrante en el controlador de dominio de ActiveDirectoryLos comandos del ejemplo siguiente crean una relación de confianza en Active Directory, que esuna confianza de ámbito, entrante, unidireccional y no transitiva con el KDC dedicado del clúster. Elejemplo que utilizamos para el ámbito del clúster es EC2.INTERNAL. Reemplace elKDC-FQDNconDNSpúbliconombre que aparece para el nodo maestro de Amazon EMR que aloja el KDC. El parámetro

392

Page 401: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

passwordt especifica la cross-realm principal password (contraseña de la entidad principal de confianzaentre ámbitos), que se especifica junto con el realm (ámbito) del clúster al crear un clúster. El nombre delámbito se deriva del nombre de dominio predeterminado en us-east-1 para el clúster. El Domain es eldominio de Active Directory en el que va a crear la confianza, que es en minúsculas por convención. Elejemplo utiliza 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: Utilice un conjunto de opciones DHCP para especificar el controlador dedominio de Active Directory como servidor DNS de VPC

Ahora que está configurado el controlador de dominio de Active Directory, debe configurar la VPC parautilizarla como servidor de nombres de dominio para la resolución de nombres en la VPC. Para ello,asocie un conjunto de opciones de DHCP. Especifique laDomain name (Nombre del dominio)comonombre de dominio de su clúster, por ejemplo,ec2.internalsi el clúster se encuentra en us-east-1oregion.compute.internalpara otras regiones. En Domain name servers (Servidores de nombres dedominio), debe especificar la dirección IP del controlador de dominio de Active Directory (al que se debetener 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, consulteCambio de los conjuntos deopciones de DHCP.

Paso 6: Lanzamiento de un clúster de EMR Kerbered

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: Inicie einstale el controlador de dominio de Active Directory (p. 392).

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: Configuración de la VPC y la subred (p. 391). Utilizamos step1-subnet en elejemplo.

393

Page 402: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de la autenticación Kerberos

• UsarAdditionalMasterSecurityGroupsyAdditionalSlaveSecurityGroupsdel--ec2-attributesopción para especificar que el grupo de seguridad asociado al controlador de dominiode AD desdePaso 2: Inicie e instale el controlador de dominio de Active Directory (p. 392)estáasociado al nodo maestro del clúster, así como a los nodos básicos 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 confianza entrante en el controlador de dominio de ActiveDirectory (p. 392).

• 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: Agregar cuentas de usuario aldominio del clúster de EMR (p. 392).

En el siguiente ejemplo, se lanza un clúster 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 HDFS y establecer permisos en el clúster para cuentas deusuario de Active Directory

Cuando 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 Utilizar un key pair de Amazon EC2 para las credenciales SSH (p. 368).

Ejecute el siguiente comando para añadir un paso al clúster que ejecuta un script, AddHDFSUsers.sh.

aws emr add-steps --cluster-id <j-2AL4XXXXXX5T9> \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\

394

Page 403: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIntegración de Amazon EMR conAWS Lake Formation

Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://DOC-EXAMPLE-BUCKET/AddHDFSUsers.sh"]

El contenido del archivo AddHDFSUsers.sh es el siguiente.

#!/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 asignados a grupos Hadoop

Amazon EMR utiliza System Services Daemon (SSD) para mapear grupos de Active Directory a grupos deHadoop. Para confirmar los mapeos de grupos, después de iniciar sesión en el nodo principal tal y comose describe en Uso de SSH para conectarse a clústeres que utilizan Kerberos (p. 386), puede utilizar elcomando hdfs groups para confirmar que los grupos de Active Directory a los que pertenece su cuentade Active Directory se han mapeado a los grupos de Hadoop del usuario de Hadoop correspondiente enel clúster. También puede comprobar los mapeos de grupos de otros usuarios especificando uno o variosnombres 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 conAWS LakeFormation

A partir de Amazon EMR 5.31.0, puede lanzar un clúster que se integre conAWS Lake Formation.AWSLake Formationes un servicio administrado que le ayuda a detectar, catalogar, limpiar y proteger datosen un lago de datos de Amazon Simple Storage Service (Amazon S3). Para obtener más información,consulte AWS Lake Formation.

Esta sección proporciona información general sobre los conceptos de la integración de Amazon EMR conLake Formation. También incluye los requisitos previos y los pasos necesarios para lanzar un clúster deAmazon EMR integrado con Lake Formation.

Integración de Amazon EMR conAWS Lake Formationproporciona los siguientes beneficios principales:

• Acceso detallado a nivel de columna a bases de datos y tablas en laAWSGlue Data Catalog.• Inicio de sesión único federado en EMR Notebooks o Apache Zeppelin desde sistemas de identidad

empresariales compatibles con el lenguaje Security Assertion Markup Language (SAML) 2.0.

Important

Si actualmente utiliza clústeres EMR con Lake Formation en modo beta, debes actualizar losclústeres a la versión 5.31.0 de EMR o superior para continuar utilizando esta función. Losclústeres con una versión EMR inferior a 5.31.0 dejarán de funcionar con Lake Formation.

395

Page 404: Amazon EMR - Guía de administración

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

Note

La integración de EMR con Lake Formation todavía no está disponible para la serie EMR 6.x yactualmente no admite el uso deAWS Single Sign-Onpara el inicio de sesión único federado.

Temas• Descripción general de la integración de Amazon EMR con Lake Formation (p. 396)• Aplicaciones, características y limitaciones (p. 401)• Antes de empezar (p. 403)• Lanzamiento de un clúster de Amazon EMR con Lake Formation (p. 413)

Descripción general de la integración de Amazon EMRcon Lake FormationCuando integra Amazon EMR conAWS Lake Formation, habilita la autenticación basada en SAMLmediante credenciales corporativas para bloc de EMR Notebooks y Apache Zeppelin, y puede aplicar uncontrol de acceso minucioso a nivel de columna a los data lakes en función de las políticas que definaenAWS Lake Formation.

RequisitosSu organización debe cumplir los siguientes requisitos antes de integrar Amazon EMR y Lake Formation:

• Administrar las identidades corporativas con un proveedor de identidad (IdP) existente basado en SAML,como los servicios de federación de Active Directory Federation Services (AD FS). Para obtener másinformación, consulte Configuración de proveedores de terceros para SAML (p. 407).

• UsarAWSGlue Data Catalog como almacén de metadatos.• Defina y administre los permisos en Lake Formation para acceder a las bases de datos, tablas y

columnas enAWSGlue Data Catalog. Para obtener más información, consulte AWS Lake Formation.• Utilice EMR Notebooks o Apache Zeppelin para acceder a los datos administrados porAWSFormación

de Glue y lago.

Pasos de integraciónPara integrar Amazon EMR con Lake Formation, deberá seguir los siguientes pasos:

1. Complete tareas de requisitos previos, incluida la configuración del proveedor de identidades, lacreación de roles de IAM para Lake Formation, la configuración de seguridad y la preparación de losrecursos de Lake Formation. Para obtener más información acerca de los requisitos previos para laintegración de Amazon EMR y Lake Formation, consulteAntes de empezar (p. 403).

2. Inicie un clúster con los nuevos roles y la configuración de seguridad que creó para Lake Formation.Para obtener más información, consulte Lanzamiento de un clúster de Amazon EMR con LakeFormation (p. 413).

3. Actualice la devolución de llamada o la URL de inicio de sesión único con su IdP para redirigir alos usuarios tras la autenticación SAML correcta al nodo principal del clúster. Para obtener másinformación, consulte Actualice la devolución de llamada o la ULR de inicio de sesión único con elproveedor de identidades (p. 414).

396

Page 405: Amazon EMR - Guía de administración

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

Funcionamiento del acceso a los datos en Lake FormationDespués de integrar Amazon EMR con Lake Formation, los usuarios se autentican a través de la páginade inicio de sesión del proveedor de identidad (IdP) de su organización para acceder a los EMR Notebookso Zeppelin. A continuación, Lake Formation proporciona acceso a los datos mediante credencialestemporales para EMR. Este proceso se denomina de venta credenciales. Para obtener más información,consulte AWS Lake Formation.

A continuación se presenta un resumen de alto nivel de cómo EMR obtiene acceso a los datos protegidospor las políticas de seguridad de Lake Formation:

1. Un usuario envía una consulta en Amazon EMR sobre los datos de Lake Formation.2. Amazon EMR solicita credenciales temporales deAWS Lake Formationpara acceder a ese usuario.3. Lake Formation devuelve credenciales temporales, lo que permite el acceso a los datos.4. Amazon EMR envía la solicitud de la consulta para recuperar datos de Amazon S3.5. Amazon EMR recibe los datos de Amazon S3 y, a continuación, filtra y devuelve los resultados en

función de los permisos de usuario definidos en Lake Formation.

Para obtener información detallada acerca de cómo funciona la autenticación de usuarios y el acceso a losdatos, consulteComponentes de Amazon EMR (p. 400)yArquitectura del inicio de sesión único habilitadopara SAML y el control de acceso minucioso (p. 400).

Para obtener más información acerca de cómo agregar usuarios y grupos a las políticas de LakeFormation, consulteConcesión de permisos de Data Catalog.

Temas• Roles de IAM para Lake Formation (p. 398)• Términos y conceptos (p. 399)• Componentes de Amazon EMR (p. 400)• Arquitectura del inicio de sesión único habilitado para SAML y el control de acceso

minucioso (p. 400)

397

Page 406: Amazon EMR - Guía de administración

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

Roles de IAM para Lake FormationIntegración entre Amazon EMR yAWS Lake Formationse basa en tres roles clave que debe crear antes delanzar el clúster:

1. Un perfil de instancia de Amazon EC2 personalizado para Amazon EMR.2. Un rol de IAM para uso de Lake Formation para federación de identidades.3. Un papel de IAM para la formación no lacuosaAWSServicios de .

Esta sección proporciona información general sobre estos roles y las políticas que debe incluir en cada rol.Para obtener información sobre la creación de estos roles, consulteAntes de empezar (p. 403).

Perfil de instancia EC2

Amazon EMR utiliza roles de servicio de IAM para realizar acciones en su nombre para aprovisionar yadministrar clústeres. El rol de servicio para las instancias EC2 del clúster, también llamado el perfil deinstancia EC2 para Amazon EMR, es un tipo especial de rol de servicio asignado a cada instancia EC2 enun clúster durante el lanzamiento.

Para definir permisos para que los clústeres de EMR interactúen con Lake Formation yotrosAWSservicios, debe definir un perfil de instancia de EC2 personalizado para utilizar en lugar delaEMR_EC2_DefaultRoleal lanzar el clúster de.

Para obtener más información, consulteFunción de servicio para instancias EC2 de clúster (perfil deinstancia EC2)yPersonalizar roles de IAM.

El rol de IAM para Lake Formation

El rol de IAM para Lake Formation define qué privilegios tendrá un usuario que inicia sesión a través desu IdP y qué proveedor de identidad (IdP) puede asumir este rol. El papelMaximum CLI/API sessiondurationdefine el tiempo de espera de la sesión para acceder a los EMR Notebooks 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:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" }}

398

Page 407: Amazon EMR - Guía de administración

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

Note

No conceda permisos a este rol para acceder a los buckets de Amazon S3 administradosporAWSGlue. 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 de identidadde IAM asumir el rol. Reemplazaraccount-idcon susAWSID de la cuenta de. ReemplaceelIAM_identity_provider_namecon el nombre de su proveedor de identidad de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name" }, "Action": "sts:AssumeRoleWithSAML" } ]}

Función de IAM para la formación no lacuosaAWSServicios de

El rol de IAM paraAWSLos servicios definen los permisos que tiene el clúster de Amazon EMR al obteneracceso a los que no pertenecen aAWS Lake FormationServicios de . Por ejemplo, si las tareas que seejecutan en el clúster precisan acceder a Amazon DynamoDB o a cualquier otroAWSservicios, la funciónde IAM paraAWSLos servicios deben tener políticas necesarias para acceder a esos servicios.

Al configurar las políticas para este rol, asegúrese de que este no tenga acceso a las siguientesoperaciones de la API:

• CualquierAWSOperaciones de API 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 porAWSGlue. El clúster tiene que acceder

a los datos a través de Lake Formation utilizando Spark SQL y no debe hacerlo directamente a través deAmazon S3.

Términos y conceptosEsta sección proporciona definiciones de conceptos y términos que se utilizan en el contexto de laintegración de Amazon EMR conAWS Lake Formation.

Autenticación

Proceso de establecimiento de la identidad de un usuario. Mediante la integración de Amazon EMR yLake Formation, los usuarios pueden utilizar sus credenciales corporativas para iniciar sesión en EMRNotebooks y Apache Zeppelin.

Autorización

El proceso de permitir qué acciones puede realizar un usuario determinado sobre un recurso. Al integrar unclúster de Amazon EMR con Lake Formation, se definen políticas que autorizan el acceso de los usuarios

399

Page 408: Amazon EMR - Guía de administración

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

a bases de datos, tablas y columnas. Este proceso garantiza que los usuarios solo puedan consultar yanalizar las tablas o columnas para las que están autorizados.

Federación

La creación de una relación de confianza entre un proveedor de identidad externo (IdP) yAWS Identityand Access Management(IAM). Los usuarios pueden iniciar sesión a través de un proveedor de identidad(IdP) compatible con el lenguaje Security Assertion Markup Language (SAML) 2.0, como Microsoft ActiveDirectory Federation Services. Para obtener más información, consulte Configuración de proveedores deterceros para SAML (p. 407). Cuando se utiliza SAML 2.0 para configurar una relación de confianza entreun IdP e IAM,AWSasigna al usuario un rol de IAM. El usuario también recibe credenciales temporales quele permiten tener acceso a los recursos de AWS Lake Formation.

Política de confianza

Un documento deJSONformato que define a quién se le permite asumir un rol de IAM. El documento seredacta según las reglas del lenguaje de la política de IAM.

Política de permisos

Un documento de permisos enJSONque define las acciones y los recursos a los que tiene acceso un rol deIAM. El documento se redacta según las reglas del lenguaje de la política de IAM.

Entidad principal

Una entidad que puede acceder a recursos protegidos por políticas de Lake Formation y ejecutar consultasen Amazon EMR. Los directores son usuarios federados.

Componentes de Amazon EMRAmazon EMR permite un control de acceso detallado con Lake Formation a través de 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 utilizaLake Formation yAWSGlue API para recuperar credenciales temporales yAWSGlue los metadatosdel catálogo de datos. El agente secreto se ejecuta como el usuario emrsecretagent y escriberegistros en el directorio /emr/secretagent/log. El proceso recurre a un conjunto específico dereglas 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 solicitudes de acceso a los datos. Después, autorizalas solicitudes en función de las credenciales temporales y las políticas de control de acceso a las tablasdistribuidas por el agente secreto. El servidor de registros lee los datos de Amazon S3 y devuelve losdatos a nivel de columna a los que el usuario tiene autorización para acceder. El servidor de registros seejecuta en cada nodo del clúster como usuario emr_record_server y escribe registros en el directorio/var/log/emr-record-server.

Arquitectura del inicio de sesión único habilitado para SAML y elcontrol 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.

400

Page 409: Amazon EMR - Guía de administración

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

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.5. El agente proxy solicita las credenciales específicas de seguridad temporales del usuario de AWS Lake

Formation 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 un trabajo 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 basándose en 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 EMR Notebooks o la interfaz Zeppelin através del navegador sin tener que proporcionar ningúnAWSCredenciales de .

Aplicaciones, características y limitacionesAplicaciones compatiblesIntegración entre Amazon EMR yAWS Lake Formationadmite las aplicaciones siguientes:

• Cuadernos de EMR• Apache Zeppelin

401

Page 410: Amazon EMR - Guía de administración

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

• Apache Spark a través de EMR Notebooks

Important

Actualmente no se admiten otras aplicaciones. Para garantizar la seguridad del clúster, no instaleaplicaciones que no aparezcan en esta lista.

Características admitidasLas siguientes características de Amazon EMR pueden utilizarse con EMR y Lake Formation:

• Cifrado en reposo y en tránsito• Autenticación Kerberos mediante un centro de distribución de claves dedicado a clúster (KDC) sin

confianza entre dominios• Grupos de instancias, flotas de instancias e instancias de spot• Reconfiguración de aplicaciones en un clúster en ejecución• Monitoreo del acceso a datosAWS CloudTrail

Note

AWS CloudTraillas entradas se crean cuando los usuarios de bloc de notas acceden a los datosprotegidos por Lake Formation con Spark SQL. Cada CloudTrail muestra el nombre de ActiveDirectory del usuario en ellakeFormationPrincipalpropiedad.

• Cifrado del lado del servidor (SSE) de EMRFSNote

La configuración de cifrado de Amazon EMR rige la SSE. Para obtener más información,consulte Opciones de cifrado (p. 297).

Las siguientes características de EMR no funcionan actualmente con la integración de Lake Formation:

• Pasos• Varios nodos maestros• Vista consistente de EMRFS• Cifrado del lado del cliente (CSE) de EMRFS

LimitacionesTenga en cuenta las siguientes limitaciones al utilizar Amazon EMR conAWS Lake Formation:

• Amazon EMR con Lake Formation está disponible actualmente en 16AWSRegiones: EE.UU. Este(Ohio y Norte de Virginia), EE.UU. Oeste (Norte de California y Oregón), Asia Pacífico (Mumbai, Seúl,Singapur, Sídney y Tokio), Canadá (Central), Europa (Fráncfort, Irlanda, Londres, París y Estocolmo),América del Sur (São Paulo).

• Amazon EMR con Lake Formation no funciona actualmente conAWS Single Sign-On(SSO).• Debe utilizar un rol de IAM definido por el usuario en lugar de laRol vinculado al servicio de Lake

Formationpara registrar las ubicaciones de datos utilizadas por los clústeres de Amazon EMR con LakeFormation. Lake Formation no admite el uso de su función vinculada a servicios cuando se integracon EMR. Para obtener información sobre la creación de un rol definido por el usuario para registrarubicaciones de datos con Lake Formation, consulteRequisitos para los roles utilizados para registrarubicaciones.

• 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, en

402

Page 411: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

determinadas 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 formatode almacenamiento Avro o un serializador/deserializador (SerDe) personalizado en el que el esquemade tabla se define en las propiedades de la tabla junto con el SerDe definición. Cuando utilice AmazonEMR y 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.

• En clústeres habilitados para Lake Formation, los usuarios solo pueden acceder a los datosadministrados porAWSGlue Data Catalog. Los usuarios no pueden acceder a los datos administradosfuera deAWSGlue o Lake Formation. Se puede acceder a los datos de otras fuentes medianteoperaciones que no sean de Spark SQL si es la función de IAM para otrasAWSLos servicios elegidosdurante la implementación del clúster cuentan con políticas establecidas que permiten al clúster accedera dichas fuentes de datos.

Por ejemplo, podría tener dos buckets de Amazon S3 y una tabla de Amazon DynamoDB a la que deseaque tenga acceso la tarea de Spark, además de un conjunto de tablas de Lake Formation. En este caso,podría crear un rol que pueda acceder a los dos buckets de Amazon S3 y a la tabla Amazon DynamoDBy utilizarlo para elIAM role for other AWS servicesal lanzar el clúster de.

• El envío de tareas de Spark se debe realizar a través de EMR Notebooks, Zeppelin o Livy. Trabajos deSpark enviados a través despark-submitno funcionará con Lake Formation en este momento.

• Actualmente, no se admite el uso de Spark SQL para acceder a las tablas de Lake Formation queutilizan el tipo de datos Hive Map.

• Actualmente, no hay ningún cierre de sesión central disponible para los EMR Notebooks y Zeppelin.• La alternativa de Spark a HDFS para la capacidad de recopilación de estadísticas no se admite en esta

versió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.

• La confianza entre dominios para la autenticación Kerberos no se admite actualmente.

Antes de empezarAntes de lanzar un clúster de Amazon EMR conAWS Lake Formation, realice las siguientes tareas:

1. Configure una relación de confianza entre su proveedor de identidad yAWSpara habilitar la federaciónbasada en SAML 2.0 y crear roles de IAM para Lake Formation. Para obtener instrucciones, consulteConfigura una relación de confianza entre su IdP y Lake Formation (p. 404).

2. Cree un nuevo perfil de instancia de Amazon EC2. Para obtener instrucciones, consulte Creación de unperfil de instancia de Amazon EC2 personalizado (p. 409).

3. Configure las características de seguridad de Amazon EMR. Para obtener instrucciones, consulteConfigure la seguridad de EMR (p. 411).

También debe completar lo siguienteAWS Lake Formationtareas cubiertas en elAWS Lake FormationGuíapara desarrolladores:

1. Permita el filtrado de datos para data lakes en Amazon EMR mediante la suscripción. Puede inscribirseantes o después de lanzar un clúster de Amazon EMR con Lake Formation, pero debe permitirexplícitamente el filtrado de datos para que Amazon EMR pueda acceder a los datos de las ubicacionesde Amazon S3 registradas en Lake Formation. Para obtener más información e instrucciones,consultePermitir el filtrado de datos en Amazon EMRen laLake Formation.

403

Page 412: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

2. Cree un rol de servicio definido por el usuario para Lake Formation para registrar las ubicaciones dedatos a las que Amazon EMR tendrá acceso. Para obtener instrucciones, consulteRequisitos para losroles utilizados para registrar ubicaciones.

Warning

Debe utilizar un rol definido por el usuario y no elRol vinculado al servicio de LakeFormationcuando registra ubicaciones de datos. Lake Formation no admite el uso de su funciónvinculada a servicios cuando se integra con EMR.

3. Configurar y controlar el acceso de los usuarios a los recursos de mediante las políticas de LakeFormation en laAWS Lake Formationconsola de . Para obtener más información, consultePermisos deLake Formation.

Temas• Configura una relación de confianza entre su IdP y Lake Formation (p. 404)• Configuración de proveedores de terceros para SAML (p. 407)• Creación de un perfil de instancia de Amazon EC2 personalizado (p. 409)• Configure la seguridad de EMR (p. 411)

Configura una relación de confianza entre su IdP y LakeFormationPara establecer una relación de confianza entre el proveedor de identidad (IdP) de su organización yAWS,debe hacer lo siguiente:

• Informe a su IdP sobreAWScomo proveedor de servicios.• CuéntaleAWSacerca de su IdP externo al crear un proveedor de identidad de IAM y un rol para el

acceso SAML enAWS Identity and Access Management.

Este proceso se denomina adición de unconfiar en la confianza de la relación. Para obtener másinformación sobre cómo confiar en las relaciones de confianza de las partes, consulteConfiguración deuna relación de confianza para usuario autenticado y agregación de notificaciones en el proveedor deidentidades SAML 2.0en laAWS Identity and Access ManagementGuía del usuario de .

Para agregar confianza entre Lake Formation y su IdP

1. RegistrarAWScon el proveedor IdP. El proceso de registroAWScon su IdP depende del IdP que utilice.Para obtener más información sobre cómo hacerlo en Auth0, Microsoft Active Directory FederationServices (AD FS) y Okta, consulte Configuración de proveedores de terceros para SAML (p. 407).

2. Con su IdP, genere un archivo XML de metadatos que pueda describir su IdP como proveedor deidentidad de IAM enAWS. El archivo XML de metadatos del IdP debe incluir los siguientes elementos:

• Nombre del emisor• Fecha de creación• Fecha de vencimiento• Llaves queAWSutilizará para validar las respuestas de autenticación (afirmaciones) de su

organización.

Cada IdP tiene una forma específica de exportar de forma sencilla estos metadatos. Para obtener másinformación, consulte la documentación de su IdP.

404

Page 413: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

Cargue el archivo XML de metadatos en un bucket de Amazon S3. Al lanzar un clúster que se integracon Lake Formation, especificará la ruta al bucket de S3.

3. Crear un proveedor de identidad SAML.

a. Inicie sesión en la AWS Management Console 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), CreateProvider (Crear proveedor).

c. En Provider Type (Tipo de, proveedor), seleccione Choose a provider type (Elegir un tipo deproveedor), 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. Crear un rol de IAM para Lake Formation.

a. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

b. En el panel de navegación, elija Roles, Create role.c. Elija el tipo de rol SAML 2.0 federation.d. En SAML Provider (Proveedor SAML), elija el proveedor para el rol.e. ElegirPermitir programática yAWSAcceso a Management Consolecrear un rol que pueda ser

asumido mediante programación y desde la consola.f. Revise la información de confianza SAML 2.0 y, a continuación, elijaSiguiente: Permisos.g. Cree la política de permisos del rol en función del ejemplo que aparece a continuación. Para

obtener más información sobre esta política de permisos, consulteRoles de IAM para LakeFormation (p. 398).

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GetMetadataAccess", "glue:GetUnfiltered*", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" }}

Note

No conceda permisos a este rol para acceder a los buckets de Amazon S3 administradosporAWSGlue. El usuario federado tiene que acceder a los datos a través de LakeFormation mediante Spark SQL y no debe hacerlo directamente a través de Amazon S3.

405

Page 414: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

h. Seleccione Next (Siguiente): Tags (Etiquetas).i. Seleccione Next (Siguiente): Consulte.j. En Role name (Nombre del rol), escriba el nombre del rol. Los nombres de rol deben ser únicos

en su cuenta de AWS.k. Revise el rol y, a continuación, seleccione Create role.l. Haga clic en la pestaña Roles y busque el nombre de rol creado en el último paso.m. Seleccione Trust relationships (Relaciones de confianza), y, a continuación, seleccione Edit trust

relationship (Editar relación de confianza).n. Anule el documento de política existente con la política de confianza de IAM Role for Lake

Formation especificada a continuación. Para obtener más información sobre esta política deconfianza, consulteRoles de IAM para Lake Formation (p. 398)sección.

Reemplazaraccount-idcon susAWSID de la cuenta de. ReemplaceelIAM_identity_provider_namecon el nombre de su proveedor de identidad de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name" }, "Action": "sts:AssumeRoleWithSAML" } ]}

o. ElegirActualización de la relación de confianza.5. Creación de un rol de IAM para otrosAWSServicios de . Para obtener más información, consulte

Función de IAM para la formación no lacuosaAWSServicios de (p. 399).6. En el IdP de su organización, debe configurar las aserciones SAML que asignen los usuarios de su

organización al IdP y al rol de IAM para Lake Formation que acaba de crear. Para ello, configure lostres elementos de atributo que se muestran en la siguiente tabla.

• Reemplazaraccount-idcon susAWSID de la cuenta de.• Reemplazariam_role_for_lake_formacióncon el nombre del rol de IAM para Lake Formation

que ha creado.• ReemplazarIAM_identity_provider_namecon el nombre del proveedor de identidad de IAM

que creó 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 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

406

Page 415: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

Elementos de atributos Valor

https://lakeformation.amazon.com/SAML/Attributes/Username

user_alias

Los pasos exactos para realizar esta asignación dependen del IdP que utilice. Para obtenerinstrucciones sobre cómo asignar a su IdP, consulteConfiguración de proveedores de terceros paraSAML (p. 407).

Para obtener más información, consulteConfiguración de aserciones SAML para la respuesta deautenticación.

Note

Un usuario puede obtener privilegios de Lake Formation para todos los grupos a los quepertenece. La lista de grupos a los que pertenece un usuario se puede enviar en un atributo SAMLpersonalizado específico de Lake Formation, como se muestra en el siguiente ejemplo.

<AttributeStatement> <Attribute Name="https://lakeformation.amazon.com/SAML/Attributes/Groups"> <AttributeValue>group1</AttributeValue> <AttributeValue>group2</AttributeValue> </Attribute> </AttributeStatement>

Configuración de proveedores de terceros para SAMLFederación basada en SAML 2.0 para Amazon EMR conAWS Lake Formationse ha probado con Auth0,Microsoft Active Directory Federation Services (AD FS) y Okta.

En este tema se proporciona información que le ayudará a configurar los proveedores de identidadprobados para que funcionen conAWS Lake Formationfederación. Si decide utilizar otro proveedor deidentidad (IdP) que no se ha probadoAWS Lake Formation, consulte el sitio web de documentación de suIdP para obtener más información.

Auth0

LaAWSIntegración en Auth0En el sitio web de documentación de Auth0 describe cómo configurar el iniciode sesión único (SSO) conAWSConsola de administración. También incluye un ejemplo de JavaScript.

Para habilitar el acceso federado a Lake Formation, modifique 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",

407

Page 416: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

"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 mapear elAWSrol a un usuario, cree una regla con el siguiente código. Reemplaceeliam_role_for_lake_formacióncon el nombre del rol de IAM para Lake Formation que ha creado.Sustituya el IAM_identity_provider_name por el nombre del proveedor de identidad de IAM quecreó 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.userName = user.name.replace(/@.*/, ''); context.samlConfiguration.mappings = { 'https://aws.amazon.com/SAML/Attributes/Role': 'awsRole', 'https://aws.amazon.com/SAML/Attributes/RoleSessionName': 'userName', 'https://lakeformation.amazon.com/SAML/Attributes/Username': 'userName' }; callback(null, user, context);}

Microsoft Active Directory Federation Services (AD FS)LaAWSautenticación federada con Active Directory Federation Services (AD FS) AWSEl blog de seguridadmuestra cómo configurar AD FS y habilitar la federación SAML conAWS.

Para habilitar el acceso federado a Lake Formation, modifique los siguientes pasos en la publicación delblog:

• 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 enConfigura una relación de confianza entre su IdP y Lake Formation (p. 404).

OktaLaConfigurar una aplicación SAML en Oktaen el sitio de soporte de Okta incluye instrucciones sobre cómoconfigurar Okta proporcionando metadatos sobre la relación de confianza.

408

Page 417: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

Para habilitar el acceso federado a Lake Formation, modifique los siguientes pasos desde el sitio desoporte de Okta:

• 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 instruccionesde atributo, tal y como se muestra en el siguiente procedimiento. Reemplaceeliam_role_for_lake_formacióncon el nombre del rol de IAM para Lake Formation que ha creado.Sustituya el IAM_identity_provider_name con el nombre del proveedor de identidad de IAM queha creado en los pasos anteriores. Sustituya user_alias con el nombre del atributo utilizado paramantener el nombre 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_alias

3. Nombre: https://lakeformation.amazon.com/SAML/Attributes/Username

Valor: user_alias

Creación de un perfil de instancia de Amazon EC2 personalizadoPara orquestar el acceso de clúster de EMR a Lake Formation, debe definir un perfil de instancia EC2personalizado (rol de servicio) que especificará al crear el clúster. Para obtener más información sobrecómo crear un rol personalizado, consulteCreación de un rol de servicio para instancias EC2 de clúster conpermisos de mínimos privilegios (p. 323).

Lalakeformation:GetTemporaryUserCredentialsWithSAMLpermite que su perfil de instanciaobtenga las credenciales necesarias para ejecutar consultas en clústeres de Amazon EMR integradosconAWS Lake Formation.

Public subnet

Si el clúster se encuentra en una subred pública, utilice la siguiente política de ejemplo para su perfil deinstancia EC2 personalizado. ReemplazarMy-S3 bucket para metadatos IDPcon el bucket de S3que contiene sus metadatos de proveedor de identidad (IdP). Reemplace elRegistros de mi clústerde EMRcon un bucket de S3 para almacenar registros de EMR.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": [ "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata/*" ],

409

Page 418: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

"Action": "s3:GetObject" }, { "Effect": "Allow", "Resource": [ "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata" ], "Action": "s3:ListBucket" }, { "Effect": "Allow", "Resource": [ "arn:aws:s3:::MyEMRClusterLogs/*" ], "Action": "s3:Put*" }, { "Effect": "Allow", "Resource": "*", "Action": "lakeformation:GetTemporaryUserCredentialsWithSAML" } { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "*" } ]}

Subred privadaSi el clúster se encuentra en una subred privada, utilice la siguiente política de ejemplo para su perfil deinstancia EC2 personalizado. ReemplazarMy-S3 bucket para metadatos IDPcon el bucket de S3que contiene sus metadatos de proveedor de identidad (IdP). Reemplace elRegistros de mi clústerde EMRcon el bucket de S3 para almacenar registros de EMR.

Al utilizar clústeres de Amazon EMR en una subred privada, asegúrate de que tu clúster de EMR puedaacceder alAWSServicio Lake Formation para obtener los metadatos requeridos y las políticas de consultay elAWSServicio de IAM para extraer el valor de duración de la sesión de rol de IAM. Para obtener accesoaAWSServicio Lake Formation, puede configurar una puerta de enlace NAT o pasar por el punto final deVPC paraAWSLake Formation. Para obtener acceso aAWSServicio de IAM, debe configurar una puertade enlace NAT, como actualmenteAWSIAM no es compatible con el punto de enlace de la VPC. Tenga encuenta que incurrirá en costos cuando utilice el servicio NAT Gateway o VPC Endpoint.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": [ "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata/*", "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*", ], "Action": "s3:GetObject" }, { "Effect": "Allow", "Resource": [ "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata"

410

Page 419: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

], "Action": "s3:ListBucket" }, { "Effect": "Allow", "Resource": [ "arn:aws:s3:::MyEMRClusterLogs/*" ], "Action": "s3:Put*" }, { "Effect": "Allow", "Resource": "*", "Action": "lakeformation:GetTemporaryUserCredentialsWithSAML" } { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "*" } ]}

Configure la seguridad de EMRCreación de una configuración de seguridad de Amazon EMR para LakeFormation

Antes de lanzar un clúster de Amazon EMR integrado conAWS Lake Formation, tendrá que crear unaconfiguración de seguridad con los roles de IAM y el archivo XML de metadatos del proveedor deidentidad (IdP) que creó enConfigura una relación de confianza entre su IdP y Lake Formation (p. 404).Especificará esta configuración de seguridad al lanzar el clúster.

Console

Para crear una configuración de seguridad que especifique laAWS LakeFormationintegraciónopción:

1. En la consola de Amazon EMR, seleccionaConfiguraciones de seguridad, luegoCrear.2. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre). Este nombre

se utilizará para especificar la configuración de seguridad cuando cree un clúster.3. UNDERAWS Lake Formationintegración, seleccioneHabilitar el control de acceso detallado

administrado porAWS Lake Formation.4. Seleccione suRol de IAM paraAWS Lake Formationsolicitar.

Note

Para obtener más información, consulte Roles de IAM para Lake Formation (p. 398).5. Seleccione suRol de IAM para otrosAWSServicios desolicitar.6. Cargue sus metadatos de proveedor de identidad (IdP) al especificar la ruta de S3 donde se

ubican los metadatos.

Note

Para obtener más información, consulte Configura una relación de confianza entre su IdPy Lake Formation (p. 404).

411

Page 420: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de empezar

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 la seguridad de EMR (p. 411).

CLI

Para crear una configuración de seguridad paraAWS Lake Formationintegración:

1. Especifique la ruta completa del archivo de metadatos del IdP cargado en S3.2. Reemplazaraccount-idcon susAWSID de la cuenta de.3. 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 } } }}

4. Cree una configuración de seguridad de Amazon EMR con el siguiente comando.Reemplazarconfiguración de seguridadcon el nombre de su elección. Seleccionará estaconfiguración por su nombre al crear el clúster.

aws emr create-security-configuration \--security-configuration file://./security-configuration.json \--name security-configuration

Configuración de características de seguridad adicionales

Para integrar Amazon EMR de forma segura conAWS Lake Formation, también debe configurar lassiguientes características de seguridad de EMR:

• Habilite la autenticación de Kerberos mediante el KDC dedicado del clúster. Para obtener instrucciones,consulteUso de la autenticación Kerberos.

• Configure el grupo de seguridad de Amazon EC2 o la lista de control de acceso (ACL) de red de AmazonVPC para permitir el acceso al agente proxy (puerto 8442) desde los escritorios de su usuario. Paraobtener más información, consulteControlar el tráfico de red con grupos de seguridad.

• (Opcional) Habilite el cifrado en tránsito o en reposo. Para obtener más información, consulteOpcionesde cifradoen laGuí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 Personalizar el certificado de agente proxy (p. 416).

Para obtener más información, consulteSeguridad en Amazon EMR.

412

Page 421: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzamiento de un clúster de

Amazon EMR con Lake Formation

Lanzamiento de un clúster de Amazon EMR con LakeFormationEn esta sección se proporciona información acerca del modo de lanzar un clúster de Amazon EMRintegrado conAWS Lake Formation. También muestra cómo actualizar la URL de inicio de sesión únicoen su proveedor de identidad (IdP), cómo utilizar los bloc de EMR Notebooks con Lake Formation, cómopersonalizar su certificado de agente proxy y cómo configurar el acceso de Lake Formation entre cuentaspara su clúster.

Temas• Lanzamiento de un clúster de Amazon EMR con Lake Formation (p. 413)• Configurar EMR Notebooks para acceder a los datos de Lake Formation (p. 415)• Configuración del acceso entre las cuentas (p. 417)

Lanzamiento de un clúster de Amazon EMR con Lake FormationAntes de lanzar un clúster de Amazon EMR conAWS Lake Formation, debe completar los requisitosprevios deAntes de empezar (p. 403).

Cuando se lanza un clúster de Amazon EMR con Lake Formation, debe especificar los siguienteselementos.

• UNAetiqueta de versión compatible de Amazon EMR. EMR con Lake Formation funciona con la serieAmazon EMR 5.x, empezando por5.31,0. La integración de EMR con Lake Formation todavía no estádisponible para la serie 6.x.

• Susconfiguración de seguridadpara Lake Formation. Si necesita crear una configuración de seguridad,consulteConfigure la seguridad de EMR (p. 411). Para obtener instrucciones acerca de cómoseleccionar una configuración de seguridad cuando se crea un clúster, consulteEspecificar unaconfiguración de seguridad para un clúster (p. 296).

• SusPerfil de instancia EC2 personalizado. Para configurar un perfil de instancia de Amazon EC2personalizado, consulteCreación de un perfil de instancia de Amazon EC2 personalizado (p. 409).Para obtener información acerca de cómo seleccionar su perfil de instancia cuando lanza un clúster,consulteEspecifique roles de IAM personalizados al crear un clúster (p. 336).

• SusConfiguración de Kerberos. Para obtener más información, consulte Configuración de Kerberos paraclústeres (p. 381).

Después de iniciar el clúster, asegúrese de queactualice la devolución de llamada o la ULR de inicio desesión único con el proveedor de identidad (p. 414)para dirigir a los usuarios de nuevo al nodo principaldel clúster.

Ejemplo: Cree un clúster de EMR con Lake Formation utilizando elAWS CLI

Los siguientes ejemplos deAWS CLIlanza un clúster de Amazon EMR en una subred pública con Zeppelinintegrado conAWS Lake Formation. Incluye valores especificados para--kerberos-attributes,--security-configuration, yInstanceProfilesegún sea necesario para la integración de EMR conLake Formation.

aws emr create-cluster --region us-east-1 \--release-label emr-5.31.0 \--use-default-roles \--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.xlarge \InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.xlarge \

413

Page 422: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzamiento de un clúster de

Amazon EMR con Lake Formation

--applications Name=Zeppelin Name=Livy \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyClusterKDCAdminPassword \--ec2-attributes KeyName=EC2_KEY_PAIR,SubnetId=subnet-00xxxxxxxxxxxxx11,InstanceProfile=MyCustomEC2InstanceProfile \--security-configuration security-configuration \--name cluster-name

Si va a lanzar su clúster en una subred privada sin una puerta de enlace de traducción de direcciones dered (NAT) conectada, tendrá que agregar unAWSGlue el catálogo de datos y los endpoints de VPC deinterfaz para que su clúster se integre con Lake Formation. Para obtener más información, consulteAWSLake Formationy puntos de enlace de la VPC de interfaz (AWS(PrivateLink).

Actualice la devolución de llamada o la ULR de inicio de sesión único con elproveedor de identidadesDespués de lanzar un clúster de Amazon EMR con Lake Formation, debe actualizar la devolución dellamada o la URL de inicio de sesión único con su proveedor de identidad para dirigir a los usuarios devuelta al nodo principal del clúster.

1. Localice la dirección IP del nodo maestro y el ID de la instancia maestra del clúster en la consola deEMR (https://console.aws.amazon.com/elasticmapreduce/) o utilizando elAWS CLI.

2. Configure una URL de devolución de llamadas en su cuenta de proveedor de identidad (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 (Aceptar).• 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).

414

Page 423: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzamiento de un clúster de

Amazon EMR con Lake Formation

5. En la pestaña Configure SAML (Configurar SAML), actualice Single-sign on URL (URL de iniciode sesión único) con su DNS público del nodo maestro.

Configurar EMR Notebooks para acceder a los datos de LakeFormationDespués de optar por el filtrado de datos en Amazon EMR y crear un clúster integrado con LakeFormation, puede utilizar Apache Zeppelin y los EMR Notebooks para acceder a los datos.

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 ZeppelinPara acceder a Apache Zeppelin, utilice la consola de EMR para localizar laDNS público maestrodelclústerResumenpestaña. Utilizando su navegador, diríjase a https://MasterPublicDNS:8442/gateway/default/zeppelin/. Asegúrese de que la URL incluya la barra inclinada 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:

spark.sql("SELECT * FROM database.table limit 10").show()

Cuadernos de EMREMR Notebooks se pueden crear con la consola de Amazon EMR y se pueden utilizar con un clúster deEMR existente integrado con Lake Formation.

Para crear un bloc de notas de EMR

1. Abra la consola de Amazon EMR enhttps://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.

415

Page 424: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzamiento de un clúster de

Amazon EMR 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, su 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, consulteUso de los portátiles de Amazon EMRen laGuía de administraciónde Amazon EMR.

Personalizar el certificado de agente proxyEl agente proxy utiliza un certificado de seguridad de la capa de transporte (TLS) autofirmado de formapredeterminada. Debe sustituir el certificado predeterminado por un certificado personalizado para elagente proxy. Para ello, primero debe obtener un certificado, una cadena de certificados y una claveprivada de su entidad de certificación. Con estos elementos, se utilizará un archivo PKCS12 para protegerel material de claves de forma que se pueda importar en el almacén de claves del agente proxy. El agenteproxy se basa en Apache Knox.

Siga los pasos que se describen a continuación para sustituir el certificado predeterminadopor su certificado personalizado. ReemplazarMasterPublicDNScon el valor que apareceparaDNS público maestroen elResumenpestaña delDetalles del clúpanel. 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

4. Busque la clave raíz 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 -s

416

Page 425: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzamiento de un clúster de

Amazon EMR con Lake Formation

cd /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.

Configuración del acceso entre las cuentasDespués de lanzar un clúster de Amazon EMR con integración de Lake Formation, puede configurar elacceso multicuenta.AWS Lake Formationel acceso multicuenta permite a los usuarios consultar y unirtablas en variasAWScuentas.

Cuando habilita el acceso multicuenta, los usuarios de una cuenta tienen acceso granular a los metadatosdel catálogo de datos de Glue y a sus datos subyacentes que pertenecen a otra cuenta. Para obtener másinformación sobre el acceso entre cuentas, consulte laAWS Lake FormationGuía para desarrolladores.

Información general

Para configurar el acceso entre cuentas, debe completar las tareas al iniciar sesión en losiguienteAWScuentas:

• Cuenta A- UnAWScuenta con los datos de Lake Formation que desea compartir con una cuenta externa.• Cuenta B- El externoAWScuenta a la que desea conceder acceso a Lake Formation. Esta debería ser

una cuenta en la que haya lanzado un clúster de EMR con Lake Formation.

417

Page 426: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónLanzamiento de un clúster de

Amazon EMR con Lake Formation

En primer lugar, configura un recurso de datos en la Cuenta A y concede acceso al recurso de la CuentaB. A continuación, inicia sesión en la Cuenta B, acepta la invitación de la Cuenta A y crea un enlace derecurso para asignar al recurso un nuevo nombre en la Cuenta B. Por último, agrega permisos a su rol deIAM de Lake Formation desde la Cuenta B para que los usuarios que hayan iniciado sesión en el clústerpuedan realizar consultas en el recurso vinculado de la cuenta A.

Requisitos previos

Para preparar su catálogo de datos para el acceso multicuenta, siga los pasos que se indican enRequisitosprevios de acceso entre cuentasantes de comenzar. También debe leerPrácticas recomendadas ylimitaciones entre cuentaspara garantizar que la configuración multicuenta cumpla los requisitos de accesoa datos.

Configuración del acceso entre las cuentas

Para conceder acceso a recursos de la Cuenta A a la Cuenta B

1. Inicie sesión en elAWS Management ConsoleconCuenta Ay abra elAWS Lake Formationconsola de .2. Siga las instrucciones enRequisitos para los roles utilizados para registrar ubicacionespara crear

undefinido por el usuariofunción de servicio para su data lake.3. Registre una ubicación de almacenamiento en Amazon S3 con larol definido por el usuarioque creó en

el paso anterior siguiendo las instrucciones deRegistro de una ubicación de Amazon S3.

Warning

Debe utilizar un rol definido por el usuario y no el rol vinculado al servicio Lake Formation alregistrar esta ubicación de datos. Lake Formation no admite el uso de su función vinculada aservicios cuando se integra con EMR.

4. Cree una base de datos utilizando la ubicación de datos que acaba de registrar. Para obtenerinstrucciones, consulteCreación de una base de datos.

5. Cree una tabla en la base de datos que configuró en el paso anterior. Para obtener instrucciones,consulteCreación de tablas.

6. Conceder permisos aCuenta B. Especifique los valores siguientes:

• La base de datos que creó en el paso 3.• Tabla que creó en el paso 4.• El ID de cuenta del externoAWScuenta a la que desea conceder acceso (Cuenta B).• Marca la casilla situada junto aSelecten ambosMesayOtorgablepermisos. También debe seleccionar

elDescribirpermiso para la mesa. Cuando concede permisos a una cuenta externa, los permisosno se extienden a ninguno de los principales de esa cuenta externa. Debe permitir permisosotorgables para que la Cuenta B puedaa su vezconceder acceso a su rol de IAM para director deLake Formation.

7. Realice los pasos dePermitir el filtrado de datos en Amazon EMRen laLake Formationpara optar porel filtrado de datos para data lakes en Amazon EMR en la cuenta A. Especifique el ID de la cuenta BenAWSID de cuentaen elFiltrado de datos externo(Se ha creado el certificado).

Para finalizar la configuración del acceso entre cuentas en la cuenta B

1. Una vez que haya finalizado los pasos anteriores en la Cuenta A, inicie sesión en laAWS ManagementConsoleconCuenta B.

2. En el navegadorAWS Resource Access Manager, acepte la invitación de recursos compartidos de laCuenta A. Para obtener instrucciones, consulteAcceso a los recursos compartidos contigoen laAWSResource Access ManagerGuía del usuario de.

3. Obtener acceso aAWS Lake FormationConsola deAdministrador de lago de datos.

418

Page 427: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónIntegración de Amazon EMR con Apache Ranger

4. Crear un vínculo de recursos de base de datos para la base de datos remota compartida por la cuentaA. La creación de un vínculo de recursos le permite asignar un nombre diferente a la base de datosremota del catálogo de datos. Para obtener instrucciones, consulteCreación de un enlace de recursosa una base de datos de catálogos de datos compartida.

5. En la páginaBases de datos, elija el enlace de recursos de base de datos que ha creadoanteriormente.

6. En el navegadorActionsDropdown debajo dePermisos, seleccioneConceder.7. ParaSAML y Amazon QuickSight Usuarios y grupos de, seleccione los usuarios o grupos SAML a los

que desea dar acceso y asegúrese deDescribirestá habilitado enPermisos de enlace de recursos.Para obtener más información, consulteConcesión de permisos de enlace de recursos.

8. ElegirConcederpara terminar de conceder permisos a su enlace de recursos.9. En el navegadorActionsDropdown debajo dePermisos, seleccioneSubvención en blanco. Este paso es

obligatorio ya que la concesión de permisos en un enlace de recursos no otorga permisos a una basede datos o tabla de destino (vinculada). Debe conceder permisos a un destino por separado. Paraobtener más información, consulteConcesión de permisos de enlace de recursos.

10. ParaSAML y Amazon QuickSight Usuarios y grupos de, seleccione los mismos usuarios o gruposSAML que eligió en el paso 7.

11. Elija los permisos de destino adecuados para su rol de IAM para Lake Formation y, a continuación,elijaConceder.

Ahora debe poder acceder a un recurso de la cuenta A desde el clúster de EMR de la cuenta B.

Por ejemplo, supongamos que ha creado un enlace de recurso denominadoresource-db-linky se haconcedido acceso a todas las columnas de una tabla,t1, en elresource-db-linkbase de datos. Ahora puedesrecuperar la primera columna,col1, con la siguiente consulta de Spark SQL:

select col1 from resource-db-link.t1

Para obtener más información sobre cómo solucionar problemas de acceso entre cuentas,consulteSolución de problemas de Lake Formationen laAWS Lake FormationGuía para desarrolladores.

Integración de Amazon EMR con Apache RangerA partir de Amazon EMR 5.32.0, puede lanzar un clúster que se integre de forma nativa con ApacheRanger. Apache Ranger es un marco de código abierto para habilitar, supervisar y administrar la seguridadde datos completa en toda la plataforma Hadoop. Para obtener más información, consulteApache Ranger.Con la integración nativa, puede llevar su propio Apache Ranger para aplicar un control de acceso a datosdetallado en Amazon EMR.

Esta sección proporciona información general sobre los conceptos de la integración de Amazon EMR conApache Ranger. También incluye los requisitos previos y los pasos necesarios para lanzar un clúster deAmazon EMR integrado con Apache Ranger.

La integración nativa de Amazon EMR con Apache Ranger proporciona los siguientes beneficiosprincipales:

• Control de acceso detallado a bases de datos y tablas de Hive Metastore, que permite definir políticasde filtrado de datos a nivel de base de datos, tabla y columna para aplicaciones Apache Spark y ApacheHive. Las aplicaciones Hive admiten el filtrado a nivel de fila y el enmascaramiento de datos.

• La capacidad de utilizar las políticas de Hive existentes directamente con las aplicaciones Amazon EMRfor Hive.

419

Page 428: Amazon EMR - Guía de administración

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

• Control de acceso a los datos de Amazon S3 a nivel de prefijo y objeto, que permite definir políticas defiltrado de datos para acceder a los datos de S3 mediante el sistema de archivos EMR.

• La capacidad de uso CloudWatch Registros para auditorías centralizadas.• Amazon EMR instala y administra los complementos de Apache Ranger en su nombre.

Apache RangerApache Ranger es un marco para habilitar, supervisar y administrar la seguridad de datos completa entoda la plataforma Hadoop.

Apache Ranger incluye las siguientes características:

• Administración de seguridad centralizada para administrar todas las tareas relacionadas con laseguridad en una interfaz de usuario central o mediante API REST.

• Autorización detallada para realizar una acción u operación específica con un componente o herramientade Hadoop, administrada a través de una herramienta de administración central.

• Método de autorización estandarizado en todos los componentes de Hadoop.• Compatibilidad mejorada para varios métodos de autorización.• Auditoría centralizada del acceso de los usuarios y las acciones administrativas (relacionadas con la

seguridad) dentro de todos los componentes de Hadoop.

Apache Ranger utiliza dos componentes clave para la autorización:

• Servidor de administración de políticas de Apache Ranger- Este servidor permite definir las políticasde autorización de las aplicaciones Hadoop. Al integrarse con Amazon EMR, puede definir y aplicarpolíticas para Apache Spark y Hive para acceder a Hive Metastore y acceder a los datos de AmazonS3Sistema de archivos EMR (EMRFS). Puede configurar un servidor de administración de políticasde Apache Ranger nuevo o utilizar un servidor de administración de políticas de Apache Ranger paraintegrarlo con Amazon EMR.

• el complemento Apache Ranger- Este complemento valida el acceso de un usuario contra las políticasde autorización definidas en el servidor de administración de políticas de Apache Ranger. Amazon EMRinstala y configura automáticamente el complemento Apache Ranger para cada aplicación Hadoopseleccionada en la configuración de Apache Ranger.

Temas• Arquitectura de la integración de Amazon EMR con Apache Ranger (p. 421)• Componentes de Amazon EMR (p. 421)

420

Page 429: Amazon EMR - Guía de administración

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

Arquitectura de la integración de Amazon EMR con ApacheRanger

Componentes de Amazon EMRAmazon EMR permite un control de acceso minucioso con Apache Ranger a través de los siguientescomponentes. Consulte laDiagrama de la arquitectura de (p. 421)para obtener una representación visualde estos componentes de Amazon EMR con los complementos de Apache Ranger.

Agente secreto: el agente secreto almacena secretos de forma segura y los distribuye a otroscomponentes o aplicaciones de Amazon EMR. Los secretos pueden incluir credenciales de usuariotemporales, claves de cifrado o tickets de Kerberos. El agente secreto se ejecuta en cada nodo del clústere intercepta las llamadas al servicio de metadatos de instancia. Para las solicitudes a las credenciales derol de perfil de instancia, Secret Agent suministra credenciales según el usuario solicitante y los recursossolicitados después de autorizar la solicitud con el complemento EMRFS S3 Ranger. El agente secretofunciona comoemrsecretagentusuario y escribe registros en el directorio /emr/secretagent/log. Elproceso recurre a un conjunto específico de reglas iptables para funcionar. Es importante garantizarqueiptablesno está deshabilitado. Si personalizasiptablesLa configuración de, las reglas de tabla deNAT deben conservarse y no modificarse.

Servidor de registros EMR— El servidor de registros recibe solicitudes de acceso a los datos de Spark. Acontinuación, autoriza las solicitudes reenviando los recursos solicitados al complemento Spark Rangerpara Amazon EMR. El servidor de registros lee los datos de Amazon S3 y devuelve los datos filtrados a losque el usuario tiene autorización para acceder en función de la política de Ranger. El servidor de registrosse ejecuta en cada nodo del clúster como usuario emr_record_server y escribe registros en el directorio /var/log/emr-record-server.

421

Page 430: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSoporte y limitaciones de aplicaciones

Soporte y limitaciones de aplicacionesAplicaciones compatiblesLa integración entre Amazon EMR y Apache Ranger en la que EMR instala complementos Ranger admiteactualmente las siguientes aplicaciones:

• Apache Spark (disponible con EMR 5,32 + y EMR 6,3 +)• Apache Hive (disponible con EMR 5,32 + y EMR 6,3 +)• Acceso a S3 a través de EMRFS (disponible con EMR 5.32+ y EMR 6.3+)

Las siguientes aplicaciones se pueden instalar en un clúster de EMR y es posible que deban configurarsepara satisfacer sus necesidades de seguridad:

• Apache Hadoop (disponible con EMR 5.32+ y EMR 6.3+, incluidos YARN y HDFS)• Apache Livy (disponible con EMR 5,32 + y EMR 6,3 +)• Apache Zeppelin (disponible con EMR 5,32 + y EMR 6,3 +)• Apache Hue (disponible con EMR 5,32 + y EMR 6,3 +)• Tez (disponible con EMR 5.32+ y EMR 6.3+)• Ganglia (disponible con EMR 5,32 + y EMR 6,3 +)• ZooKeeper (disponible con EMR 5,32 + y EMR 6,3 +)• MXNet (disponible con EMR 5,32 + y EMR 6,3 +)• Mahout (disponible con EMR 5.32+ y EMR 6.3+)• HCatalog (disponible con EMR 5.32+ y EMR 6.3+)• TensorFlow (disponible con EMR 5,32 + y EMR 6,3 +)

Important

Las aplicaciones enumeradas anteriormente son las únicas aplicaciones que se admitenactualmente. Para garantizar la seguridad del clúster, se le permite crear un clúster de EMR consolo las aplicaciones de la lista anterior cuando Apache Ranger está habilitado.Actualmente no se admiten otras aplicaciones. Para garantizar la seguridad del clúster, al intentarinstalar otras aplicaciones, se producirá el rechazo del clúster.

Características admitidas

Las siguientes características de Amazon EMR se pueden utilizar con Amazon EMR y Apache Ranger:

• Cifrado en reposo y en tránsito• Autenticación Kerberos (obligatoria)• Grupos de instancias, flotas de instancias e instancias de spot• Reconfiguración de aplicaciones en un clúster en ejecución• Cifrado del lado del servidor (SSE) de EMRFS

Note

La configuración de cifrado de Amazon EMR rige la SSE. Para obtener más información,consulteOpciones de cifrado (p. 297).

422

Page 431: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

Limitaciones deExisten varias limitaciones a tener en cuenta al integrar Amazon EMR y Apache Ranger:

• Actualmente no puede utilizar la consola para crear una configuración de seguridad queespecifiqueAWSOpción de integración de ranger en elAWS GovCloud (US) Region. La configuración deseguridad se puede realizar mediante la CLI.

• Kerberos debe estar instalado en el clúster.• UI de aplicaciones (interfaces de usuario), como la interfaz de usuario de YARN Resource Manager,

HDFS NameNode La interfaz de usuario y la interfaz de usuario de Livy no están configuradas conautenticación de forma predeterminada.

• Los permisos predeterminados de HDFSumaskestán configurados para que los objetos creados seestablezcan enworld wide readablede forma predeterminada.

• Consulte las limitaciones de cada aplicación para obtener más limitaciones.

Note

La configuración de cifrado de Amazon EMR rige la SSE. Para obtener más información,consulteOpciones de cifrado (p. 297).

Limitaciones deCada complemento tiene limitaciones específicas. Para conocer las limitaciones del complemento ApacheHive, consulteLimitaciones del plugin de Apache Hive. Para conocer las limitaciones del complementoApache Spark, consulteLimitaciones del plugin de Apache Spark. Para conocer las limitaciones delcomplemento EMRFS S3, consulteLimitaciones del complemento EMRFS S3.

Configurar Amazon EMR para Apache RangerAntes de instalar Apache Ranger, revise la información de esta sección para asegurarse de que AmazonEMR está correctamente configurado.

Temas• Configurar el servidor Ranger Admin (p. 423)• Funciones de IAM para la integración nativa con Apache Ranger (p. 426)• Creación de la configuración de seguridad de EMR (p. 429)• Almacenar los certificados TLS enAWS Secrets Manager (p. 431)• Iniciar un clúster de EMR (p. 432)• Configuración de Zeppelin para clústeres de Amazon EMR habilitados para Apache Ranger (p. 433)• Problemas conocidos (p. 434)

Configurar el servidor Ranger AdminPara la integración de Amazon EMR, los complementos de aplicación Apache Ranger deben comunicarsecon el servidor de administración mediante TLS/SSL.

Requisito previo: Habilitación SSL de Ranger Admin Server

Apache Ranger en Amazon EMR requiere comunicación SSL bidireccional entre los plugins y el servidorRanger Admin. Para asegurarse de que los complementos se comuniquen con el servidor Apache

423

Page 432: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

Ranger a través de SSL, habilite el siguiente atributo dentro de ranger-admin-site.xml en el servidor deadministración de Ranger.

<property> <name>ranger.service.https.attrib.ssl.enabled</name> <value>true</value></property>

Además, se necesitan las siguientes configuraciones.

<property> <name>ranger.https.attrib.keystore.file</name> <value>_<PATH_TO_KEYSTORE>_</value></property>

<property> <name>ranger.service.https.attrib.keystore.file</name> <value>_<PATH_TO_KEYSTORE>_</value></property>

<property> <name>ranger.service.https.attrib.keystore.pass</name> <value>_<KEYSTORE_PASSWORD>_</value></property>

<property> <name>ranger.service.https.attrib.keystore.keyalias</name> <value><PRIVATE_CERTIFICATE_KEY_ALIAS></value></property>

<property> <name>ranger.service.https.attrib.clientAuth</name> <value>want</value></property>

<property> <name>ranger.service.https.port</name> <value>6182</value></property>

Certificados TLS

La integración de Apache Ranger con Amazon EMR requiere que el tráfico de los nodos de Amazon EMRhacia el servidor Ranger Admin se cifra mediante TLS y que los complementos de Ranger se autentiquenen el servidor Apache Ranger mediante la autenticación TLS mutua bidireccional. El servicio AmazonEMR necesita el certificado público de su servidor Ranger Admin (especificado en el ejemplo anterior) y elcertificado privado.

Certificados de complementos Apache Ranger

El servidor de administración de Apache Ranger debe tener acceso a los certificados TLS públicos delcomplemento Apache Ranger para validarlos cuando se conecten los plugins. Existen tres métodosdiferentes para hacer esto.

Método 1: Configurar un almacén de confianza en el servidor de administración de Apache Ranger

Complete las siguientes configuraciones en ranger-admin-site.xml para configurar un almacén deconfianza.

<property>

424

Page 433: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

<name>ranger.truststore.file</name> <value><LOCATION TO TRUSTSTORE></value></property>

<property> <name>ranger.truststore.password</name> <value><PASSWORD FOR TRUSTSTORE></value></property>

Método 2: Cargar el certificado en el almacén de confianza de Java cacerts

Si su servidor Ranger Admin no especifica un almacén de confianza en sus opciones de JVM, puedecolocar los certificados públicos del complemento en el almacén cacerts predeterminado.

Método 3: Cree un almacén de confianza y especifique como parte de las opciones de JVM

Dentro de{RANGER_HOME_DIRECTORY}/ews/ranger-admin-services.sh,modificarJAVA_OPTSpara incluir"-Djavax.net.ssl.trustStore=<TRUSTSTORE_LOCATION>"y"-Djavax.net.ssl.trustStorePassword=<TRUSTSTORE_PASSWORD>". Por ejemplo, agregue lasiguiente línea después del JAVA_OPTS existente.

JAVA_OPTS=" ${JAVA_OPTS} -Djavax.net.ssl.trustStore=${RANGER_HOME}/truststore/truststore.jck -Djavax.net.ssl.trustStorePassword=changeit"

Note

Esta especificación puede exponer la contraseña del almacén de confianza si algún usuariopuede iniciar sesión en el servidor Administrador de Apache Ranger y ver los procesos enejecución, como cuando se utiliza elpscomando.

Uso de certificados autofirmados

Los certificados autofirmados no se recomiendan como certificados. Los certificados autofirmados no sepueden revocar y los certificados autofirmados pueden no cumplir los requisitos de seguridad interna.

Instalación de definición de servicio

El servidor Administrador de Ranger utiliza una definición de servicio para describir los atributos de laspolíticas de una aplicación. A continuación, las políticas se almacenan en un repositorio de políticas paraque los clientes las descarguen.

Para poder configurar definiciones de servicio, las llamadas REST deben realizarse al servidor deadministración de Ranger. ConsulteApache Ranger PublicAPI v2para las API requeridas en la siguientesección.

Instalación de la definición de servicio de Apache Spark

Para instalar la definición de servicio de Apache Spark, consulteel complemento Apache Spark (p. 438).

Instalación de la definición de servicio de EMRFS

Para instalar la definición de servicio de S3 para Amazon EMR, consulteComplemento EMRFSS3 (p. 443).

Uso de la definición de servicio de Hive

Apache Hive puede utilizar la definición de servicio Ranger existente que se incluye con ApacheRanger 2.0 y versiones posteriores. Para obtener más información, consulte el complemento de ApacheHive (p. 436).

425

Page 434: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

Reglas de tráfico de redCuando Apache Ranger se integra con su clúster de EMR, el clúster necesita comunicarse con servidoresadicionales yAWS.

Todos los nodos de Amazon EMR, incluidos los nodos principales y de tareas, deben poder comunicarsecon los servidores Admin de Apache Ranger para descargar políticas. Si su administrador de ApacheRanger se ejecuta en Amazon EC2, debe actualizar el grupo de seguridad para poder tomar tráfico delclúster de EMR.

Además de comunicarse con el servidor Ranger Admin, todos los nodos deben poder comunicarse con losiguiente:AWSservices:

• Simple Storage Service (Amazon S3)• AWS KMS(si utiliza EMRFS SSE-KMS)• Amazon CloudWatch• AWS STS

Si planea ejecutar su clúster de EMR dentro de una subred privada, configure la VPC para podercomunicarse con estos servicios medianteAWS PrivateLinky los puntos de conexión de la VPCenlaAmazon VPC User Guideo usarinstancia de traducción de direcciones de red (NAT)en laAmazon VPCUser Guide.

Funciones de IAM para la integración nativa con Apache RangerLa integración entre Amazon EMR y Apache Ranger se basa en tres roles clave que debe crear antes delanzar el clúster:

• Un perfil de instancia de Amazon EC2 personalizado para Amazon EMR• Un papel de IAM para Apache Ranger Engines• Un rol de IAM para otrosAWSServicios de

Esta sección proporciona información general sobre estos roles y las políticas que debe incluir en cada rolde IAM. Para obtener información sobre la creación de estos roles, consulteConfigurar el servidor RangerAdmin (p. 423).

Perfil de instancia EC2Amazon EMR utiliza roles de servicio de IAM para realizar acciones en su nombre con el fin deaprovisionar y administrar clústeres. El rol de servicio de para las instancias EC2 del clúster, tambiénllamado el perfil de instancia EC2 para Amazon EMR, es un tipo especial de rol de servicio asignado acada instancia EC2 de un clúster en el lanzamiento.

Para definir permisos para la interacción de clúster de EMR con datos de Amazon S3 y con metastore Hiveprotegido por Apache Ranger y otrosAWSservices, defina un perfil de instancia EC2 personalizado que seutilizará en lugar de EMR_EC2_DefaultRole al lanzar el clúster.

Para obtener más información, consulte Función de servicio para instancias EC2 de clúster (perfil deinstancia EC2) (p. 322) y Personalizar roles de IAM (p. 336).

Debe agregar las siguientes instrucciones al perfil de instancias EC2 predeterminado para Amazon EMRpara poder etiquetar sesiones y acceder alAWS Secrets Managerque almacena certificados TLS.

{ "Sid": "AllowAssumeOfRolesAndTagging", "Effect": "Allow",

426

Page 435: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

"Action": ["sts:TagSession", "sts:AssumeRole"], "Resource": [ "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RANGER_ENGINE-PLUGIN_DATA_ACCESS_ROLE_NAME>", "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RANGER_USER_ACCESS_ROLE_NAME>" ] }, { "Sid": "AllowSecretsRetrieval", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:<REGION>:<AWS_ACCOUNT_ID>:secret:<PLUGIN_TLS_SECRET_NAME>*", "arn:aws:secretsmanager:<REGION>:<AWS_ACCOUNT_ID>:secret:<ADMIN_RANGER_SERVER_TLS_SECRET_NAME>*" ] }

Note

Para los permisos de Secrets Manager, no olvides el comodín («*») al final del nombre secreto otus solicitudes fallarán. El comodín es para versiones secretas.

Note

Limitar el alcance de laAWS Secrets Managersolo para los certificados necesarios para elaprovisionamiento.

El rol de IAM para Apache Ranger

Este rol proporciona credenciales para motores de ejecución de confianza, como Apache Hive y AmazonEMR Record ServerComponentes de Amazon EMR (p. 400), para acceder a los datos de Amazon S3.Utilice solo esta función para acceder a los datos de Amazon S3, incluidas las claves de KMS, si utilizaSSE-KMS de S3.

Este rol se debe crear con la política mínima indicada en el siguiente ejemplo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudwatchLogsPermissions", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": [ "arn:aws:logs:<REGION>:<AWS_ACCOUNT_ID>:<CLOUDWATCH_LOG_GROUP_NAME_IN_SECURITY_CONFIGURATION>:*" ] }, { "Sid": "BucketPermissionsInS3Buckets", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:ListAllMyBuckets", "s3:ListBucket" ], "Effect": "Allow", "Resource": [

427

Page 436: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

*"arn:aws:s3:::bucket1", "arn:aws:s3:::bucket2"* ] }, { "Sid": "ObjectPermissionsInS3Objects", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject" ], "Effect": "Allow", "Resource": [ *"arn:aws:s3:::bucket1/*", "arn:aws:s3:::bucket2/*"* ] } ]}

Important

El asterisco «*» al final de la CloudWatch Se debe incluir el recurso de registro para proporcionarpermiso para escribir en los flujos de registro.

Note

Si utiliza la vista de coherencia de EMRFS o el cifrado S3-SSE, agregue permisos a las tablasde DynamoDB y claves KMS para que los motores de ejecución puedan interactuar con esosmotores.

El rol de IAM para Apache Ranger se asume mediante el rol de perfil de instancia de EC2. Utilice elsiguiente ejemplo para crear una política de confianza que permita que el rol de perfil de instancia de EC2asuma el rol de IAM para Apache Ranger.

{ "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<EC2 INSTANCE PROFILE ROLE NAME eg. EMR_EC2_DefaultRole>" }, "Action": ["sts:AssumeRole", "sts:TagSession"] }

Rol de IAM para otrosAWSServicios de

Este rol proporciona credenciales a los usuarios que no son motores de ejecución de confianza con losque interactuar.AWSservicios, si es necesario. No utilice este rol de IAM para permitir el acceso a los datosde Amazon S3, a menos que todos los usuarios tengan acceso a los datos.

Este rol se asumirá con el rol de perfil de instancia de EC2. Utilice el siguiente ejemplo para crear unapolítica de confianza que permita que el rol de perfil de instancia de EC2 asuma el rol de IAM para ApacheRanger.

{ "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<EC2 INSTANCE PROFILE ROLE NAME eg. EMR_EC2_DefaultRole>"

428

Page 437: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

}, "Action": ["sts:AssumeRole", "sts:TagSession"] }

Valide sus permisos

ConsulteSolución de problemas de Apache Ranger (p. 450)para obtener instrucciones sobre lavalidación de permisos.

Creación de la configuración de seguridad de EMRCreación de una configuración de seguridad de Amazon EMR para Apache Ranger

Antes de lanzar un clúster de Amazon EMR integrado con Apache Ranger, cree una configuración deseguridad.

Console

Para crear una configuración de seguridad que especifique laAWSOpción de integración deRanger

1. En la consola de Amazon EMR, seleccionaConfiguraciones de seguridad, luegoCrear.2. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre). Este nombre

se utiliza para especificar la configuración de seguridad cuando crea un clúster.3. UNDERAWSIntegración de Ranger, seleccioneHabilite el control de acceso detallado

administrado por Apache Ranger.4. Seleccione suEl rol de IAM para Apache Rangersolicitar. Para obtener más información, consulte

Funciones de IAM para la integración nativa con Apache Ranger (p. 426).5. Seleccione suRol de IAM para otrosAWSServicios desolicitar.6. Configure los complementos para conectarse al servidor Administrador de Ranger introduciendo

el ARN de Secret Manager para el servidor de administración y la dirección.7. Seleccione las aplicaciones para configurar los complementos de Ranger. Rellene el ARN de

Secret Manager que contiene el certificado TLS privado del complemento.

Si no configura Apache Spark o Apache Hive y se seleccionan como aplicación para el clúster, lasolicitud falla.

8. 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 externo o dedicado del clúster. Paraobtener más información, consulte Configure la seguridad de EMR (p. 411).

Note

Actualmente no puede utilizar la consola para crear una configuración de seguridad queespecifiqueAWSOpción de integración de ranger en elAWS GovCloud (US) Region. Laconfiguración de seguridad se puede realizar mediante la CLI.

CLI

Creación de una configuración de seguridad para la integración de Apache Ranger

1. Sustituya <ACCOUNT ID> por su ID de cuenta de AWS.2. Reemplazar<REGION>con la región en la que se encuentra el recurso.3. Especifique un valor para TicketLifetimeInHours para determinar el periodo para el que un

vale de Kerberos generado por el KDC es válido.4. Especifique la dirección del servidor Administrador de Ranger paraAdminServerURL.

429

Page 438: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24 } } }, "AuthorizationConfiguration":{ "RangerConfiguration":{ "AdminServerURL":"https://_<RANGER ADMIN SERVER IP>_:6182", "RoleForRangerPluginsARN":"arn:aws:iam::_<ACCOUNT ID>_:role/_<RANGER PLUGIN DATA ACCESS ROLE NAME>_", "RoleForOtherAWSServicesARN":"arn:aws:iam::_<ACCOUNT ID>_:role/_<USER ACCESS ROLE NAME>_", "AdminServerSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES ADMIN SERVERS PUBLIC TLS CERTICATE WITHOUT VERSION>_", "RangerPluginConfigurations":[ { "App":"Spark", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES SPARK PLUGIN PRIVATE TLS CERTICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<SPARK SERVICE NAME eg. amazon-emr-spark>" }, { "App":"Hive", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES Hive PLUGIN PRIVATE TLS CERTICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<HIVE SERVICE NAME eg. Hivedev>" }, { "App":"EMRFS-S3", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES EMRFS S3 PLUGIN PRIVATE TLS CERTICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<EMRFS S3 SERVICE NAME eg amazon-emr-emrfs>" } ], "AuditConfiguration":{ "Destinations":{ "AmazonCloudWatchLogs":{ "CloudWatchLogGroup":"arn:aws:logs:<REGION>:_<ACCOUNT ID>_:log-group:_<LOG GROUP NAME FOR AUDIT EVENTS>_" } } } } }}

La PolicyRespositoryNames son los nombres de servicio especificados en el administrador de ApacheRanger.

Cree una configuración de seguridad de Amazon EMR con el siguiente comando. Sustituya laconfiguración de seguridad por el nombre de su elección. Seleccione esta configuración por sunombre cuando cree el clúster.

aws emr create-security-configuration \--security-configuration file://./security-configuration.json \

430

Page 439: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

--name security-configuration

Configuración de características de seguridad adicionales

Para integrar de forma segura Amazon EMR con Apache Ranger, configure las siguientes característicasde seguridad de EMR:

• Habilite la autenticación de Kerberos mediante el KDC dedicado del clúster o externo. Para obtenerinstrucciones, consulte Uso de la autenticación Kerberos (p. 368).

• (Opcional) Habilite el cifrado en tránsito o en reposo. Para obtener más información, consulte Opcionesde cifrado (p. 297).

Para obtener más información, consulte Seguridad en Amazon EMR (p. 274).

Almacenar los certificados TLS enAWS Secrets ManagerLos complementos de Ranger instalados en un clúster de Amazon EMR y el servidor Ranger Admindeben comunicarse a través de TLS para garantizar que los datos de políticas y otra informaciónenviada no se puedan leer si se interceptan. EMR también exige que los complementos se autentiquenen el servidor Ranger Admin proporcionando su propio certificado TLS y realice la autenticación TLSbidireccional. Esta configuración requería crear cuatro certificados: dos pares de certificados TLS privadosy públicos. Para obtener instrucciones sobre cómo instalar el certificado en su servidor de administraciónde Ranger, consulte.Configurar el servidor Ranger Admin (p. 423). Para completar la configuración,los complementos Ranger instalados en el clúster de EMR necesitan dos certificados: el certificadoTLS público de su servidor de administración y el certificado privado que el complemento utilizará paraautenticarse en el servidor Ranger Admin. Para proporcionar estos certificados TLS, deben estar en elAWSSecrets Managery se proporciona en una configuración de seguridad de EMR.

Note

Se recomienda encarecidamente, pero no es necesario, crear un par de certificados para cadauna de sus aplicaciones para limitar el impacto si uno de los certificados del complemento se vecomprometido.Note

Debe realizar un seguimiento y rotar los certificados antes de su fecha de vencimiento.

Formato del certificadoImportación de los certificados a laAWS Secrets Manageres el mismo independientemente de si se tratadel certificado de complemento privado o del certificado de administrador público de Ranger. Antes deimportar los certificados TLS, los certificados deben estar en formato PEM 509x.

Un ejemplo de certificado público tiene el formato:

-----BEGIN CERTIFICATE-----...Certifcate Body...-----END CERTIFICATE-----

Un ejemplo de certificado privado tiene el formato:

-----BEGIN PRIVATE KEY-----...Private Certifcate Body...-----END PRIVATE KEY----------BEGIN CERTIFICATE-----...Trust Certificate Body...

431

Page 440: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

-----END CERTIFICATE-----

El certificado privado también debe contener un certificado de confianza.

Puede validar que los certificados se encuentran en el formato correcto ejecutando el siguiente comando:

openssl x509 -in <PEM FILE> -text

Importación de un certificado a laAWS Secrets ManagerAl crear su secreto en el Secrets Manager, elijaOtro tipo de secretosUNDERtipo secretoy pegue sucertificado codificado PEM en eltexto no cifradotal y como se muestra a continuación.

Iniciar un clúster de EMRAntes de lanzar un clúster de Amazon EMR con Apache Ranger, asegúrese de que cada componentecumple los siguientes requisitos de versión mínima:

• Amazon EMR 5.32.0 o posterior, o 6.3.0 o posterior. Le recomendamos que utilice la última versión deAmazon EMR.

• Servidor de administración de Apache Ranger 2.x.

Complete los siguientes pasos.

• Si aún no lo ha hecho, instale Apache Ranger. Para obtener más información, consulteInstalación deApache Ranger 0.5.0.

• Asegúrese de que haya conectividad de red entre el clúster de Amazon EMR y el servidor deadministración de Apache Ranger. Consulte Configurar el servidor Ranger Admin (p. 423).

• Cree los roles de IAM necesarios. Consulte Funciones de IAM para la integración nativa con ApacheRanger (p. 426).

432

Page 441: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

• Cree una configuración de seguridad de EMR para la instalación de Apache Ranger. Ver másinformación, consulteCreación de la configuración de seguridad de EMR (p. 429).

Configuración de Zeppelin para clústeres de Amazon EMRhabilitados para Apache RangerEn el tema se explica cómo configurarApache Zeppelinpara un clúster de Amazon EMR habilitado paraApache Ranger para que pueda utilizar Zeppelin como cuaderno para la exploración interactiva de datos.Zeppelin se incluye en la versión de Amazon EMR 5.0.0 y posteriores. Las versiones anteriores incluyenZeppelin como aplicación sandbox. Para obtener más información, consulteVersiones de la versión deAmazon EMR 4.xen laGuía de publicación de Amazon EMR.

De forma predeterminada, Zeppelin se configura con un inicio de sesión y contraseña predeterminadosque no son seguros en un entorno de varios inquilinos.

Para configurar Zeppelin, lleve a cabo los siguientes pasos.

1. Modifique el mecanismo de autenticación.

Modificarshiro.inipara implementar el mecanismo de autenticación preferido. Zeppelin escompatible con Active Directory, LDAP, PAM y Knox SSO. ConsulteAutenticación de Apache Shiropara Apache Zeppelinpara obtener más información.

2. Configurar Zeppelin para que se haga pasar por el usuario final

Cuando permite que Zeppelin se haga pasar por el usuario final, los trabajos enviados por Zeppelin sepueden ejecutar como ese usuario final. Añada la configuración siguiente acore-site.xml:

[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.zeppelin.hosts": "*", "hadoop.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] }]

A continuación, añada la configuración siguiente ahadoop-kms-site.xmlubicado en/etc/hadoop/conf:

[ { "Classification": "hadoop-kms-site", "Properties": { "hadoop.kms.proxyuser.zeppelin.hosts": "*", "hadoop.kms.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] }]

También puede agregar estas configuraciones a su clúster de Amazon EMR mediante la consolasiguiendo los pasos deReconfigurar un grupo de instancias en la consola.

3. Permitir que Zeppelin sudo como usuario final

433

Page 442: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConfigurar Amazon EMR para Apache Ranger

Creación de un archivo/etc/sudoers.d/90-zeppelin-userque contiene lo siguiente:

zeppelin ALL=(ALL) NOPASSWD:ALL

4. Modificar la configuración de los intérpretes para ejecutar trabajos de usuario en sus propios procesos.

Para todos los intérpretes, configúrelos para crear instancias de los intérpretes «Por usuario» enprocesos «aislados» como se muestra a continuación.

5. Modificarzeppelin-env.sh

Añada lo siguiente azeppelin-env.shpara que Zeppelin comience a lanzar intérpretes comousuario final:

ZEPPELIN_IMPERSONATE_USER=`echo ${ZEPPELIN_IMPERSONATE_USER} | cut -d @ -f1`export ZEPPELIN_IMPERSONATE_CMD='sudo -H -u ${ZEPPELIN_IMPERSONATE_USER} bash -c'

Añada lo siguiente azeppelin-env.shpara cambiar los permisos de bloc de notas predeterminadosa solo lectura para el creador:

export ZEPPELIN_NOTEBOOK_PUBLIC="false"

Por último, añada lo siguiente azeppelin-env.shpara incluir la ruta de clase EMR RecordServerdespués de la primeraCLASSPATHdeclaración:

export CLASSPATH="$CLASSPATH:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-connector-common.jar:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-spark-connector.jar:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-client.jar:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-common.jar:/usr/share/aws/emr/record-server/lib/jars/secret-agent-interface.jar"

6. Restablecer Zeppelin.

Ejecute el siguiente comando para reiniciar Zeppelin:

sudo systemctl restart zeppelin

Problemas conocidosProblemas conocidos

Existe un problema conocido en la versión 5.32 de Amazon EMR en el que los permisos parahive-site.xmlse ha cambiado para que solo los usuarios con privilegios puedan leerlo, ya que puede habercredenciales almacenadas en él. Esto podría impedir que Hue leahive-site.xmly hacer que las páginasweb se recarguen continuamente. Si experimenta este problema, agregue la siguiente configuración parasolucionar el problema:

[

434

Page 443: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

{ "Classification": "hue-ini", "Properties": {}, "Configurations": [ { "Classification": "desktop", "Properties": { "server_group":"hive_site_reader" }, "Configurations":[ ] } ] }]

Existe un problema conocido de que el complemento EMRFS S3 para Apache Ranger actualmente noadmite la función Security Zone de Apache Ranger. Las restricciones de control de acceso definidasmediante la función Zona de seguridad no se aplican a los clústeres de Amazon EMR.

IU de la aplicación

De forma predeterminada, las IU de la aplicación no realizan autenticación. Esto incluye elResourceManager UI, NodeManager Yo, Livy I, entre otros. Además, cualquier usuario que tenga lacapacidad de acceder a las IU puede ver información sobre los trabajos de todos los demás usuarios.

Si no se desea este comportamiento, debe asegurarse de que se utilice un grupo de seguridad pararestringir el acceso a las IU de la aplicación por parte de los usuarios.

Permisos predeterminados de HDFS

De forma predeterminada, los objetos que crean los usuarios en HDFS reciben permisos legibles en elmundo. Esto puede provocar que los usuarios puedan leer datos que no deberían tener acceso a ellos.Para cambiar este comportamiento de modo que los permisos de archivo predeterminados se establezcanpara leer y escribir solo por el creador del trabajo, lleve a cabo estos pasos.

Al crear el clúster de EMR, proporcione la siguiente configuración:

[ { "Classification": "hdfs-site", "Properties": { "dfs.namenode.acls.enabled": "true", "fs.permissions.umask-mode": "077", "dfs.permissions.superusergroup": "hdfsadmingroup" } }]

Además, ejecute la siguiente acción de arranque:

--bootstrap-actions Name='HDFS UMask Setup',Path=s3://elasticmapreduce/hdfs/umask/umask-main.sh

Complementos de Apache RangerLos complementos de Apache Ranger validan el acceso de un usuario con las políticas de autorizacióndefinidas en el servidor de administración de políticas de Apache Ranger.

Temas• el complemento de Apache Hive (p. 436)

435

Page 444: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

• el complemento Apache Spark (p. 438)• Complemento EMRFS S3 (p. 443)

el complemento de Apache HiveApache Hive es un popular motor de ejecución dentro del ecosistema de Hadoop. Amazon EMRproporciona un complemento Apache Ranger para poder proporcionar controles de acceso detallados paraHive. El complemento es compatible con el servidor Apache Ranger Admin de código abierto versión 2.0 yposterior.

Temas• Características admitidas (p. 436)• Instalación de la configuración del servicio (p. 436)• Consideraciones (p. 438)• Limitaciones (p. 438)

Características admitidas

El complemento Apache Ranger para Hive en EMR admite todas las funciones del complemento decódigo abierto, que incluye controles de acceso a nivel de columna, base de datos, tabla, filtrado defilas y enmascaramiento de datos. Para obtener una tabla de comandos de Hive y permisos de Rangerasociados, consulteComandos de Hive para asignación de permisos de Ranger.

Instalación de la configuración del servicio

El complemento Apache Hive es compatible con la definición de servicio Hive existente dentro de ApacheHive «Hadoop SQL», como se muestra a continuación.

Si no dispone de una instancia del servicio en Hadoop SQL, como se muestra anteriormente, puede crearuna. Haga clic en el botón.+junto a Hadoop SQL.

1. Nombre del servicio (si se muestra): Introduzca el nombre del servicio. El valor sugeridoesamazonemrhive. Anote este nombre de servicio: es necesario al crear una configuración deseguridad de EMR.

2. Display Name (Nombre de visualización): Introduzca el nombre que se mostrará para el servicio. El valorsugerido esamazonemrhive.

436

Page 445: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Las propiedades de Config de Apache Hive se utilizan para establecer una conexión con el servidor deadministración de Apache Ranger con un HiveServer2 para implementar el autocompletado al crearpolíticas. No es necesario que las propiedades siguientes sean precisas si no tiene un proceso deHiveServer2 persistente y se puede rellenar con cualquier información.

• Username (Nombre de usuario):: Introduzca un nombre de usuario para la conexión JDBC a unainstancia de una instancia de HiveServer2.

• Contraseña: Escriba la contraseña del nombre de usuario anterior.• jdbc.driver.className: Introduzca el nombre de clase de la clase JDBC para la conectividad Apache

Hive. El valor predeterminado se puede utilizar.• jdbc.url: Introduzca la cadena de conexión JDBC que se va a utilizar al conectarse a HiveServer2.• Common Name para certificado: El campo CN del certificado utilizado para conectarse al servidor de

administración desde un complemento cliente. Este valor debe coincidir con el campo CN del certificadoTLS creado para el complemento.

LaPrueba de conexiónprueba si los valores anteriores se pueden utilizar para conectarse correctamente ala instancia de HiveServer2. Una vez creado correctamente el servicio, Service Manager debería tener elsiguiente aspecto:

437

Page 446: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Consideraciones

Servidor de metadatos Hive

Los motores de confianza solo pueden acceder al servidor de metadatos de Hive, específicamente Hive yemr_record_server para protegerlo del acceso no autorizado. Todos los nodos del clúster también accedenal servidor de metadatos Hive y todos los nodos del nodo maestro acceden al puerto 9083 requerido.

Autenticación

De forma predeterminada, Apache Hive está configurado para autenticarse mediante Kerberos tal y comose configura en la configuración de seguridad de EMR. HiveServer2 se puede configurar para autenticar alos usuarios también mediante LDAP. ConsulteImplementación de la autenticación LDAP para Hive en unclúster de Amazon EMR de varios inquilinospara obtener información.

Limitaciones

Las siguientes son las limitaciones actuales del complemento Apache Hive en Amazon EMR 5.x:

• Los roles de Hive no se admiten actualmente. No se admiten las instrucciones de concesión yrevocación.

• No se admite la CLI de Hive. JDBC/Beeline es la única forma autorizada de conectar Hive.• hive.server2.builtin.udf.blacklistla configuración debe rellenarse con UDF que considere

inseguras.

el complemento Apache SparkAmazon EMR ha integrado EMR RecordServer para proporcionar un control de acceso preciso paraSparkSQL. EMR RecordServer es un proceso privilegiado que se ejecuta en todos los nodos de un clústerhabilitado para Apache Ranger. Cuando un controlador o ejecutor de Spark ejecuta una instrucciónSparkSQL, todos los metadatos y solicitudes de datos pasan por RecordServer. Para obtener másinformación acerca de EMR RecordServer, consulte laComponentes de Amazon EMR (p. 421)(Se hacreado el certificado).

Temas

438

Page 447: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

• Características admitidas (p. 439)• Reimplementar la definición de servicio para utilizar las instrucciones INSERT INTO, INSERT

OVERWRITE o ALTER TABLE (p. 439)• Instalación de la definición de servicio (p. 440)• Creación de políticas de SparkSQL (p. 442)• Consideraciones (p. 443)• Limitaciones (p. 443)

Características admitidas

Sentencia SQL/acción Ranger STATUS Versión EMR compatible

SELECT Soportado A partir de 5,32

SHOW DATABASES Soportado A partir de 5,32

SHOW TABLES Soportado A partir de 5,32

SHOW COLUMNS Soportado A partir de 5,32

MOSTRAR LAS PROPIEDADESDE LA TABLA

Soportado A partir de 5,32

DESCRIBE TABLE Soportado A partir de 5,32

CREATE TABLE No es compatible

UPDATE TABLE No es compatible

INSERCIÓN DESOBREESCRITURA

Soportado A partir de 5,34 y 6,4

INSERT INTO Soportado A partir de 5,34 y 6,4

ALTER TABLE Soportado A partir de 6.4

DELETE FROM No es compatible

Se admiten las siguientes características cuando se utiliza SparkSQL:

• El control de acceso detallado de las tablas del metaalmacén de Hive y las políticas se pueden crear anivel de base de datos, tabla y columna.

• Las políticas de Apache Ranger pueden incluir políticas de subvenciones y políticas de denegación ausuarios y grupos.

• Los eventos de auditoría se envían a CloudWatch Registros.

Reimplementar la definición de servicio para utilizar las instrucciones INSERTINTO, INSERT OVERWRITE o ALTER TABLE

Note

A partir de Amazon EMR 6.4, puede utilizar Spark SQL con las instrucciones: INSERTAR EN,INSERTAR SOBRESCRITURA o MODIFICAR TABLA. Si ya tiene una instalación en el servidorApache Ranger con definiciones de servicio Apache Spark implementadas, utilice el siguientecódigo para volver a implementar las definiciones de servicio.

439

Page 448: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

# Get existing Spark service definition id calling Ranger REST API and JSON processorcurl --silent -f -u <admin_user_login>:<password_for_ranger_admin_user> \-H "Accept: application/json" \-H "Content-Type: application/json" \-k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/name/amazon-emr-spark' | jq .id

# Download the latest Service definitionwget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-spark.json

# Update the service definition using the Ranger REST APIcurl -u <admin_user_login>:<password_for_ranger_admin_user> -X PUT -d @ranger-servicedef-amazon-emr-spark.json \-H "Accept: application/json" \-H "Content-Type: application/json" \-k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/<Spark service definition id from step 1>'

Instalación de la definición de servicio

La instalación de la definición del servicio Apache Spark de EMR requiere la configuración del servidorRanger Admin. Consulte Configurar el servidor Ranger Admin (p. 423).

Siga estos pasos para instalar la definición del servicio Apache Spark:

Paso 1: SSH en el servidor de administración de Apache Ranger

Por ejemplo:

ssh [email protected]

Paso 2: Descargue la definición de servicio y el complemento del servidor Apache Ranger Admin

En un directorio temporal, descargue la definición de servicio. Esta definición de servicio es compatible conlas versiones de Ranger 2.x.

mkdir /tmp/emr-spark-plugin/cd /tmp/emr-spark-plugin/

wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-spark-plugin-2.x.jarwget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-spark.json

Paso 3: Instale el complemento Apache Spark para Amazon EMR

export RANGER_HOME=.. # Replace this Ranger Admin's home directory eg /usr/lib/ranger/ranger-2.0.0-adminmkdir $RANGER_HOME/ews/webapp/WEB-INF/classes/ranger-plugins/amazon-emr-sparkmv ranger-spark-plugin-2.x.jar $RANGER_HOME/ews/webapp/WEB-INF/classes/ranger-plugins/amazon-emr-spark

Paso 4: Registrar la definición de servicio Apache Spark para Amazon EMR

curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-spark.json \-H "Accept: application/json" \

440

Page 449: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

-H "Content-Type: application/json" \-k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef'

Si este comando se ejecuta correctamente, verá un nuevo servicio en la interfaz de usuario deadministrador de Ranger llamado «AMAZON-EMR-SPARK», como se muestra en la siguiente imagen (semuestra la versión 2.0 de Ranger).

Paso 5: Cree una instancia de la aplicación AMAZON-EMR-SPARK

Nombre del servicio (si se muestra): El nombre del servicio que se utilizará. El valor sugeridoesamazonemrspark. Tenga en cuenta este nombre de servicio, ya que será necesario al crear unaconfiguración de seguridad de EMR.

Nombre para mostrar: Nombre que se mostrará para esta instancia. El valor sugeridoesamazonemrspark.

Nombre común para el certificado: El campo CN del certificado utilizado para conectarse al servidor deadministración desde un complemento cliente. Este valor debe coincidir con el campo CN del certificadoTLS creado para el complemento.

441

Page 450: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Note

El certificado TLS de este complemento debería haberse registrado en el almacén de confianzadel servidor Ranger Admin. Consulte Certificados TLS (p. 424) para obtener más detalles.

Creación de políticas de SparkSQL

Al crear una nueva política, los campos que se deben rellenar son:

Nombre de la política: El nombre de esta política.

Label de política: Una etiqueta que puedes poner en esta política.

Base de datos: Base de datos a la que se aplica esta política. El comodín «*» representa todas lascolumnas.

Mesa: Tablas a las que se aplica esta política. El comodín «*» representa todas las columnas.

Columna de chispa EMR: Columnas a las que se aplica esta política. El comodín «*» representa todas lascolumnas.

Descripción: Una descripción de esta política de.

Para especificar los usuarios y grupos, introduzca los usuarios y grupos a continuación para concederpermisos. EMR SparkSQL actualmente solo admiteseleccionaraction. También puede especificarexclusiones para lapermitircondiciones ynegarcondiciones que se muestran a continuación.

442

Page 451: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Después de especificar las condiciones de permitir y denegar, haga clic enGuardar.

ConsideracionesCada nodo del clúster de EMR debe poder conectarse al nodo maestro del puerto 9083.

LimitacionesLas siguientes son las limitaciones actuales del complemento Apache Spark:

• Record Server siempre se conectará a HMS que se ejecuta en un clúster de Amazon EMR. ConfigureHMS para conectarse al modo remoto, si es necesario. No debe colocar valores de configuración dentrodel archivo de configuración Apache Spark Hive-site.xml.

• Las tablas creadas con fuentes de datos de Spark en CSV o Avro no se pueden leer mediante EMRRecordServer. Utilice Hive para crear y escribir datos y leer con Record.

• No se admiten las tablas Delta Lake ni Hudi.• Los usuarios deben tener acceso a la base de datos predeterminada. Este es un requisito para Apache

Spark.• El servidor Ranger Admin no admite el autocompletado.• El complemento SparkSQL para Amazon EMR no admite filtros de filas ni enmascaramiento de datos.• Al utilizar ALTER TABLE con Spark SQL, una ubicación de partición debe ser el directorio secundario de

una ubicación de tabla. No se admite la inserción de datos en una partición en la que la ubicación de lapartición es diferente de la ubicación de la tabla.

• Solo admitimos las siguientes declaraciones ALTER TABLE:• ADD COLUMN• AÑADIR PARTICIÓN• ESTABLECER PROPIEDADES DE LA TABLA• ESTABLECER UBICACIÓN• UNSET

Complemento EMRFS S3Para facilitar la prestación de controles de acceso contra objetos de S3 en un clúster de varios inquilinos, elcomplemento EMRFS S3 proporciona controles de acceso a los datos de S3 al acceder a ellos a través deEMRFS. Puede permitir el acceso a los recursos de S3 a nivel de usuario y grupo.

443

Page 452: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Para lograrlo, cuando su aplicación intenta acceder a los datos de S3, EMRFS envía una solicitudde credenciales al proceso del agente secreto, donde la solicitud se autentica y autoriza contra uncomplemento de Apache Ranger. Si la solicitud está autorizada, el Agente secreto asume el rol de IAMpara Apache Ranger Engines con una política restringida para generar credenciales que solo tienenacceso a la política de Ranger que permitió el acceso. A continuación, las credenciales se transfieren aEMRFS para acceder a S3.

Temas• Características admitidas (p. 444)• Instalación de la configuración del servicio (p. 444)• Creación de políticas de EMRFS S3 (p. 446)• Notas de uso de directivas de EMRFS S3 (p. 448)• Limitaciones (p. 450)

Características admitidas

El complemento EMRFS S3 proporciona autorización de nivel de almacenamiento. Se pueden crearpolíticas para proporcionar acceso a usuarios y grupos a buckets y prefijos de S3. La autorización serealiza solo contra EMRFS.

Instalación de la configuración del servicio

La instalación de la definición de servicio EMRFS S3 requiere que se configure el servidor Ranger Admin.Consulte Configurar el servidor Ranger Admin (p. 423).

Siga estos pasos para instalar la definición de servicio de EMRFS.

Paso 1: SSH en el servidor de administración de Apache Ranger.

Por ejemplo:

ssh [email protected]

Paso 2: Descargue la definición de servicio de Amazon EMR y el complemento del servidor deadministración de Apache Ranger.

En un directorio temporal, descargue la definición de servicio Amazon EMR. Esta definición de servicio escompatible con las versiones de Ranger 2.x.

mkdir /tmp/emr-emrfs-plugin/cd /tmp/emr-emrfs-plugin/

wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-emrfs.jsonwget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-emr-emrfs-plugin-2.x.jar

Paso 3: Instale el complemento Apache EMRFS S3 para Amazon EMR.

export RANGER_HOME=.. # Replace this Ranger Admin's home directory eg /usr/lib/ranger/ranger-2.0.0-adminmkdir $RANGER_HOME/ews/webapp/WEB-INF/classes/ranger-plugins/amazon-emr-emrfsmv ranger-emr-emrfs-plugin-2.x.jar $RANGER_HOME/ews/webapp/WEB-INF/classes/ranger-plugins/amazon-emr-emrfs

444

Page 453: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Paso 4: Registrar la definición de servicio EMRFS S3.

curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-emrfs.json \-H "Accept: application/json" \-H "Content-Type: application/json" \-k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef'

Si este comando se ejecuta correctamente, verá un nuevo servicio en la interfaz de usuario deadministrador de Ranger llamado «AMAZON-EMR-S3", como se muestra en la siguiente imagen (semuestra la versión 2.0 de Ranger).

Paso 5: Cree una instancia de la aplicación AMAZON-EMR-EMRFS.

Cree una instancia de la definición del servicio.

• Haga clic en el botón.+junto a AMAZON-EMR-EMRFS.

Rellene los siguientes campos:

Nombre del servicio (si se muestra): El valor sugerido esamazonemrspark. Tenga en cuenta este nombrede servicio, ya que será necesario al crear una configuración de seguridad de EMR.

Display Name (Nombre de visualización): El nombre que se muestra para este servicio. El valor sugeridoesamazonemrspark.

Common Name para certificado: El campo CN del certificado utilizado para conectarse al servidor deadministración desde un complemento cliente. Este valor debe coincidir con el campo CN del certificadoTLS creado para el complemento.

445

Page 454: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Note

El certificado TLS de este complemento debería haberse registrado en el almacén de confianzadel servidor Ranger Admin. Consulte Certificados TLS (p. 424) para obtener más detalles.

Cuando se crea el servicio, Service Manager incluye «AMAZON-EMR-EMRFS», tal y como se muestra enla siguiente imagen.

Creación de políticas de EMRFS S3

Para crear una nueva política, en la página Crear política del Administrador de servicios, rellene lossiguientes campos.

446

Page 455: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Nombre de la política: El nombre de esta política.

Label de política: Una etiqueta que puedes poner en esta política.

Recursos de S3: Recurso que comienza por el depósito y el prefijo opcional. ConsulteNotas de uso dedirectivas de EMRFS S3 (p. 448)para obtener información sobre las mejores prácticas. Los recursos delservidor Ranger Admin no deben conteners3://,s3a://os3n://.

Como se muestra a continuación, puede especificar usuarios y grupos para conceder permisos. EMRSparkSQL actualmente solo admiteseleccionaraction. También puede especificar exclusiones para lascondiciones de permiso y de denegación que se muestran a continuación.

Note

Se permiten un máximo de tres recursos para cada póliza. La adición de más de tres recursospuede provocar un error cuando esta directiva se utiliza en un clúster de EMR. Al agregar más detres políticas, se muestra un recordatorio sobre el límite de la política.

447

Page 456: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

Notas de uso de directivas de EMRFS S3Cuando se crean políticas de S3 dentro de Apache Ranger, hay algunas consideraciones de uso que debetener en cuenta.

Permisos para varios objetos de S3

Puede utilizar políticas recursivas y expresiones comodín para otorgar permisos a varios objetos de S3 conprefijos comunes. Las políticas recursivas otorgan permisos a todos los objetos con un prefijo común. Lasexpresiones comodín seleccionan varios prefijos. Juntos, otorgan permisos a todos los objetos con variosprefijos comunes, tal y como se muestra en los siguientes ejemplos.

Example Uso de una política recursiva

Supongamos que desea obtener permisos para listar todos los archivos de parquet de un bucket de S3organizados de la siguiente manera.

s3://sales-reports/americas/ +- year=2000 | +- data-q1.parquet | +- data-q2.parquet +- year=2019 | +- data-q1.json | +- data-q2.json | +- data-q3.json | +- data-q4.json | +- year=2020 | +- data-q1.parquet | +- data-q2.parquet | +- data-q3.parquet | +- data-q4.parquet | +- annual-summary.parquet +- year=2021

En primer lugar, considere las limas de parquet con el prefijos3://sales-reports/americas/year=2000. Puedes conceder GetObject permisos para todos ellos de dos formas:

Uso de políticas no recursivas: Una opción consiste en utilizar dos políticas no recursivas independientes,una para el directorio y otra para los archivos.

La primera política concede permiso al prefijos3://sales-reports/americas/year=2020(no hayrailing/).

- S3 resource = "sales-reports/americas/year=2000"- permission = "GetObject"- user = "analyst"

La segunda política utiliza una expresión comodín para conceder permisos a todos los archivos conprefijo.sales-reports/americas/year=2020/(tenga en cuenta el final/).

- S3 resource = "sales-reports/americas/year=2020/*"- permission = "GetObject"- user = "analyst"

Uso de una política recursiva: Una alternativa más conveniente es utilizar una única política recursiva yconceder permiso recursivo al prefijo.

- S3 resource = "sales-reports/americas/year=2020"

448

Page 457: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónComplementos de Apache Ranger

- permission = "GetObject" - user = "analyst" - is recursive = "True"

Hasta ahora, solo las limas de parquet con el prefijos3://sales-reports/americas/year=2000sehan incluido. Ahora también puede incluir las limas de parquet con un prefijo diferente,s3://sales-reports/americas/year=2020, en la misma política recursiva introduciendo una expresión comodínde la siguiente manera.

- S3 resource = "sales-reports/americas/year=20?0" - permission = "GetObject" - user = "analyst" - is recursive = "True"

Políticas de para PutObject y DeleteObject Permisos de

Escritura de políticas paraPutObjectyDeleteObjectlos permisos de los archivos de EMRFS necesitancuidados especiales porque, a diferencia de GetObject permisos, necesitan permisos recursivosadicionales concedidos al prefijo.

Example Políticas de para PutObject y DeleteObject Permisos de

Por ejemplo, eliminar el archivoannual-summary.parquetrequiere no solo un DeleteObject permisopara el archivo real.

- S3 resource = "sales-reports/americas/year=2020/annual-summary.parquet"- permission = "DeleteObject"- user = "analyst"

También requiere una política que otorgue recursiva.GetObjectyPutObjectpermisos a su prefijo.

Del mismo modo, modificar el archivoannual-summary.parquet, requiere no solounPutObjectpermiso para el archivo real.

- S3 resource = "sales-reports/americas/year=2020/annual-summary.parquet"- permission = "PutObject"- user = "analyst"

También requiere una política que otorgue recursiva.GetObjectpermiso para su prefijo.

- S3 resource = "sales-reports/americas/year=2020"- permission = "GetObject"- user = "analyst"- is recursive = "True"

Caracteres comodín en políticas

Hay dos áreas en las que se pueden especificar caracteres comodín. Al especificar un recurso de S3, «*» y«?» se puede utilizar. El «*» proporciona coincidencia con una ruta de S3 y coincide con todo después delprefijo. Por ejemplo, la política siguiente.

S3 resource = "sales-reports/americas/*"

Esto coincide con las siguientes rutas de S3.

sales-reports/americas/year=2020/

449

Page 458: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSolución de problemas de Apache Ranger

sales-reports/americas/year=2019/sales-reports/americas/year=2019/month=12/day=1/afile.parquet sales-reports/americas/year=2018/month=6/day=1/afile.parquet sales-reports/americas/year=2017/afile.parquet

El «?» comodín coincide con un solo carácter. Por ejemplo, para la política de.

S3 resource = "sales-reports/americas/year=201?/"

Esto coincide con las siguientes rutas de S3.

sales-reports/americas/year=2019/sales-reports/americas/year=2018/sales-reports/americas/year=2017/

Caracteres comodín en usuarios

Hay dos comodines integrados al asignar usuarios para proporcionar acceso a los usuarios. El primero esel comodín «{USER}» que proporciona acceso a todos los usuarios. El segundo comodín es «{OWNER}»,que proporciona acceso al propietario de un objeto concreto o directamente. Sin embargo, el comodín«{USER}» no se admite actualmente.

Limitaciones

Las siguientes son las limitaciones actuales del complemento EMRFS S3:

• Las políticas de Apache Ranger pueden tener como máximo tres políticas.• El acceso a S3 debe realizarse a través de EMRFS y se puede utilizar con aplicaciones relacionadas con

Hadoop. Lo siguiente no es compatible.

- Librerías Boto3

-AWSSDK y AWK CLI

- Conector de código abierto S3A• No se admiten las políticas de denegación de Apache Ranger.• Actualmente no se admiten operaciones en S3 con claves con cifrado CSE-KMS.• No se admite el soporte entre regiones.• No se admite la función Security Zone de Apache Ranger. Las restricciones de control de acceso

definidas mediante la función Zona de seguridad no se aplican a los clústeres de Amazon EMR.• El usuario de Hadoop no genera ningún evento de auditoría, ya que Hadoop siempre accede al perfil de

instancia de EC2.• Se recomienda deshabilitar la vista de coherencia de Amazon EMR. S3 es altamente consistente, por lo

que ya no es necesario. ConsulteAmazon S3 fuerte consistenciapara obtener más información.• El complemento EMRFS S3 realiza numerosas llamadas STS. Se aconseja que realice pruebas de

carga en una cuenta de desarrollo y supervise el volumen de llamadas de STS. También se recomiendaque realice una solicitud STS para aumentar AssumeRole límites de servicio.

Solución de problemas de Apache RangerEstos son algunos de los problemas diagnosticados comúnmente relacionados con el uso de ApacheRanger.

450

Page 459: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSolución de problemas de Apache Ranger

Recomendaciones• Prueba mediante un solo clúster de nodos maestros: Los clústeres maestros de un solo nodo se

aprovisionan más rápido que un clúster de varios nodos, lo que puede reducir el tiempo de cadaiteración de prueba.

• Establezca el modo de desarrollo en el clúster. Al iniciar el clúster de EMR, establezca la--additional-info"parámetro para:

'{"clusterType":"development"}'

Este parámetro solo se puede establecer mediante laAWSCLI oAWSSDK y no está disponible a travésde la consola de EMR. Cuando se establece este indicador y el maestro no se aprovisiona, el servicioEMR mantiene vivo el clúster durante algún tiempo antes de que lo descomience. Esta vez resulta muyútil para sondear varios archivos de registro antes de que finalice el clúster.

No se pudo aprovisionar el clústerExisten varias razones por las que un clúster de EMR puede no iniciarse. Aquí hay algunas maneras dediagnosticar el problema.

Comprobar registros de aprovisionamiento de EMR

Amazon EMR utiliza Puppet para instalar y configurar aplicaciones en un clúster de EMR. Al examinar losregistros, se proporcionará información sobre si hay algún error durante la fase de aprovisionamiento de unclúster de EMR. Se puede acceder a los registros en el clúster o en S3 si los registros están configuradospara enviarlos a S3.

Los registros se almacenan en/var/log/provision-node/apps-phase/0/{UUID}/puppet.logenel disco ys3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/provision-node/apps-phase/0/{UUID}/puppet.log.gz.

Mensajes de error comunes

Mensaje de error Causa

Marioneta (err): Systemd start para emr-record-server error! log journalctl para emr-record-server:

EMR Record Server no se ha iniciado. Consulte losregistros de EMR Record Server a continuación.

Marioneta (err): Systemd start para emr-record-server error! log journalctl para emrsecretagent:

El agente secreto de EMR no se pudo iniciar.Consulte Comprobar registros del agente secreto acontinuación.

/Stage [main] /Ranger_plugins#Ranger_hive_plugin/Ranger_plugins#Prepare_Two_way_TLS [configurar TLSbidireccional en el plugin Hive] /Exec [crearalmacén de claves y almacén de confianzapara el plugin Ranger Hive] /returns (aviso):140408606197664:Error:0906D06C:RutinasPEM EM_READ_BIO:Sin línea deinicio:PEM_lib.C:707:Esperando: CUALQUIERCLAVE PRIVADA

El certificado TLS privado de Secret Manager parael certificado del complemento Apache Rangerno tiene el formato correcto o no es un certificadoprivado. ConsulteCertificados TLS (p. 424)paraformatos de certificado.

/Stage [main] /Ranger_plugins# Ranger_S3_plugin/ranger_plugins# prepare_two_way_TLS[configurar TLS bidireccional en el pluginRanger s3] /Exec [crear almacén de claves

El rol de perfil de instancia EC2 no tiene lospermisos correctos para recuperar los certificadosTLS de Secrets Agent.

451

Page 460: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSolución de problemas de Apache Ranger

Mensaje de error Causay truststore para el complemento Rangeramazon-emr-s3] /returns (aviso): An error(AccessDeniedException) when calling theGetSecretValue operación: Usuario: arn:aws:sts#xxxxxxxxxxx:asumed-role/EMR_EC2_defaultrole/I-xxxxxxxxxxxx no está autorizado pararealizar: SecretManager:getSecretValue enel recurso: ARN:AWS:SecretManager:US-EAST-1:xxxxxx:Secret:AdminServer-xxxxx

Comprobar SecretAgent Registros de

Los registros del agente secreto se encuentran en/emr/secretagent/log/en un nodo EMRo en els3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/secretagent/directorio en S3.

Mensajes de error comunes

Mensaje de error Causa

Excepción en el subproceso «principal»com.amazonaws.services.securityToken.model.AWSSecurityTokenServiceException:Usuario: arn:aws:sts# xxxxxxxxxxxx:Assumed-Role/EMR_EC2_defaultrole/I-xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX noestá autorizado para realizar: ST:Assumeroleen el recurso: arn:aws:iam# xxxxxxxxxxxx:Role/*RangerPluginDataAccessRole* (Servicio:AWSSecurityTokenService; Código de estado:403; Código de error: AccessDenied; Id. desolicitud: XXXXXXXXX XXXXXX-XXXX- XXXX-XXXXXXXXXXXXXX; Proxy: nulo)

La excepción anterior significa que el rol de perfilde instancia EC2 de EMR no tiene permisospara asumir el rolFunción de acceso a datosdel complemento Ranger. Consulte Funcionesde IAM para la integración nativa con ApacheRanger (p. 426).

ERROR qtp54617902-149: Se ha producido unaexcepción de aplicación

javax.ws.rs.No se permite excepción: No sepermite el método HTTP 405

Estos errores se pueden ignorar sin problemas.

Comprobar registros del servidor de registros (para SparkSQL)

Los registros de EMR Record Server están disponibles en /var/log/emr-record-server/ en un nodo de EMR,o se pueden encontrar en el <LOG LOCATION><CLUSTER ID><EC2 INSTANCE ID>directorio s3:////node/ /daemons/emr-record-server/ de S3.

Mensajes de error comunes

Mensaje de error Causa

InstanceMetaDataService ResourceFetcher:105- [] No se pudo recuperar el tokencom.amazonaws.SdkClientException: No se pudoconectar al endpoint de servicio

La EMR SecretAgent no ha surgido o está teniendoun problema. Inspeccione el SecretAgent registrosde errores y el script de títeres para determinar sihubo algún error de aprovisionamiento.

452

Page 461: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónControlar el tráfico de red con grupos de seguridad

Las consultas están fallando inesperadamenteCompruebe los registros de complementos de Apache Ranger (Apache Hive, EMR RecordServer, EMRSecretAgent, etc., registros)

Esta sección es común en todas las aplicaciones que se integran con el complemento Ranger, comoApache Hive, EMR Record Server y EMR SecretAgent.

Mensajes de error comunes

Mensaje de error Causa

ERROR policyRefresher:272 - [] policyRefresher(serviceName=policy-repository): no se pudoencontrar el servicio. Limpiará la caché local de laspolíticas (-1)

Este mensaje de error significa que el nombre delservicio que proporcionó en la configuración deseguridad de EMR no coincide con un repositoriode políticas de servicio en el servidor RangerAdmin.

Si dentro del servidor Ranger Admin su servicio AMAZON-EMR-SPARK tiene el siguiente aspecto,entonces debe ingresaramazonemrsparkcomo nombre del servicio.

Controlar el 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 EMRygrupos de seguridad adicionales.

Cada clúster tiene asociados grupos de seguridad administrados. Puede utilizar los grupos de seguridadadministrados predeterminados que crea Amazon EMR o especificar grupos de seguridad administradospersonalizados. En ambos casos, Amazon EMR añade automáticamente reglas a los grupos de seguridadadministrados que un clúster necesita para comunicarse entre las instancias del clúster yAWSServiciosde .

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 define. 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 obtengan

453

Page 462: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

acceso 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.

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 Amazon EMR Block PublicAccess en cada región que utilice para evitar la creación de clústeres si una regla permite el accesopúblico en cualquier puerto que no haya añadido a una lista de excepciones. ParaAWScuentas creadasdespués de julio de 2019, Amazon EMR bloquea el acceso público está activado de forma predeterminada.ParaAWScuentas que crearon un clúster antes de julio de 2019, Amazon EMR bloquea el acceso públicoestá desactivado de forma predeterminada. Para obtener más información, consulte Usar Amazon EMRbloquear el acceso público (p. 465).

Temas• Trabajo con grupos de seguridad administrados por Amazon EMR (p. 454)• Uso de grupos de seguridad adicionales (p. 461)• Especificación de grupos de seguridad adicionales y administrados por Amazon EMR (p. 461)• Especificación de grupos de seguridad de EC2 para EMR Notebooks (p. 463)• Usar Amazon EMR bloquear el acceso público (p. 465)

Trabajo con 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. 225).

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 utiliza grupos de seguridad administrados predeterminados, no es necesario que los especifique al crearun clúster. Amazon EMR utiliza automáticamente los valores predeterminados. Además, si los valores

454

Page 463: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

predeterminados no existen todavía en la VPC del clúster, Amazon EMR los crea. Amazon EMR tambiénlos crea 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 cualquier falta.entradareglas que necesita elclúster nuevo, 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. 455).

• ElasticMapReduce-slave

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para instancias secundarias y de tareas (subredes públicas) (p. 457).

• 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. 457).

• ElasticMapReduce-Slave-Private

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para instancias secundarias y de tareas (subredes privadas) (p. 459).

• ElasticMapReduce-ServiceAccess

Para ver las reglas de este grupo de seguridad, consulte Grupo de seguridad administrado por AmazonEMR para el acceso al servicio (subredes privadas) (p. 460).

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úblicas tienelaNombre de grupodeElasticMapReduce-master. Tiene las siguientes reglas. Si especifica un grupo deseguridad administrado personalizado, Amazon EMR añadirá las mismas reglas a su grupo de seguridadpersonalizado.

Tipo ProtocoloRangodepuerto

Fuente Detalles

Reglas de entrada

Todo elICMP IPv4

Todos N/A

Todos losTCP

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 seguridad

455

Page 464: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

Tipo ProtocoloRangodepuerto

Fuente Detalles

administrados personalizados para restringir elacceso entre clústeres.

Todo elICMP IPV4

Todos N/A

Todos losTCP

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.

Para permitir el acceso SSH para fuentes de confianza para el grupo de seguridadElasticMapReduce-master

Para editar los grupos de seguridad, debe tener permiso para administrar grupos de seguridad de la VPCen la que se encuentra el clúster. Para obtener más información, consulteCambio de los permisos de unusuario de IAMy laEjemplo de políticaque permite administrar grupos de seguridad de EC2 en elIAM UserGuide.

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Seleccione Clusters (Clústeres).3. Elija el iconoNombredel clúster que desea modificar.4. Elija el iconoGrupos de seguridad para Masterlink underSeguridad y acceso.5. Elija ElasticMapReduce-master en la lista.6. Elija el iconoReglas de entraday, a continuación,Edición de reglas entrantes.7. Compruebe si hay una regla de entrada que permita el acceso público con la siguiente configuración.

Si existe, eligeBorrarpara quitarlo.

• Type

SSH• Puerto

22• Fuente

Personalizado 0.0.0.0/0

Warning

Antes de diciembre de 2020, el grupo de seguridad ElasticMapReduce-Master tenía una reglapreconfigurada para permitir el tráfico entrante en el puerto 22 desde todos los orígenes.Esta regla se creó para simplificar las conexiones SSH iniciales al nodo principal. Esabsolutamente recomendable que elimine esta regla de entrada y restrinja el tráfico a fuentesde confianza.

8. Desplácese hasta la parte inferior de la lista de reglas y elijaAgregar regla.

456

Page 465: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

9. En Type (Tipo), seleccione SSH.

La selección de SSH ingresa automáticamenteTCPparaProtocoloy22paraRango de puertos.10. Para origen, seleccioneMi dirección IPpara agregar automáticamente su dirección IP como dirección

de origen. También puede agregar un rango dePersonalizadodirecciones IP de cliente de confianzao cree reglas adicionales para otros clientes. Muchos entornos de red asignan direcciones IPdinámicamente, por lo que es posible que tenga que actualizar sus direcciones IP para clientes deconfianza en el future.

11. Seleccione Save (Guardar).12. También puede seleccionarElasticMapReduce-slavedesde la lista y repita los pasos anteriores para

permitir el acceso del cliente de SSH a los nodos principales y de tareas.

Grupo de seguridad administrado por Amazon EMR parainstancias secundarias y de tareas (subredes públicas)El grupo de seguridad administrado predeterminado de las instancias secundarias y de tareas delas subredes públicas tiene laNombre de grupodeElasticMapReduce-slave. El grupo de seguridadadministrado predeterminado tiene las siguientes reglas, y Amazon EMR añade las mismas reglas siespecifica un grupo de seguridad administrado personalizado.

Tipo ProtocoloRangodepuerto

Fuente Detalles

Reglas de entrada

Todo elICMP IPV4

Todos N/A

Todos losTCP

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/A

Todos losTCP

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.

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 privadastiene laNombre de grupodeElasticMapReduce-Master-Private. El grupo de seguridad administrado

457

Page 466: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

predeterminado tiene las siguientes reglas, y Amazon EMR añade las mismas reglas si especifica un grupode seguridad administrado personalizado.

Tipo ProtocoloRangodepuerto

Fuente Detalles

Reglas de entrada

Todo elICMP IPv4

Todos N/A

Todos losTCP

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/A

Todos losTCP

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.

Reglas de salida

Todo eltráfico

Todos Todos 0.0.0.0/0 Permite el acceso de salida a Internet.

TCPpersonalizada

TCP 9443 El ID de grupo delgrupo de seguridadadministrado parael acceso de losservicios en unasubred privada.

Si se elimina la regla de salida predeterminada«Todo el tráfico» anterior, esta regla es unrequisito mínimo para EMR 5.30.0 y versionesposteriores.

Note

Amazon EMR no agrega esta reglacuando utiliza un grupo de seguridadadministrado personalizado.

TCPpersonalizada

TCP 80(http)o 443(https)

El ID de grupo delgrupo de seguridadadministrado parael acceso de los

Si se elimina la regla de salida predeterminada«Todo el tráfico» anterior, esta regla es unrequisito mínimo para que EMR 5.30.0 yversiones posteriores se conecte a Amazon S3 através de https.

458

Page 467: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

Tipo ProtocoloRangodepuerto

Fuente Detalles

servicios en unasubred privada.

Note

Amazon EMR no agrega esta reglacuando utiliza un grupo de seguridadadministrado personalizado.

Grupo de seguridad administrado por Amazon EMR parainstancias secundarias y de tareas (subredes privadas)El grupo de seguridad administrado predeterminado de las instancias secundarias y de tareas de lassubredes privadas tiene laNombre de grupodeElasticMapReduce-Slave-Private. El grupo de seguridadadministrado predeterminado tiene las siguientes reglas, y Amazon EMR añade las mismas reglas siespecifica un grupo de seguridad administrado personalizado.

Tipo ProtocoloRangodepuerto

Fuente Detalles

Reglas de entrada

Todo elICMP IPV4

Todos N/A

Todos losTCP

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/A

Todos losTCP

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.

Reglas de salida

Todo eltráfico

Todos Todos 0.0.0.0/0 Consulte Edición de reglas de salida (p. 460) acontinuación.

459

Page 468: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTrabajo con grupos de seguridadadministrados por Amazon EMR

Tipo ProtocoloRangodepuerto

Fuente Detalles

TCPpersonalizada

TCP 80(http)o 443(https)

El ID de grupo delgrupo de seguridadadministrado parael acceso de losservicios en unasubred privada.

Si se elimina la regla de salida predeterminada«Todo el tráfico» anterior, esta regla es unrequisito mínimo para que EMR 5.30.0 yversiones posteriores se conecte a Amazon S3 através de https.

Note

Amazon EMR no agrega esta reglacuando utiliza un grupo de seguridadadministrado personalizado.

Edición de reglas de salida

De forma predeterminada, Amazon EMR crea este grupo de seguridad con reglas de salida que permitentodo el tráfico saliente en todos los protocolos y puertos. Se selecciona permitir todo el tráfico salienteporque varias aplicaciones de Amazon EMR y clientes que se pueden ejecutar en clústeres de AmazonEMR pueden requerir reglas de salida diferentes. EMR no puede anticipar esta configuración específicaal crear grupos de seguridad predeterminados. Puede reducir el alcance de salida en sus grupos deseguridad para incluir solo las reglas que se adapten a sus casos de uso y políticas de seguridad. Comomínimo, este grupo de seguridad requiere las siguientes reglas de salida, pero algunas aplicacionespodrían necesitar salida adicional.

Tipo ProtocoloRangodepuerto

Destino Detalles

Todos losTCP

TCP Todos pl-xxxxxxxx Lista de prefijos administrados por AmazonS3com.amazonaws.MyRegion.s3.

All Traffic Todos Todos sg-xxxxxxxxxxxxxxxxx

El ID de laElasticMapReduce-Slave-Privategrupo de seguridad.

All Traffic Todos Todos sg-xxxxxxxxxxxxxxxxx

El ID de laElasticMapReduce-Master-Privategrupo de seguridad.

TCPpersonalizada

TCP 9443 sg-xxxxxxxxxxxxxxxxx

El ID de laElasticMapReduce-ServiceAccessgrupo de seguridad.

Grupo de seguridad administrado por Amazon EMR para elacceso al servicio (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.

460

Page 469: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso de grupos de seguridad adicionales

Tipo ProtocoloRangodepuerto

Fuente Detalles

Reglas de entradaNecesario para clústeres de EMR con Amazon EMR versión 5.30.0 y posterior.

TCPpersonalizada

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.

Reglas de salida Necesarias para todos los clústeres de EMR

TCPpersonalizada

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.

TCPpersonalizada

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.

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, consulteLímites de grupos deseguridaden laAmazon VPC User Guide.

Especificación de grupos de seguridad adicionales yadministrados por Amazon EMRPuede especificar grupos de seguridad mediante la AWS Management Console, la AWS CLI, o la API deEMR. Si no especifica grupos de seguridad, Amazon EMR crea grupos de seguridad predeterminados.La especificación de grupos de seguridad adicionales es opcional. Puede asignar grupos de seguridadadicionales a las instancias principales, a las instancias secundarias y de tareas y al acceso de losservicios (solo para las subredes privadas).

461

Page 470: Amazon EMR - Guía de administración

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 enhttps://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 lleguePaso 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 utilizando laAWS 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 deben 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 deben especificarEmrManagedMasterSecurityGroup. Paraclústeres en subredes privadas, también se debeespecificar ServiceAccessSecurityGroup.

ServiceAccessSecurityGroup Utilice este parámetro para especificar ungrupo de seguridad administrado personalizadopara el acceso de los servicios, que se aplicaúnicamente a los clústeres de las subredesprivadas. El grupo de seguridad que especifiquecomoServiceAccessSecurityGroupno debeutilizarse para ningún otro fin y debe reservarse

462

Page 471: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónGrupos de seguridad para los EMR Notebooks

Parámetro Descripcióntambién para Amazon EMR. Si se especificaeste parámetro, también se deben especificarEmrManagedMasterSecurityGroup.

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 principales y de tareas.

Note

Los caracteres de continuación de la línea Linux (\) se incluyen para facilitar la legibilidad. Sepueden quitar o utilizar en los comandos de Linux. En Windows, quítelas o reemplácese por unsigno de intercalación (^).

aws emr create-cluster --name "ClusterCustomManagedAndAdditionalSGs" \--release-label emr-emr-5.36.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, consultecreate-clusteren laAWS CLIReferencia de los comandos.

Especificación de grupos de seguridad de EC2 paraEMR NotebooksCuando crea un bloc de notas de EMR, se utilizan dos grupos de seguridad para controlar el tráfico de redentre el blocs de notas de EMR y el clúster de Amazon EMR cuando se utiliza el editor de blocs de notas.Los grupos de seguridad predeterminados tienen reglas mínimas que únicamente permiten el tráfico de redentre el servicio de EMR Notebooks y los clústeres a los que están asociados los blocs de notas.

Un bloc de notas EMR utilizaApache Livypara comunicarse con el clúster mediante un proxy utilizando elpuerto 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, consulteControlar el tráfico dered con grupos de seguridaden laGuía de administración de Amazon EMRyEspecificación de grupos deseguridad de EC2 para EMR Notebooks (p. 463).

463

Page 472: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónGrupos de seguridad para los EMR Notebooks

Grupo de seguridad 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 de grupo: Elastic Map Reduce Editores - Livy

Reglas

• Entrada

Permite el tráfico en el puerto TCP 18888 desde cualquier recurso en el grupo de seguridad de EC2predeterminado para EMR Notebooks

• Salida

Ninguno

Grupo de seguridad de EC2 predeterminado para los EMRNotebooksEl grupo de seguridad de EC2 predeterminado para el blocs de notas de EMR está asociado al editor deblocs de notas para cualquier blocs de notas de EMR al que esté asignado.

Nombre de 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 EMR Notebooks.

Grupo de seguridad EC2 personalizado para EMR Notebooks alasociar portátiles 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. El valor 0.0.0.0/0 se utiliza para fines de ejemplo. Puede modificar esta regla para especificarlas direcciones IP de los repositorios basados en GIT.

464

Page 473: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUsar Block Public Access de

Tipo Protocolo Rango de puerto Destino

Regla TCPpersonalizada

TCP 18888 SG-

HTTPS TCP 443 0.0.0.0/0

Usar Amazon EMR bloquear el acceso públicoAmazon EMR Block Public Access evita que un clúster de una subred pública se ejecute cuando un grupode seguridad asociado con el clúster disponga de una regla que permita el tráfico de entrada desde IPv40.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 una excepción de forma predeterminada. Puede configurar excepciones para permitirel acceso público en un puerto o rango de puertos. Bloquear el acceso público no surte efecto en lassubredes privadas.

Bloquear el acceso público está habilitado para cadaAWSRegión para suAWSaccount. En otras palabras,cada región tiene habilitado el acceso público de bloqueo para todos los clústeres creados por su cuentaen esa región.

Important

No recomendamos desactivar bloquear el acceso público de tu cuenta.

Bloquear el acceso público solo se aplica durante la creación del clúster. Bloquear el acceso público noimpide que los directores de IAM con los permisos adecuados actualicen las configuraciones de grupos deseguridad para permitir el acceso público en clústeres en ejecución.

Bloquear acceso público es una configuración a nivel de cuenta que le ayuda a administrar de formacentralizada el acceso a la red pública a los clústeres de Amazon EMR en una región. Cuando los usuariosde cuentas lanzan clústeres en la región en la que ha habilitado la configuración de bloqueo de accesopúblico, Amazon EMR comprueba las reglas de puerto definidas en la configuración y las compara conlas reglas de tráfico entrante especificadas en los grupos de seguridad asociados a los clústeres. Si estosgrupos de seguridad tienen reglas entrantes que abren puertos a la dirección IP pública pero estos puertosno están configurados como excepciones en la configuración de acceso público de bloques, Amazon EMRfallará en la creación del clúster y enviará una excepción al usuario.

Puede actualizar los grupos de seguridad y la configuración de bloqueo del acceso público en sus cuentasen cualquier momento. Amazon EMR no comprueba los clústeres que ya se están ejecutando con laconfiguración de acceso público de bloqueo después de dichas actualizaciones y no fallará en los clústeresque ya se están ejecutando.

Amazon EMR bloquea el acceso público está disponible en las siguientes regiones:

• África (Ciudad del Cabo) - af-south-1• Asia-Pacífico (Mumbai) ap-south-1• Asia-Pacífico (Hong Kong) ap-east-1• Asia-Pacífico (Osaka) ap-northeast-3• Asia-Pacífico (Seúl) ap-northeast-2• Asia-Pacífico (Singapur) - ap-southeast-1• Asia Pacífico (Sídney) (ap-southeast-2)• Asia Pacífico (Tokio): ap-northeast-1

465

Page 474: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUsar Block Public Access de

• Canadá (Central) - ca-central-1• China (Pekín) cn-north-1• China (Ningxia) cn-northwest-1• Europa (Fráncfort) - eu-central-1• Europa (Irlanda) (eu-west-1)• Europa (Londres) (eu-west-2)• Europa (Milán) (eu-south-1)• Europa (París) (eu-west-3)• Europa (Estocolmo) eu-north-1• Oriente Medio (Baréin) me-south-1• América del Sur (São Paulo) sa-east-1• EE. UU. Este (Norte de Virginia): us-east-1• EE.UU. Este (Ohio) (us-east-2)• EE. UU. Oeste (Norte de California) us-west-1• EE.UU. Oeste (Oregón) (us-west-2)

Configurar el acceso público de bloqueoPuede habilitar y deshabilitar la configuración de Block Public Access mediante laAWS ManagementConsole, elAWS CLIy la API de Amazon EMR. La configuración se aplica a toda su cuenta región porregión. Para mantener la seguridad del clúster, se recomienda mantener habilitado el BPA.

Para configurar Block Public Access mediante la AWS Management Console

1. Abra la consola de Amazon EMR enhttps://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 depuertos) 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 Save changes (Guardar cambios).

466

Page 475: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónValidación de conformidad

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 } ] }'

Validación de conformidad para Amazon EMRAuditores externos evalúan la seguridad y la conformidad de Amazon EMR como parte devariosAWSprogramas de conformidad. Estos incluyen SOC, PCI, FedRAMP, HIPAA y otros.

Para obtener una lista de AWS servicios en el ámbito de programas de cumplimiento específicos, consultelos AWS servicios en ámbito por programa de cumplimiento. Para obtener información general, consulteProgramas de conformidad de AWS.

467

Page 476: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónResiliencia

Puede descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener másinformación, consulte Descarga de informes en AWS Artifact.

Su responsabilidad en relación con la conformidad al utilizar Amazon EMR se determina en función dela confidencialidad de los datos, los objetivos de conformidad de su empresa y de la legislación y losreglamentos aplicables. Si su uso de Amazon EMR está sujeto a conformidad con normas tales comoHIPAA, PCI o FedRAMP,AWSproporciona recursos para ayudar con:

• Guías de inicio rápido de seguridad y cumplimiento: estas guías de implementación tratanconsideraciones sobre arquitectura y ofrecen pasos para implementar los entornos de referenciacentrados en la seguridad y la conformidad enAWS.

• Documento técnico sobre Architecting for HIPAA Security and Compliance— En este documento técnicose describe cómo pueden utilizar las empresasAWSpara crear aplicaciones que se ajusten al estándarHIPAA.

• 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 la normativa.

• AWS Security Hub: este servicio de AWS proporciona una vista integral de su estado de seguridad enAWS que lo ayuda a verificar la conformidad con los estándares y las prácticas recomendadas del sectorde seguridad.

Resiliencia en Amazon EMRLa infraestructura global de AWS se compone de regiones y zonas de disponibilidad de AWS. AWSLas regiones proporcionan varias zonas de disponibilidad físicamente independientes y aisladas quese encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, además debaja 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 acciónAWSinfraestructura global, Amazon EMR ofrece varias características que le ayudancon sus necesidades de resiliencia y copia de seguridad de los datos.

• Integración con Amazon S3 mediante EMRFS• Soporte para varios nodos principales

Seguridad de la infraestructura en Amazon EMRComo servicio administrado, Amazon EMR está protegido por laAWSprocedimientos de seguridad dered globales que se describen en laAmazon Web Services: Información general sobre los procesos deseguridaddocumento técnico.

UsasAWSllamadas a la API publicadas para acceder a Amazon EMR a través de la red. Los clientesdeben admitir Transport Layer Security (TLS) 1.2. 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.

468

Page 477: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect a Amazon EMR mediante unpunto de conexión de VPC de interfaz

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 de seguridad de IAM. También puede utilizar AWS SecurityToken Service (AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.

Temas• Connect a Amazon EMR mediante un punto de conexión de VPC de interfaz (p. 469)

Connect a Amazon EMR mediante un punto deconexión de VPC de interfazPuede conectarse directamente a Amazon EMR mediante unpunto de enlace de la VPC de interfaz(AWSPrivateLink)en su Virtual Private Cloud (VPC) en lugar de conectarse a través de Internet. Cuandose utiliza un punto de enlace de la VPC de tipo interfaz, la comunicación entre su VPC y Amazon EMR serealiza en su totalidad dentro delAWSred. Cada punto de conexión de VPC está representado por una ovarias Interfaces 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 niAWS Direct Connectconexión.Las instancias de la VPC no necesitan direcciones IP públicas para comunicarse con la API de AmazonEMR.

Para utilizar Amazon EMR a través de la VPC, debe conectarse desde una instancia que está dentro de laVPC o conectar su red privada a la VPC a través de una red privada virtual (VPN) de Amazon oAWS DirectConnect. Para obtener más información sobre Amazon VPN, consulte Conexiones VPN en la Guía delusuario de Amazon Virtual Private Cloud. Para obtener información sobre AWS Direct Connect, consulteCreació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 interfaz para conectarse a Amazon EMR mediantelaAWSConsola oAWS Command Line Interface(AWS CLI) comandos. Para obtener más informació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 Puntos de enlace de la VPC de tipo interfaz (AWS PrivateLink) enla Guía del usuario de Amazon VPC.

Amazon EMR admite realizar llamadas a todos susAcciones de APIdentro de tu VPC.

Puede adjuntar 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, consulteControl del acceso a losservicios con puntos de enlace de la VPC.

469

Page 478: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect a Amazon EMR mediante unpunto de conexión de VPC de interfaz

Creación de una política de punto de enlace de la VPC paraAmazon EMRPuede crear una política para los puntos de enlace de Amazon VPC para Amazon EMR y 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 enlace de la VPCen la guía del usuario de Amazon VPC.

Example — Política de punto de enlace de la VPC para denegar el acceso desde undeterminadoAWScuenta

La siguiente política de puntos de enlace de la VPC se niegaAWScuenta123456789012todo el acceso alos 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 la VPC que permite el acceso a la VPC solo a unprincipal de IAM especificado (usuario)

La siguiente política de punto de enlace de la VPC permite el acceso pleno solo al usuario deIAMlijuanenAWScuenta123456789012. A las demás entidades principales de IAM se les deniega elacceso a través del punto de enlace.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/lijuan" ] }

470

Page 479: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect a Amazon EMR mediante unpunto de conexión de VPC de interfaz

}]}

Example — Política de punto de conexión de la VPC para permitir operaciones de solo lectura deEMR

La siguiente política de punto de enlace de la VPC solo permiteAWScuenta123456789012para realizarlas 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 ver la lista de acciones de Amazon EMR, consulteAcciones, recursos y claves de condiciónde 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 pleno a todas las cuentas y lasentidades principales, pero niega cualquier acceso paraAWScuenta123456789012a acciones realizadasen el clúster de Amazon EMR con ID de clústerJ-A1B2CD34EF5G. Se siguen permitiendo otras accionesde Amazon EMR que no admiten permisos de nivel de recursos para los clústeres. Para ver la lista deacciones de Amazon EMR y su correspondiente tipo de recurso, consulte.Acciones, recursos y claves decondición de Amazon EMR.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" },

471

Page 480: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect a Amazon EMR mediante unpunto de conexión de VPC de interfaz

{ "Action": "*", "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-west-2:123456789012:cluster/j-A1B2CD34EF5G", "Principal": { "AWS": [ "123456789012" ] } } ]}

472

Page 481: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer y supervisar un clúster

Administrar clústeresDespués de haber lanzado el clúster, puede monitorizarlo y administrarlo. Amazon EMR proporciona variasherramientas que puede utilizar para conectar y controlar el clúster.

Temas• Ver y supervisar un clúster (p. 473)• Connect al clúster (p. 517)• Terminar un clúster (p. 533)• Escalado de recursos del cl (p. 535)• Clonación de un clúster mediante la consola (p. 571)• Enviar trabajo a un clúster (p. 571)• Automatice clústeres recurrentes conAWS Data Pipeline (p. 577)

Ver y supervisar 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 GangliaPara realizar elseguimiento del rendimiento de su clúster.

El historial de aplicaciones también está disponible desde la consola mediante las interfaces de usuario deaplicación «persistentes» para Spark History Server a partir de Amazon EMR 5.25.0. Con Amazon EMR6.x, el servidor de YARN Timeline persistente y las interfaces de usuario de Tez también están disponibles.Estos servicios están alojados fuera del clúster, por lo que puede acceder al historial de aplicacionesdurante 30 días después de que termine el clúster, sin necesidad de una conexión SSH o proxy web.ConsulteVisualización del historial de aplicaciones.

Temas• Ver el estado y detalles del clúster (p. 473)• Depuración de pasos mejorada (p. 479)• Visualización del historial de aplicaciones (p. 481)• Ver archivos de registro de (p. 487)• Ver instancias de clúster en Amazon EC2 (p. 491)• Eventos y métricas de CloudWatch (p. 492)• Ver métricas de aplicaciones de clúster con Ganglia (p. 515)• Registro de llamadas a la API de Amazon EMR enAWS CloudTrail (p. 515)

Ver el estado y 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.

473

Page 482: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer el estado y detalles del clúster

Amazon EMR guarda los metadatos de los clústeres terminados para su referencia durante dos meses,después de los cuales se eliminan. No puede eliminar clústeres del historial de clústeres, pero con la AWSManagement Console, puede utilizar la función Filter (Filtro), y con la AWS CLI, puede utilizar opciones conel comando list-clusters para centrarse en los clústeres que le interesen.

Puede acceder al historial de aplicaciones almacenado en el clúster durante una semana desde elmomento en que se registra, independientemente de si el clúster se está ejecutando o ha terminado.Además, las interfaces de usuario de aplicaciones persistentes almacenan el historial de aplicacionesfuera del clúster durante 30 días después de que termine un clúster. ConsulteVisualización del historial deaplicaciones.

Para obtener más información acerca de los estados del clúster, como En espera y en ejecución,consulteDescripción del ciclo de vida del clúster (p. 4).

Ver el estado del clúster mediante elAWS Management ConsoleLaLista de clústeresen laConsola de Amazon EMRlista todos los clústeres de su cuenta yAWSRegión,incluidos los clústeres terminados. La lista muestra lo siguiente para cada clúster: el Name (Nombre) y elID, el Status (Estado), la Creation time (Hora de creación), el Elapsed time (Tiempo transcurrido) desdeque se ejecutó el clúster y las Normalized instance hours (horas de instancia normalizadas) que hanacumulado todas las instancias EC2 del clúster. Esta lista es el punto de partida para monitorear el estadode los clústeres. Se ha diseñado para que pueda profundizar hasta los detalles de cada clúster para suaná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:

474

Page 483: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer el estado y detalles del clúster

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.

Interfaces de usuario de aplicaciones Utilice esta pestaña para ver el servidor deYARN Timeline persistente fuera del clúster ylos detalles de la aplicación de Tez UI. Para lostrabajos de Spark, puede consultar informaciónsobre los trabajos, etapas y ejecutores. Paraobtener más información, consulte Visualizacióndel historial de aplicaciones (p. 481). Lasinterfaces de usuario de aplicaciones en elclúster están disponibles mientras se ejecuta elclúster.

Supervisió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.

475

Page 484: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer el estado y detalles del clúster

Tab Información

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 Monitor CloudWatchEventos de (p. 492).

Pasos Utilice esta pestaña para ver el estado yobtener acceso a los archivos logs de los pasosemitidos. Para obtener más información acercade los pasos, consulte Enviar trabajo a unclúster (p. 571).

Configuraciones Utilice esta pestaña para ver todos los objetosde configuración personalizados aplicadosal clúster. Para obtener más informaciónacerca de las clasificaciones de configuración,consulte.Configuración de aplicacionesen laGuíade publicació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 Crearacciones de arranque para instalar softwareadicional (p. 210).

Ver el estado del clúster mediante elAWS CLILos siguientes ejemplos muestran cómo recuperar detalles del clúster utilizando la AWS CLI. Paraobtener más información acerca de los comandos disponibles, consulte laAWS CLIReferencia decomandos para Amazon EMR. Puede usar el comando describe-cluster para ver detalles de nivel declúster como el estado, la configuración de hardware y de software, los ajustes de VPC, las acciones dearranque, los grupos de instancias, etc. Para obtener más información acerca de los estados de clúster,consulteDescripción del ciclo de vida del clúster (p. 4). El siguiente ejemplo ilustra cómo usar el comandodescribe-cluster, seguido de ejemplos del comando list-clusters.

Example Visualización del estado de cluster

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:

476

Page 485: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer el estado y detalles del clúster

{ "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, "CreationDateTime": 1438280702.499 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "Id": "ig-2A1234567XP", "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "RunningInstanceCount": 1

477

Page 486: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer el estado y detalles del clúster

} ], "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" } ] }}

Example Incluya 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 2019 y el 12 de octubrede 2019.

aws emr list-clusters --created-after 2019-10-09T00:12:00 --created-before 2019-10-12T00:12:00

478

Page 487: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónDepuración de pasos mejorada

Example Listar clústeres por estado

Para mostrar clústeres por estado, use el comando list-clusters con el parámetro --cluster-states. Los estados clúster válidos incluyen: STARTING, BOOTSTRAPPING, RUNNING, WAITING,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

Para obtener más información acerca de los estados de clúster, consulteDescripción del ciclo de vida delclúster (p. 4).

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 obtener acceso a FailureDetailsinformación, utilice elAWSCLI, consola oAWSSDK.

Para ver los detalles del error utilizando elAWSconsola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.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.

479

Page 488: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónDepuración de pasos mejorada

Para ver los detalles del error utilizando elAWSCLI

• Para obtener detalles del error de un paso utilizando laAWSCLI, 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" ], "Jar": "s3://myBucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar", "Properties": {} }, "Id": "s-3QM0XXXXXM1W", "ActionOnFailure": "CONTINUE", "Name": "ExampleJob"

480

Page 489: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización del historial de aplicaciones

}}

Visualización del historial de aplicacionesPuede ver los detalles de la aplicación del servicio de línea de tiempo de Spark History Server y YARNmediante laInterfaces de usuario de aplicacionespestaña de la página de detalles de un clúster en laconsola. El historial de aplicaciones de Amazon EMR le permite solucionar problemas y analizar másfácilmente los trabajos activos y el historial de trabajos.

La pestaña Interfaces de usuario de aplicaciones proporciona varias opciones de visualización:

• Acceso fuera del clúster a interfaces de usuario de aplicaciones persistentes— A partir de AmazonEMR versión 5.25.0, hay disponibles enlaces de interfaz de usuario de aplicaciones persistentes paraSpark. Con Amazon EMR versión 5.30.1 y versiones posteriores, Tez UI y el servidor de YARN Timelinetambién tienen interfaces de usuario de aplicaciones persistentes. El servidor de YARN Timeline y TezUI son aplicaciones de código abierto que proporcionan métricas y herramientas visuales para clústeresactivos y terminados. La interfaz de usuario de Spark ofrece detalles acerca de las etapas y tareas delprogramador, tamaños de RDD y uso de memoria, información medioambiental e información acerca delos ejecutores en ejecución. Las interfaces de usuario de aplicaciones persistentes se ejecutan fuera delclúster, por lo que la información del clúster y los registros están disponibles durante 30 días despuésde que termine una aplicación. A diferencia de las interfaces de usuario de aplicaciones en clúster, lasinterfaces de usuario de aplicaciones persistentes no requieren que configure un proxy web a través deuna conexión SSH.

• Interfaces de usuario de aplicaciones en el cl: existen diversas interfaces de usuario del historial deaplicaciones que se pueden ejecutar en un clúster. Las interfaces de usuario en el clúster están alojadasen el nodo maestro y requieren que configure una conexión SSH al servidor web. Las interfaces deusuario de aplicaciones en el clúster mantienen el historial de aplicaciones durante una semana despuésde que termine una aplicación. Para obtener más información e instrucciones sobre la configuración deun túnel SSH, consulteVer las interfaces web alojadas en clústeres de Amazon EMR (p. 524).

Con la excepción del Spark History Server, el servidor de YARN Timeline y aplicaciones Hive, el historialde aplicaciones en el clúster solo se puede consultar mientras el clúster está en ejecución.

• Historial de aplicaciones de alto nivel— Con Amazon EMR versión 5.8.0 o posterior de, puede ver unresumen del historial de aplicaciones en la consola de EMR, incluidas las métricas principales para lastareas de etapa y los ejecutores. El resumen del historial de aplicaciones está disponible para todaslas aplicaciones YARN. Se proporcionan detalles adicionales para las aplicaciones Spark, pero estosdetalles son solo un subconjunto de la información disponible a través de la interfaz de usuario de laaplicación de Spark.

Ver interfaces de usuario de aplicaciones persistentesA partir de Amazon EMR versión 5.25.0, puede conectarse a los detalles persistentes de aplicaciónSpark History Server alojados fuera del clúster utilizando el clúster.Resumeno enInterfaces de usuario deaplicacionesen la consola de. Las interfaces de aplicación persistentes de Tez UI y YARN Timeline estándisponibles a partir de Amazon EMR versión 5.30.1. El acceso de enlace con un solo clic al historial deaplicaciones persistentes ofrece las siguientes ventajas:

• Puede analizar y solucionar rápidamente los trabajos activos y el historial de trabajos sin configurar unproxy web a través de una conexión SSH.

• Puede acceder al historial de aplicaciones 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ón.

481

Page 490: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización del historial de aplicaciones

En la páginaInterfaces de usuario de aplicacionespestaña o clústerResumenpara su clúster en la consolade Amazon EMR 5.30.1 o 6.x, elija laservidor de línea temporal YARN,Tez UI, o bienServidor de historialde Sparklink.

La interfaz de usuario de la aplicación se abre en una nueva pestaña del navegador. Para obtener másinformación, consulteMonitoreo e instrumentación.

Puede ver los registros de contenedores de YARN a través de los enlace en Spark History Server, elservidor de YARN Timeline y Tez UI.

Note

Para obtener acceso a los registros de contenedor de YARN desde Spark History Server, elservidor de YARN Timeline y Tez UI, debe habilitar el registro en Amazon S3 para su clúster. Si elregistro no está habilitado, los enlaces a los registros de contenedor de YARN no funcionarán.

Colección de registros

Para habilitar el acceso con un solo clic a las interfaces de usuario de aplicaciones persistentes, AmazonEMR recopila dos tipos de registros:

• Los registros de eventos de aplicación se recopilan en un bucket del sistema EMR. Los registrosde eventos se cifran en reposo mediante el cifrado del lado del servidor con claves administradasde 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, consultePolítica mínima de Amazon S3 parasubred privada.

• Registros de los contenedoresse recopilan en un bucket de Amazon S3 de su propiedad. Debe habilitarel registro para que su clúster acceda a los registros de contenedores de YARN. Para obtener másinformación, consulteConfigurar el registro y la depuración de clústeres.

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 Application UI Support" --release-label emr-5.36.0 \--applications Name=Hadoop Name=Spark --ec2-attributes KeyName=<myEMRKeyPairName> \--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://region.elasticmapreduce/bootstrap-actions/run-if,Args=["instance.isMaster=true","echo Stop Application UI | sudo tee /etc/apppusher/run-apppusher; sudo systemctl stop apppusher || exit 0"]

Después de ejecutar este script de arranque, Amazon EMR no recopilará ningún registro de eventos deSpark History Server o del servidor de YARN Timeline en el bucket del sistema EMR. No habrá informacióndel historial de aplicaciones disponible en la pestaña Interfaces de usuario de aplicaciones y perderá elacceso a todas las interfaces de usuario de la aplicación desde la consola.

482

Page 491: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización del historial de aplicaciones

Condiciones y limitaciones

El acceso con un solo clic a las interfaces de usuario de aplicaciones persistentes actualmente tiene lassiguientes limitaciones:

• Habrá al menos un retraso de dos minutos cuando los detalles de la aplicación aparezcan en la interfazde usuario de Spark History Server.

• Esta característica solo funciona cuando el directorio de registros de eventos de la aplicación está enHDFS. De forma predeterminada, Amazon EMR almacena los registros de eventos en un directorio deHDFS. Si cambia el directorio predeterminado a un sistema de archivos diferente, como Amazon S3,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 con un solo clic a las interfaces de usuario de aplicaciones persistentes, debetener permiso para la acción DescribeCluster de EMR. Si deniega el permiso de una entidadprincipal de IAM a esta acción, el cambio de permiso tarda aproximadamente cinco minutos enpropagarse.

• Si vuelve a configurar las aplicaciones en un clúster en ejecución, el historial de aplicaciones no estarádisponible a través de la interfaz de usuario de la aplicación.

• Para cadaAWS, el número de IU de aplicaciones activas no puede superar las 50.• Puede obtener acceso a la interfaz de usuario de la aplicación desde la consola en EE.UU. Este

(Norte de Virginia y Ohio), EE.UU. Oeste (Norte de California y Oregón), Canadá (Central), UE(Fráncfort, Irlanda, Londres, París, Estocolmo), Asia Pacífico (Mumbai, Seúl, Singapur, Sídney yTokio), Sudamérica (Sao Paulo), China (Pekín) operada por Sinnet, y China (Ningxia) operados por lasRegiones del NWCD.

Ver un historial de aplicaciones de alto nivelCon las versiones 5.8.0 y posteriores de Amazon EMR, puede ver un historial de aplicaciones de alto niveldesde laInterfaces de usuario de aplicacionesen la consola de Amazon EMR. Amazon EMR conservael resumen del historial de aplicaciones durante siete días después de que se haya completado unaaplicación.

Condiciones y limitaciones

Tenga en cuenta las siguientes restricciones cuando utilice laInterfaces de usuario de aplicacionesen laconsola de Amazon EMR.

• Amazon EMR solo admite la característica del historial de aplicaciones de alto nivel para las versiones5.8.0 y posteriores de Amazon EMR.

• La función de historial de aplicaciones de alto nivel no admite aplicaciones de Spark Streaming.• El acceso a interfaces de usuario de aplicaciones persistentes no está disponible actualmente para

clústeres de Amazon EMR con varios nodos maestros ni para clústeres de Amazon EMR integradosconAWS Lake Formation.

Ejemplo: Ver un historial de aplicaciones de alto nivel

La siguiente secuencia muestra cómo desplazarse por los detalles del trabajo en las aplicaciones de Sparko YARN utilizando laInterfaces de usuario de aplicacionesen la página de detalles del clúster.

Para ver los detalles del clúster, seleccione un clústerNombredesde lasClústereslista. Para ver informaciónsobre los registros de contenedor de YARN, debe habilitar el registro para el clúster. Para obtener másinformación, consulteConfigurar el registro y la depuración de clústeres. Para el historial de aplicaciones

483

Page 492: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización del historial de aplicaciones

de Spark, la información proporcionada en la tabla de resumen es solo un subconjunto de la informacióndisponible a través de la interfaz de usuario del servidor del historial de Spark.

En el navegadorInterfaces de usuario de aplicacionespestaña debajoHistorial de aplicaciones de alto nivel,puede ampliar una fila para mostrar el resumen de diagnóstico de una aplicación de Spark o seleccionarunID de aplicación deenlace para ver detalles de una aplicación diferente.

Cuando seleccionas unID de aplicación de, la interfaz de usuario cambia para mostrar elAplicaciónYARNdetalles de esa aplicación. En el navegadorTrabajospestaña deAplicación YARNdetalles, puedeselegir laDescripciónenlace de un trabajo para mostrar los detalles de ese trabajo.

484

Page 493: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización del historial de aplicaciones

En la página de detalles del trabajo, puede ampliar la información sobre las fases de trabajo individuales y,a continuación, seleccionar laDescripciónenlace para ver los detalles del escenario.

485

Page 494: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualización del historial de aplicaciones

En la página de detalles del escenario, puede ver las métricas clave de las tareas y los ejecutores deescenario. También puede ver los registros de tareas y ejecutores mediante elVer registroslinks.

486

Page 495: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer archivos de registro de

Ver archivos de registro deAmazon 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 escritos en el nodo maestro. Amazon EMR escribe registros estado deinstancias, paso y acción de arranque. Apache Hadoop escribe registros para notificar el procesamiento delos trabajos, de las tareas y de los intentos de tareas. Hadoop también guarda registros de sus demonios.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• Visualización de archivos de registro en el nodo maestro (p. 487)• Ver los archivos de registro archivados en Amazon S3 (p. 489)• Ver los archivos de registro en la herramienta de depuración (p. 490)

Visualización de archivos de registro en el nodo maestroEn la siguiente tabla se enumeran algunos de los archivos de registro que encontrará en el nodo principal.

Ubicación Descripción

/emr/instance-controller/log/bootstrap-actions Los registros escritos durante el procesamiento delas acciones de arranque.

487

Page 496: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer archivos de registro de

Ubicación Descripción

/mnt/var/log/hadoop-state-pusher Los registros escritos por el proceso state pusherde Hadoop.

/emr/instance-controller/log Registros de controlador de instancia.

/emr/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.

/emr/service-niñera 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 deNindica 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 escritos por Amazon EMRson los siguientes.

• Controlador— Información sobre elprocesamiento del paso. Si el paso falla durantela carga, puede encontrar el seguimiento de lapila en este registro.

• syslog: describe la ejecución de los trabajos deHadoop en el paso.

• stderr— El canal de error 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 Connect al nodo maestro utilizandoSSH (p. 519).

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

488

Page 497: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer archivos de registro de

Ver los archivos de registro archivados en Amazon S3De forma predeterminada, los clústeres de Amazon EMR lanzados utilizando la consola archivanautomáticamente los archivos de registro en Amazon S3. Puede especificar su propia ruta de registro obien puede permitir que la consola genere automáticamente una ruta de registro por usted. Para clústereslanzados con la interfaz de línea de comandos (CLI) o la API, debe configurar el archivado de registros deAmazon 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 ha especificado, en la/cluster-id/carpeta, dondecluster-ides elID del clúster.

En la siguiente tabla se enumeran algunos de los archivos de registro que encontrará en Amazon S3.

Ubicación Descripción

/cluster-id/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 cadanodo se almacenan en una carpeta etiquetada conel identificador de la instancia EC2 de ese nodo.

/cluster-id/node/instance-id/aplicación Los registros creados por cada aplicación odemonio asociado con una aplicación. Por ejemplo,el registro del servidor de Hive se encuentra encluster-id/node/instance-id/hive/hive-server.log.

/cluster-id/pasos/step-id/ Registros de paso que contienen informaciónsobre el procesamiento del paso. El valor destep-idindica el identificador de paso asignado porAmazon EMR. Por ejemplo, un clúster tiene dospasos: s-1234ABCDEFGH y s-5678IJKLMNOP.El primer paso está ubicado en /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ y el segundopaso en /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/.

Los registros de pasos escritos por Amazon EMRson los siguientes.

• Controlador— Información sobre elprocesamiento del paso. Si el paso falla durantela carga, puede encontrar el seguimiento de lapila en este registro.

• syslog: describe la ejecución de los trabajos deHadoop en el paso.

• stderr— El canal de error estándar de Hadoopmientras procesa el paso.

• stdout— El canal de salida estándar de Hadoopmientras procesa el paso.

/cluster-id/containers Registros de contenedor de aplicaciones. Losregistros para cada aplicación YARN se almacenanen estas ubicaciones.

489

Page 498: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer archivos de registro de

Ubicación Descripción

/cluster-id/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 AWS Management Console 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. Descargue el objeto de archivo de registro para verlo. Para obtener instrucciones, consulteDescargade un objeto.

Ver los 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 clúster mediante la consola

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Desde lasLista clúster, elija el icono de detalles junto al clúster que quiera ver.

Esto trae a colación elDetalles de clúster(Se ha creado el certificado). En el navegadorPasos, losenlaces a la derecha de cada paso muestran los distintos tipos de registros disponibles para el paso.Amazon EMR genera estos registros.

3. Para ver una lista de los trabajos de Hadoop asociados a un paso determinado, elija laVertrabajosenlace situado a la derecha del escalón.

4. Para ver una lista de las tareas de Hadoop asociadas a un trabajo determinado, elija laVertareasenlace a la derecha del trabajo.

5. Para ver una lista de los intentos que se ha ejecutado una tarea determinada al intentar completar,elija laVer intentosenlace a la derecha de la tarea.

490

Page 499: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer instancias de clúster en Amazon EC2

6. Para ver los registros generados por un intento de tarea, elija lastderr,stdout, ysyslogenlaces a laderecha del intento de tarea.

La herramienta de depuración muestra enlaces a los archivos de registro después de que Amazon EMRcargue los archivos de registro en su bucket en Amazon S3. Dado que los archivos de registro se carganen Amazon S3 cada cinco minutos, puede tardar algunos minutos en que las cargas de archivo de registrose completen una vez completo el paso.

Amazon EMR actualiza periódicamente el estado de los trabajos, las tareas y los intentos de tareasde Hadoop en la herramienta de depuración. Puedes hacer clicLista de actualizaciónen los paneles dedepuración para aprovechar al máximo up-to-date estado de estos artículos.

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 mediantesuAWSLa cuenta solo está disponible 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>

491

Page 500: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Clave Valor

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, consulteUsode etiquetasen laGuía del usuario de Amazon EC2 para instancias de Linux. Dado que las etiquetasdefinidas por Amazon EMR son etiquetas del sistema y no se pueden editar o eliminar, las secciones sobremostrar 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.

Eventos y métricas de CloudWatchUtilice eventos y métricas para realizar un seguimiento de la actividad y el estado de un clúster de AmazonEMR. Los eventos son útiles para monitorizar una incidencia específica dentro de un clúster; por ejemplo,cuando un clúster cambia de estado desde el inicio a la ejecución. Las métricas son útiles para monitorizarun valor específico; por ejemplo, el porcentaje de espacio en disco disponible que utiliza HDFS dentro deun clúster.

Para obtener más información acerca de CloudWatch Eventos, consulte laAmazon CloudWatch Guíadel usuario de eventos. Para obtener más información acerca de CloudWatch métricas, consulteUso deAmazon CloudWatch Métricas deyCreación de Amazon CloudWatch alarmasen laAmazon CloudWatchGuía del usuario de.

Temas• Monitor CloudWatch Eventos de (p. 492)• Supervisar métricas con CloudWatch (p. 502)

Monitor CloudWatch Eventos deAmazon 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 sobre el evento como, por ejemplo, el clúster ogrupo de instancias afectado.

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. Cada evento se representa comoun objeto JSON que se envía automáticamente a un flujo de eventos. El objeto JSON es especialmenteimportante cuando se configuran reglas para el procesamiento de eventos mediante CloudWatch Eventosporque las reglas buscan hacer coincidir patrones en el objeto JSON. Para obtener más información,

492

Page 501: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

consulteEventos y patrones de eventosyEventos de Amazon EMRen laAmazon CloudWatch Guía delusuario de eventos.

Eventos clúster

Estado o estado de cambio Gravedad Mensaje

STARTING INFO Clúster de AmazonEMRClusterId(ClusterName)se solicitóenTiempoy se está creando.

STARTING INFO Note

Sólo se aplicaa clústeres conconfiguración de flotasde instancias y variassubredes seleccionadasdentro de una VPC.

Clúster de AmazonEMRClusterId(ClusterName)se está creandoen una subred (SubnetName)en VPC (Nombre de la VPC)en la zona de disponibilidad(AvailabilityZoneID), quese eligió entre las opciones deVPC especificadas.

STARTING INFO Note

Sólo se aplicaa clústeres conconfiguración de flotasde instancia y variaszonas de disponibilidadseleccionadas dentro deEC2-Classic.

Clúster de AmazonEMRClusterId(ClusterName)se está creandoen la zona de disponibilidad(AvailabilityZoneID),que se ha elegido a partirde las opciones de zona dedisponibilidad especificadas).

RUNNING INFO Clúster de AmazonEMRClusterId(ClusterName)comenzó aejecutar pasos enTiempo.

WAITING INFO Clúster de AmazonEMRClusterId(ClusterName)se creó

493

Page 502: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad MensajeenTiempoy ya está listo parausarse.

- o bien -

Clúster de AmazonEMRClusterId(ClusterName)terminóde ejecutar todos los pasospendientes enTiempo.

Note

Un clúster en estadoWAITING podríano obstante estarprocesando trabajos.

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.

Clúster de AmazonEMRClusterId(ClusterName)ha finalizadoenTiempocon una razóndeMotivo del cambio deestado: código.

TERMINATED_WITH_ERRORS CRITICAL Clúster de AmazonEMRClusterId(ClusterName)ha finalizadocon errores enTiempocon unarazón deMotivo del cambiode estado: código.

Eventos de flotas de instNote

La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 de AmazonEMR y posteriores, excluyendo 5.0.0 y 5.0.3.

Estado o estado de cambio Gravedad Mensaje

Desde PROVISIONING hastaWAITING

INFO Aprovisionamiento para flotade instInstanceFleetIDenClúster de AmazonEMRClusterId

494

Page 503: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad Mensaje(ClusterName)está completo.(El aprovisionamiento se inicióa las hora y tardó númerominutos). (La flota de instanciasahora tiene una capacidad bajodemanda de número y unacapacidad de spot de número).(La capacidad bajo demandade destino era número y lacapacidad de spot de destino eranú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(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).

495

Page 504: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad Mensaje

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).

SUSPENDED ERROR Flota deinstInstanceFleetIDenClúster de AmazonEMRClusterId(ClusterName)fue arrestadoenTiempopor el siguientemotivo: ReasonDesc.

RESIZING WARNING La operación de cambiode tamaño por flota deejemploInstanceFleetIDenClúster de AmazonEMRClusterId(ClusterName)está atascadopor el siguiente motivo:ReasonDesc.

WAITING o RUNNING INFO Una flota de cambiosde tamaño, porejemploInstanceFleetIDenClúster de AmazonEMRClusterId(ClusterName)ha sido iniciadaporEntidadaTiempo.

Eventos de grupos de instancias

Estado o estado de cambio Gravedad Mensaje

Desde RESIZING hastaRUNNING

INFO La operación de cambiode tamaño del grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)está completo.(Ahora tiene un recuento de

496

Page 505: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad Mensajeinstancias de número). (Elcambio de tamaño se inició a lashora y tardó número minutos encompletarse).

Desde RUNNING hastaRESIZING

INFO Un grupo de instanciaspara cambiar eltamañoInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)iniciadoenTiempo. (Está cambiandode tamaño desde un recuentode instancias de número anúmero).

SUSPENDED ERROR Grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)fue arrestadoenTiempopor el siguientemotivo: ReasonDesc.

RESIZING WARNING La operación de cambiode tamaño del grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)está atascadopor el siguiente motivo:ReasonDesc.

Desde RUNNING hastaRESIZING

INFO Un grupo de instanciasde cambio detamañoInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)ha sido iniciadaporEntidadaTiempo.

Note

Con Amazon EMR versión 5.21.0 y posteriores de, puede anular las configuraciones de clústery especificar las clasificaciones de configuración adicionales para cada grupo de instancias enun clúster en ejecución. Para ello, utilice la consola de Amazon EMR, laAWS Command LineInterface(AWS CLI), o elAWSSDK. Para obtener más información, consulteProporcionar unaconfiguración para un grupo de instancias en un clúster en ejecución.

En la siguiente tabla se muestran eventos de Amazon EMR para la operación de reconfiguración, junto conel estado o cambio de estado que indica el evento, la gravedad del evento y los mensajes de eventos.

497

Page 506: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad Mensaje

RUNNING INFO Una reconfiguraciónpara un grupo deinstanciasInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)ha sido iniciadopor el usuario enTiempo.La versión de configuraciónsolicitada es Num.

Desde RECONFIGURING hastaRUNNING

INFO La operación dereconfiguración del grupo deinstanciasInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)está completo.La reconfiguración comenzó alas Time y tardó Num minutos encompletarse. La configuraciónactual de la versión es Num.

Desde RUNNING hastaRECONFIGURING

INFO Una reconfiguraciónpara un grupo deinstanciasInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)iniciadoenTiempo. Configura de laversión número Num a la versiónnúmero Num.

RESIZING INFO Reconfiguración de laoperación hacia la versión deconfiguraciónNumgrupo deejemploInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)está bloqueadotemporalmente enTiempoporqueel grupo de instancias estáenEstado.

RECONFIGURING INFO Cambio de tamaño dela operación hacia elrecuentoNumgrupo deejemploInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)está bloqueadotemporalmente enTiempoporqueel grupo de instancias estáenEstado.

RECONFIGURING WARNING La operación dereconfiguración del grupo deinstanciasInstanceGroupIDdel

498

Page 507: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad Mensajeclúster de AmazonEMRClusterId(ClusterName)errorenTiempoy tomóNumminutospara fallar. La versión deconfiguración de error es Num.

RECONFIGURING INFO Las configuraciones estánvolviendo al número de versiónanterior correctoNumgrupo deejemploInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)aTiempo. Lanueva versión de configuraciónes Num.

Desde RECONFIGURING hastaRUNNING

INFO Las configuraciones se hanrevertido correctamentea la versión anteriorcorrectaNumgrupo deejemploInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)aTiempo. Lanueva versión de configuraciónes Num.

Desde RECONFIGURING hastaSUSPENDED

CRITICAL No se pudo volver a la versiónanterior correctaNumgrupo deinstanciasInstanceGroupIDdelclúster de AmazonEMRClusterId(ClusterName)aTiempo.

Eventos de políticas de escalado automático

Estado o estado de cambio Gravedad Mensaje

PENDING INFO (Se ha añadido una políticade Auto Scaling al grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)aTiempo.La política todavía no se haasociado.

- o bien -

La política de AutoScaling para el grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId

499

Page 508: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad Mensaje(ClusterName)se haactualizado enTiempo. Lapolítica todavía no se haasociado.

ATTACHED INFO La política de AutoScaling para el grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)se adjuntóenTiempo.

DETACHED INFO La política de AutoScaling para el grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)se separóenTiempo.

FAILED ERROR La política de AutoScaling para el grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)no se pudoadjuntar y falló enTiempo.

- o bien -

La política de AutoScaling para el grupo deinstanciasInstanceGroupIDenClúster de AmazonEMRClusterId(ClusterName)no se pudoseparar y falló enTiempo.

Eventos de paso

Estado o estado de cambio Gravedad Mensaje

PENDING INFO PasoStepID (StepName)seha agregado al clúster deAmazon EMRClusterId(ClusterName)aTiempoy estápendiente de ejecución.

CANCEL_PENDING WARN PasoStepID (StepName)enClúster de AmazonEMRClusterId(ClusterName)se canceló

500

Page 509: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Estado o estado de cambio Gravedad MensajeenTiempoy está pendiente decancelación.

RUNNING INFO PasoStepID (StepName)enClúster de AmazonEMRClusterId(ClusterName)comenzó aejecutarse enTiempo.

COMPLETED INFO PasoStepID (StepName)enClúster de AmazonEMRClusterId(ClusterName)ejecucióncompletada enTiempo. (El pasoempezó a ejecutarse a las horay tardó número minutos encompletarse).

CANCELLED WARN La solicitud de cancelación seha ejecutado correctamentepara el paso delStepID(StepName)en Clúster deAmazon EMRClusterId(ClusterName)aTiempo, y elpaso se ha cancelado.

FAILED ERROR PasoStepID (StepName)enClúster de AmazonEMRClusterId(ClusterName)errorenTiempo.

Ver 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 enhttps://console.aws.amazon.com/elasticmapreduce/.2. Elija Events (Eventos).

Para ver eventos para un clúster determinado

1. Abra la consola de Amazon EMR enhttps://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).

501

Page 510: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

3. Elija Events (Eventos) en el panel de detalles del clúster.

Creación de reglas para eventos de Amazon EMR mediante CloudWatchAmazon EMR envía eventos automáticamente a un CloudWatch flujo de eventos. 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 acerca de los detalles del evento de Amazon EMR,consulteEventos de Amazon EMRen laAmazon CloudWatch Guía del usuario de eventos.

Para obtener información acerca de la configuración CloudWatch reglas de eventos, consulteCreación deun valor CloudWatch regla que se desencadena en función de un evento.

Supervisar métricas con CloudWatchLas métricas se actualizan cada cinco minutos y se recogen automáticamente y se envían a CloudWatchpara cada clúster de Amazon EMR. Este intervalo no se puede configurar. No se aplican cargos por lasmétricas de Amazon EMR que se comunican en CloudWatch. Estas métricas de punto de datos de cincominutos de se archivan durante 63 días, tras los cuales, los datos se descartan.

¿Cómo utilizo las métricas de Amazon EMR?En la siguiente tabla se muestran los usos comunes de las métricas de notificadas por Amazon EMR. Setrata de sugerencias que puede usar como punto de partida y no de una lista completa. Para obtener unalista completa de las métricas notificadas por Amazon EMR, consulteMétricas notificadas por Amazon EMRen CloudWatch (p. 503).

¿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ústerhaya estado inactivo durante un periodo de tiempodeterminado, como, por ejemplo, treinta minutos.

502

Page 511: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

¿Cómo? Métricas relevantes

Detectar si un nodo se queda sin espacio dealmacenamiento

LaMRUnhealthyNodesseguimiento métricocuando uno o varios nodos principales o de tareasse quedan sin almacenamiento en disco local yhacen la transición a unUNHEALTHYEstado YARN.Por ejemplo, los nodos principales o de tareas seestán quedando sin espacio en disco y no podránejecutar tareas.

Detectar si un clúster se queda sin espacio dealmacenamiento

LaHDFSUtilizationmetric supervisa lacapacidad HDFS combinada del clúster y puederequerir cambiar el tamaño del clúster para añadirmás nodos principales. Por ejemplo, la utilizaciónde HDFS es elevada, lo que puede afectar alestado de los trabajos y del clúster.

Detectar cuándo se ejecuta un clúster a unacapacidad reducida

LaMRLostNodesLa métrica realiza un seguimientode cuando uno o varios nodos básicos o de tareasno pueden comunicarse con el nodo maestro. Porejemplo, el nodo principal o de tarea no puedeacceder al nodo principal.

Para obtener más información, consulteEl clúster termina con NO_SLAVE_LEFT y los nodos principalesFAILED_BY_MASTER (p. 597)yAWSSupport-Analizar registros de MRR.

Acceso CloudWatch métricas de Amazon EMR

Puede ver las métricas a las que informa Amazon EMR CloudWatch mediante la consola de Amazon EMRo la consola de CloudWatch. También puede recuperar métricas utilizando la CloudWatch Command dela CLImon-get-statso CloudWatchGetMetricStatisticsAPI. Para obtener más información sobrecómo ver o recuperar métricas para Amazon EMR mediante CloudWatch, consulte laAmazon CloudWatchGuía del usuario de.

Para ver métricas en la consola de Amazon EMR

1. Abra la consola de Amazon EMR enhttps://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 denominadasEstado del clúster,Map/Reduce,Estado del nodo, o bienE/Spara cargar losinformes sobre el progreso y la salud 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.

Establecer alarmas en las métricas

Amazon EMR envía métricas a CloudWatch, lo que significa que puede utilizar CloudWatch para configuraralarmas en las métricas de Amazon EMR. Por ejemplo, puede configurar una alarma en CloudWatchPara enviar un correo electrónico siempre que el uso de HDFS supere el 80%. Para obtener instruccionesdetalladas, consulte .Crear o editar una CloudWatch alarmaen laAmazon CloudWatch Guía del usuario de.

Métricas notificadas por Amazon EMR en CloudWatch

Las siguientes tablas muestran las métricas que Amazon EMR notifica en la consola y envía aCloudWatch.

503

Page 512: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

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.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 en 0.Este valor se comprueba a intervalos de cinco minutos y un valorde 1 indica que el clúster estuvo inactivo cuando se comprobó,no que estuvo inactivo durante los cinco minutos. Para evitarfalsos positivos, debe activar una alarma cuando este valorsea 1 durante más de una comprobación consecutiva de cincominutos. Por ejemplo, puede activar una alarma cuando estevalor sea 1 durante treinta minutos o más.

Caso de uso: Monitorear el rendimiento del

Unidades: Booleano

ContainerAllocated El número de contenedores de recursos asignados porResourceManager.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

ContainerReserved El número de contenedores reservados.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

ContainerPending El número de contenedores en la cola que aún no se hanasignado.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

ContainerPendingRatio La proporción entre contenedores pendientes y contenedoresasignados (ContainerPendingRatio = ContainerPending /ContainerAllocated). Si ContainerAllocated = 0, luegoContainerPendingRatio = 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.

504

Page 513: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica DescripciónUnidades: Recuento

AppsCompleted El número de aplicaciones enviadas a YARN que se hancompletado.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

AppsFailed El número de aplicaciones enviadas a YARN que no se hanpodido completar.

Caso de uso: Supervisar el progreso de los clústeres,

Unidades: Recuento

AppsKilled El número de aplicaciones enviadas a YARN que se hancancelado.

Caso de uso: Supervisar el progreso de los clústeres,

Unidades: Recuento

AppsPending El número de aplicaciones enviadas a YARN que están enestado pendiente.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

AppsRunning El número de aplicaciones enviadas a YARN que se estánejecutando.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

AppsSubmitted El número de aplicaciones enviadas a YARN.

Caso de uso: Monitorear el progreso de

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: Monitorear el estado de

Unidades: Recuento

505

Page 514: Amazon EMR - Guía de administración

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: Monitorear el estado de

Unidades: Recuento

LiveDataNodes El porcentaje de nodos de datos que reciben trabajo de Hadoop.

Caso de uso: Monitorear el estado de

Unidades: Porcentaje

MRTotalNodes El número de nodos actualmente disponibles paratrabajos de MapReduce. Equivalente a la métrica YARNmapred.resourcemanager.TotalNodes.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

MRActiveNodes El número de nodos que se están ejecutando actualmenteMapReduce tareas o trabajos. Equivalente a la métrica YARNmapred.resourcemanager.NoOfActiveNodes.

Caso de uso: Monitorear el progreso de

Unidades: Recuento

MRLostNodes El número de nodos asignados a MapReduce que se hanmarcado en estado LOST. Equivalente a la métrica YARNmapred.resourcemanager.NoOfLostNodes.

Caso de uso: Supervisar el estado de los clústeres,

Unidades: Recuento

MRUnhealthyNodes El número de nodos disponibles para MapReduce trabajosmarcados con el estado UNHEALTHY. Equivalente a la métricaYARN mapred.resourcemanager.NoOfUnhealthyNodes.

Caso de uso: Monitorear el progreso de

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: Supervisar el estado de los clústeres,

Unidades: Recuento

506

Page 515: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

MRRebootedNodes El número de nodos disponibles para MapReduceque se han reiniciado y marcado en un estadoREBOOTED. Equivalente a la métrica YARNmapred.resourcemanager.NoOfRebootedNodes.

Caso de uso Supervisar el estado de los clústeres,

Unidades: Recuento

MultiMasterInstanceGroupNodesRunningEl número de nodos principales en ejecución.

Caso de uso Monitoree errores y sustituciones del nodo principal

Unidades: Recuento

MultiMasterInstanceGroupNodesRunningPercentageEl porcentaje de nodos principales que se están ejecutando porencima del recuento de instancias del nodo principal solicitadas.

Caso de uso Monitoree errores y sustituciones del nodo principal

Unidades: Porcentaje

MultiMasterInstanceGroupNodesRequestedEl número de nodos principales solicitados.

Caso de uso Monitoree errores y sustituciones del nodo principal

Unidades: Recuento

E/S

S3BytesWritten El número de bytes escritos en Amazon S3. Esta métrica seagrupa MapReduce solo trabajos y no se aplica a otras cargasde trabajo de Amazon EMR.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

S3BytesRead El número de bytes leídos desde Amazon S3. Esta métrica seagrupa MapReduce solo trabajos y no se aplica a otras cargasde trabajo de Amazon EMR.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

HDFSUtilization El porcentaje de almacenamiento HDFS usado actualmente.

Caso de uso Análisis del rendimiento del clú

Unidades: Porcentaje

507

Page 516: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

HDFSBytesRead El número de bytes leídos de HDFS. Esta métrica se agrupaMapReduce solo trabajos y no se aplica a otras cargas detrabajo de EMR.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

HDFSBytesWritten El número de bytes escritos en HDFS. Esta métrica se agrupaMapReduce solo trabajos y no se aplica a otras cargas detrabajo de EMR.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

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 Monitorear el estado de

Unidades: Recuento

CorruptBlocks El número de bloques que HDFS registra como dañados.

Caso de uso Monitorear el estado de

Unidades: Recuento

TotalLoad El número total de transferencias de datos simultáneas,

Caso de uso Monitorear el estado de

Unidades: Recuento

MemoryTotalMB La cantidad de memoria total del clúster.

Caso de uso Monitorear el progreso de

Unidades: Recuento

MemoryReservedMB La cantidad de memoria reservada.

Caso de uso Monitorear el progreso de

Unidades: Recuento

MemoryAvailableMB La cantidad de memoria disponible para asignar.

Caso de uso Monitorear el progreso de

Unidades: Recuento

508

Page 517: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

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 Monitorear el progreso de

Unidades: Recuento

PendingDeletionBlocks El número de bloques marcados para eliminación.

Caso de uso Supervisar el progreso de los clústeres,

Unidades: Recuento

UnderReplicatedBlocks El número de bloques que necesitan replicarse una o variasveces.

Caso de uso Supervisar el progreso de los clústeres,

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 Supervisar el progreso de los clústeres,

Unidades: Recuento

CapacityRemainingGB La cantidad de capacidad de disco HDFS restante.

Caso de uso Supervisar el progreso de los clústeres,

Unidades: Recuento

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 en 0.Este valor se comprueba a intervalos de cinco minutos y un valorde 1 indica que el clúster estuvo inactivo cuando se comprobó,no que estuvo inactivo durante los cinco minutos. Para evitarfalsos positivos, debe activar una alarma cuando este valorsea 1 durante más de una comprobación consecutiva de cincominutos. Por ejemplo, puede activar una alarma cuando estevalor sea 1 durante treinta minutos o más.

509

Page 518: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica DescripciónCaso de uso Monitorear el rendimiento del

Unidades: Booleano

JobsRunning El número de trabajos del clúster que se encuentranactualmente en ejecución.

Caso de uso Monitorear el estado de

Unidades: Recuento

JobsFailed El número de trabajos del clúster que han producido un error.

Caso de uso Monitorear el estado de

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 Monitorear el progreso de

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 pendientees aquella que no tiene ninguno de los siguientes estados:Corriendo, asesinado o completado.

Caso de uso Monitorear el progreso de

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 Análisis del rendimiento del clú

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 Análisis del rendimiento del clú

Unidades: Ratio

510

Page 519: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripció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 Monitorear el progreso de

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 Monitorear el progreso de

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 Análisis del rendimiento del clú

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 Monitorear el estado de

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 Monitorear el estado de

Unidades: Recuento

LiveDataNodes El porcentaje de nodos de datos que reciben trabajo de Hadoop.

Caso de uso Monitorear el estado de

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 Monitorear el estado de

Unidades: Recuento

511

Page 520: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

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 Monitorear el estado de

Unidades: Recuento

LiveTaskTrackers El porcentaje de rastreadores de tareas que están operativos.

Caso de uso Monitorear el estado de

Unidades: Porcentaje

E/S

S3BytesWritten El número de bytes escritos en Amazon S3. Esta métrica seagrupa MapReduce solo trabajos y no se aplica a otras cargasde trabajo de Amazon EMR.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

S3BytesRead El número de bytes leídos desde Amazon S3. Esta métrica seagrupa MapReduce solo trabajos y no se aplica a otras cargasde trabajo de Amazon EMR.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

HDFSUtilization El porcentaje de almacenamiento HDFS usado actualmente.

Caso de uso Análisis del rendimiento del clú

Unidades: Porcentaje

HDFSBytesRead El número de bytes leídos de HDFS.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

HDFSBytesWritten El número de bytes escritos en HDFS.

Caso de uso Analizar el rendimiento del clúster, supervisar elprogreso

Unidades: Recuento

512

Page 521: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

MissingBlocks El número de bloques en los que HDFS no tiene réplicas.Pueden tratarse de bloques dañados.

Caso de uso Monitorear el estado de

Unidades: Recuento

TotalLoad Número total actual de lectores y escritores registrados portodos DataNodes en un clúster.

Caso de uso Diagnosticar en qué medida un nivel elevado deE/S podría estar contribuyendo a un rendimiento deficienteen la ejecución de trabajos. Nodos de trabajo que ejecutanel DataNode demonio también debe llevar a cabo tareas demapeo y reducción. Persistentemente alto TotalLoad valores alo largo del tiempo pueden indicar que un nivel elevado de E/S podría ser un factor que contribuye a que el rendimiento seadeficiente. Los picos ocasionales en este valor son normales yno necesariamente son indicativos de un problema.

Unidades: Recuento

Métricas de capacidad 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 o la terminación automática están habilitados.

Para los clústeres compuestos por flotas de instancias, las métricas de capacidad del clúster se midenen Units. Para los clústeres compuestos por grupos de instancias, las métricas de capacidad delclúster se miden en Nodes o en VCPU en función del tipo de unidad utilizado en la política de escaladoadministrado. Para obtener más información, consulteUso del escalado administrado por EMRen laGuía deadministració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

• CoreUnitsRunning

• CoreNodesRunning

• CoreVCPURunning

El número actual de unidades, nodos o vCPU CORE que seejecutan en un clúster.

Unidades: Recuento

513

Page 522: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEventos y métricas de CloudWatch

Métrica Descripción

• 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

Amazon EMR emite las siguientes métricas con una granularidad de un minuto cuando habilita laterminación automática mediante una política de terminación automática. Algunas métricas solo estándisponibles para Amazon EMR versiones 6.4.0 y posteriores. Para obtener más información sobre laterminación automática, consulteUso de una política de terminación automática (p. 188).

Métrica Descripción

TotalNotebookKernels El número total de núcleos de bloc de notas enejecución e inactivos en el clúster.

Esta métrica solo está disponible para AmazonEMR versiones 6.4.0 y posteriores.

AutoTerminationIsClusterIdle Indica si el clúster se está utilizando.

Valor de0indica que el clúster está en uso activopor uno de los siguientes componentes:

• Aplicación YARN• HDFS• Una notebook• Una interfaz de usuario en clúster, como Spark

History Server

Valor de1indica que el clúster estáinactivo. Amazon EMR comprueba sihay inactividad continua del clúster(AutoTerminationIsClusterIdle= 1).Cuando el tiempo de inactividad de un clústeres igual aIdleTimeoutvalor en la política determinación automática, Amazon EMR finaliza elclúster.

Dimensiones de las métricas de Amazon EMR

Los datos de Amazon EMR se pueden filtrar utilizando cualquiera de las dimensiones de la tabla siguiente.

Dimensión Descripción

JobFlowId El mismo que el ID de clúster, que es un identificadorúnico de un clúster del formatoj-XXXXXXXXXXXXX. Puede

514

Page 523: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer métricas de aplicaciones de clúster con Ganglia

Dimensión Descripciónencontrar este valor haciendo clic en el clúster de 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. JobIdtoma el formulario Job_XXXXXXXXXXXXXX.

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, consulteGangliaen laGuía de publicación de AmazonEMR.

Registro de llamadas a la API de Amazon EMRenAWS CloudTrailAmazon EMR se integra conAWS CloudTrail, un servicio que proporciona un registro de las acciones querealiza un usuario, un rol o unAWSservicio en Amazon EMR. CloudTrail captura todas las llamadas a laAPI para Amazon EMR como eventos. Las llamadas capturadas incluyen las llamadas desde la consolade Amazon EMR y las llamadas desde el código a las operaciones de la API de Amazon EMR. Si creaun registro de seguimiento, puede habilitar la entrega continua de CloudTrail eventos de un bucket deAmazon S3, incluidos los eventos de Amazon EMR. Si no configura un registro de seguimiento, puedever los eventos más recientes en la CloudTrail consola enHistorial de eventos. Mediante la informaciónrecopilada por CloudTrail, puede determinar la solicitud que se realizó a Amazon EMR, la dirección IP deorigen desde la que se realizó, quién la realizó y cuándo, etc.

Para obtener más información acerca de CloudTrail, consulte la AWS CloudTrailGuía del usuario de .

Información de Amazon EMR en CloudTrailCloudTrail se habilita en su cuenta de AWS cuando la crea. Cuando se produce actividad en AmazonEMR, dicha actividad se registra en un CloudTrail evento junto con otrosAWSEventos de servicioenHistorial de eventos. Puede ver, buscar y descargar los últimos eventos de la cuenta de AWS. Paraobtener más información, consulteConsulta de eventos con CloudTrail historial de eventos.

Para mantener un registro continuo de los eventos deAWScuenta, incluidos los eventos de AmazonEMR, cree un registro de seguimiento. UNARegistro de seguimiento dehabilita CloudTrail Para enviararchivos de registro a un bucket de Amazon S3. De manera predeterminada, cuando se crea un registrode seguimiento en la consola, el registro de seguimiento se aplica a todas las regiones de AWS. El registrode seguimiento registra los eventos de todas las regiones de la partición de AWS y envía los archivos deregistro al bucket de Amazon S3 especificado. También puede configurar otrosAWSservicios para analizary actuar según los datos de eventos recopilados en CloudTrail registros. Para obtener más información,consulte los siguientes enlaces:

• 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

515

Page 524: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónRegistro de llamadas a la API deAmazon EMR enAWS CloudTrail

• Recibir CloudTrail archivos de registro de varias regionesyRecibir CloudTrail archivos de registro devarias cuentas

registra todas las acciones de Amazon EMR de CloudTrail y están documentadosen elReferencia de la API de Amazon EMR. Por ejemplo, las llamadasaRunJobFlow,ListClusteryDescribeClusteracciones generan entradas en el CloudTrail archivosde registro.

Cada entrada de registro o evento contiene información sobre quién generó la solicitud. La información deidentidad del usuario le ayuda a determinar lo siguiente:

• Si la solicitud se realizó con credenciales de usuario AWS Identity and Access Management (IAM) ocredenciales de usuario raíz.

• 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.

En el caso de que un proceso, en lugar de un usuario de IAM, cree un clúster, puede utilizarelprincipalIdidentificador para determinar el usuario asociado a la creación del clúster. Para obtenermás información, consulte el elemento userIdentity de CloudTrail.

Ejemplo: Entradas de archivos de registro de Amazon EMRUn registro de seguimiento es una configuración que permite entregar eventos como archivos de registroal bucket de Amazon S3 que especifique. CloudTrail Los archivos de registro de contienen una o variasentradas de registro. Un evento representa una solicitud específica realizada desde un origen y contieneinformación sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud, etc.CloudTrail Los archivos de log de no representan un seguimiento de la pila ordenado de las llamadaspúblicas al API, por lo que no aparecen en ningún orden específico.

En el siguiente ejemplo se muestra un CloudTrail entrada de log de donde se muestraRunJobFlowaction.

{ "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"

516

Page 525: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect al clúster

}, { "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 ]}

Connect al clústerCuando ejecuta un clúster de Amazon EMR, a menudo lo único que tiene 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 rendimientomediante 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 maestro es una instancia Amazon EC2 que coordina las instancias EC2 quese ejecutan como nodos principales y de tareas. El nodo principal expone un nombre de DNS pública quepuede utilizar para conectarse al mismo. De forma predeterminada, Amazon EMR crea reglas de grupode seguridad para el nodo maestro y los nodos principales y los nodos de tareas que determinan cómo seobtiene 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 key pair de AmazonEC2 al lanzar el clúster. Para obtener más información sobre la configuración de Kerberos y,a continuación, conectar, consulte Uso de la autenticación Kerberos (p. 368). Cuando lanzaun clúster desde la consola, la clave privada del key pair de Amazon EC2 se especifica enlaSeguridad y accesosección sobre laCrear un clúster(Se ha creado el certificado).

De forma predeterminada, el grupo de seguridad ElasticMapReduce-master no permite el acceso deSSH entrante. Es posible que tenga que añadir una regla entrante que permita el acceso de SSH (TCPpuerto 22) desde los orígenes a los que desea tener acceso. Para obtener más información acerca de la

517

Page 526: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAntes de conectarse

modificación de las reglas de grupos de seguridad, consulte.Agregar reglas a un grupo de seguridadenlaGuía del usuario de 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• Antes de conectarse: Autorizar el tráfico de entrada (p. 518)• Connect al nodo maestro utilizando SSH (p. 519)• Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 524)

Antes de conectarse: Autorizar el tráfico de entradaAntes de conectarse a un clúster de Amazon EMR, debe autorizar el tráfico SSH entrante (puerto 22)desde los clientes de confianza como la dirección IP de su equipo. Para ello, edite las reglas del grupode seguridad administrado de los nodos a los que desea conectarse. Por ejemplo, en las siguientesinstrucciones se muestra cómo agregar una regla de entrada para el acceso SSH al grupo de seguridadpredeterminado de ElasticMapReduce-Master.

Para obtener más información sobre el uso de grupos de seguridad con Amazon EMR, consulteControlarel tráfico de red con grupos de seguridad (p. 453).

Para permitir el acceso de SSH para orígenes de confianza para el grupo de seguridadElasticMapReduce-master

Para editar los grupos de seguridad, debe tener permiso para administrar grupos de seguridad de la VPCen la que se encuentra el clúster. Para obtener más información, consulteCambio de los permisos de unusuario de IAMy laEjemplo de políticaque permite administrar grupos de seguridad de EC2 en elIAM UserGuide.

1. Abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.2. Seleccione Clusters (Clústeres).3. Elija el iconoNombredel clúster que desea modificar.4. Elija el iconoGrupos de seguridad para Masterlink bajoSeguridad y acceso.5. Elija ElasticMapReduce-master en la lista.6. Elija el iconoReglas de entraday, a continuación,Edición de reglas entrantes.7. Compruebe si hay una regla de entrada que permita el acceso público con la siguiente configuración.

Si existe, eligeBorrarpara quitarlo.

• Type

SSH• Puerto

22• Fuente

Personalizado 0.0.0.0/0

Warning

Antes de diciembre de 2020, el grupo de seguridad ElasticMapReduce-Master tenía una reglapreconfigurada para permitir el tráfico entrante en el puerto 22 desde todos los orígenes. Esta

518

Page 527: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect al nodo maestro utilizando SSH

regla se creó para simplificar las conexiones SSH iniciales al nodo maestro. Recomendamosencarecidamente que elimine esta regla de entrada y restrinja el tráfico a orígenes deconfianza.

8. Desplácese hasta la parte inferior de la lista de reglas y elijaAgregar regla.9. En Type (Tipo), seleccione SSH.

La selección de SSH ingresa automáticamenteTCPparaProtocoloy22paraRango de puertos.10. Como origen, seleccioneMi dirección IPpara agregar automáticamente su dirección IP como dirección

de origen. También puede agregar un rango dePersonalizadodirecciones IP de cliente de confianzao cree reglas adicionales para otros clientes. Muchos entornos de red asignan direcciones IPdinámicamente, por lo que es posible que tenga que actualizar sus direcciones IP para clientes deconfianza en el future.

11. Seleccione Save (Guardar).12. También puede seleccionarElasticMapReduce-slavede la lista y repita los pasos anteriores para

permitir el acceso de los clientes SSH a los nodos básicos y de tareas.

Connect al nodo maestro 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.

Cuando usas SSH conAWS, se está conectando a una instancia EC2, que es un servidor virtual que seejecuta en la nube. Al trabajar con Amazon EMR, el uso más común de SSH consiste en conectar a lainstancia EC2 que actúa como nodo maestro 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. 524).

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 acerca de la modificación de las reglas de grupos de seguridad, consulte.Controlar el tráficode red con grupos de seguridad (p. 453)yAgregar reglas a un grupo de seguridaden laGuía del usuario deAmazon EC2 para instancias de Linux.

Recuperar el nombre DNS público del nodo maestroPuede recuperar el nombre de DNS pública maestra utilizando la consola de Amazon EMR y laAWS CLI.

Console

Para recuperar el nombre de DNS pública del nodo maestro utilizando la consola de AmazonEMR

1. Abra la consola de Amazon EMR enhttps://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 lasDNS público principalvalor que aparece en elResumenSección sobre de

laDetalles de clúster(Se ha creado el certificado).

519

Page 528: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect al nodo maestro utilizando SSH

Note

También puede elegir el enlace SSH junto al nombre de DNS público principal paraobtener instrucciones sobre cómo crear una conexión SSH con el nodo principal.

CLI

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 delclúster al que 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": "My cluster"

2. Para obtener una lista de las instancias de clúster incluido el nombre de DNS público principalpara el clúster, escriba uno de los siguientes comandos. Sustituya j-2AL4XXXXXX5T9 por el IDdel clúster devuelto 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. Anoteel valor 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",

520

Page 529: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect al nodo maestro utilizando SSH

"PrivateIpAddress": "###.##.#.###"

Para obtener más información, consulteComandos de Amazon EMR en elAWS CLI.

Connect al nodo maestro de utilizando SSH y una clave privadade Amazon EC2 en Linux, Unix y Mac OS XPara crear una conexión de SSH autenticada con un archivo de clave privada, tendrá que especificarla clave privada del key pair de Amazon EC2 al lanzar un clúster. Si lanza un clúster desde la consola,la clave privada del key pair Amazon EC2 se especifica en laSeguridad y accesosección sobre laCrearun clúster(Se ha creado el certificado). Para obtener más información acerca del acceso al key pair,consultePares de claves de Amazon EC2en laGuía del usuario de Amazon 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.

Las siguientes instrucciones muestran la apertura de una conexión SSH al nodo maestro 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 key pair de Amazon EC2 para crear una conexión SSH, debeestablecer permisos en la.pemde modo que solo el propietario de la clave tenga permiso para acceder alarchivo. Esto es necesario para crear una conexión SSH utilizando el terminal o la AWS CLI.

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

2. 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.

3. Escriba el comando siguiente para definir los permisos. Reemplazar~/mykeypair.pemcon la rutacompleta y el nombre de archivo de archivo de clave privada del key pair. Por ejemplo, C:\Users\<username>\.ssh\mykeypair.pem.

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. Reemplazarec2-#################################por el nombre de DNS pública maestra de su clúster yreemplace~/mykeypair.pemcon la ruta completa y el nombre de archivo de su.pemfile. Por ejemplo,C:\Users\<username>\.ssh\mykeypair.pem.

521

Page 530: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect al nodo maestro utilizando SSH

ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem

Important

Debe utilizar el nombre de inicio de sesiónhadoopCuando se conecte al nodo maestro deAmazon EMR; de lo contrario, es posible que vea un error similar aServer refused ourkey.

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

Si tienes dificultades para usar SSH para conectarte a tu nodo maestro, consultaSolucione el problema deconectar la instancia..

Connect al nodo maestro utilizando SSH en WindowsLos usuarios de Windows pueden utilizar un cliente SSH como PuTTY para conectarse al nodo maestro.Antes de conectar al nodo maestro de Amazon EMR, debe descargar e instalar PuTTY y PuTTYgen.Puede descargar estas herramientas desde laPágina de descarga de PuTTY.

PuTTY no admite de forma nativa el formato de archivo de clave privada del key pair (.pem) generados porAmazon EC2. Utilice PuttyGen para convertir el archivo de clave al formato PuTTY requerido (.ppk). Debeconvertir la clave a este formato (.ppk) antes de intentar conectarse al nodo maestro mediante PuTTY.

Para obtener más información acerca de la conversión de claves, consulteConvierta su clave privadautilizando PuTTYgenen laGuía del usuario de Amazon EC2 para instancias de Linux.

Para conectar al nodo maestro utilizando PuTTY

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

2. Abrir putty.exe. También puede lanzar PuTTY desde la lista de programas de Windows.3. Si es necesario, en la lista Category (Categoría), elija Session (Sesión).4. En Host Name (or IP address) (Nombre de host (o dirección IP)),

escriba hadoop@MasterPublicDNS. Por ejemplo:hadoop@ec2-#################################.

5. En la lista Category (Categoría), elija Connection > SSH (Conexión > SSH), Auth (Autenticación).6. 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.7. ElegirAbiertoy luegoSípara descartar la alerta de seguridad de PuTTY.

Important

Al iniciar sesión en el nodo principal, escriba hadoop si se le solicita un nombre de usuario.8. Cuando haya terminado de trabajar en el nodo maestro, puede cerrar la conexión de 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

522

Page 531: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConnect al nodo maestro utilizando SSH

(Habilitar conexiones keepalives de TCP). Si dispone de una sesión de SSH activa enPuTTY, puede cambiar la configuración abriendo el contexto (clic con el botón derecho) en labarra del título de PuTTY y eligiendoCambio de la configuración.

Si tienes dificultades para usar SSH para conectarte a tu nodo maestro, consultaSolucione el problema deconectar la instancia..

Connect al nodo maestro utilizando laAWS CLIPuede crear una conexión SSH con nodo maestro mediante laAWS CLIen Windows y en Linux, Unix y MacOS X. Independientemente de la plataforma, necesita el nombre de DNS pública del nodo maestro y laclave privada del key pair de Amazon EC2. Si utiliza la AWS CLI en Linux, Unix o Mac OS X, también debeestablecer permisos en el archivo de clave privada (.pem o .ppk), tal como se muestra en Para configurarlos permisos de archivo de clave privada del par de claves (p. 521).

Para conectar al nodo principal utilizando la AWS CLI

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

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 comando siguiente para abrir una conexión SSH al nodo principal. En el siguiente ejemplo,reemplaceJ-2AL4 XXXXXXXXXXXXXXXXXXXX5con el ID de clúster y reemplaza~/mykeypair.keyque escon la ruta completa y el nombre de archivo de su.pemarchivo (para Linux, Unix y Mac OS X)o.ppkarchivo (para Windows). Por ejemplo, C:\Users\<username>\.ssh\mykeypair.pem.

aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key

4. Cuando haya terminado de trabajar en el nodo principal, cierre la ventana de AWS CLI.

Para obtener más información, consulteComandos de Amazon EMR en elAWS CLI. Si tienesdificultades para usar SSH para conectarte a tu nodo maestro, consultaSolucione el problema deconectar la instancia..

523

Page 532: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Ver las interfaces web alojadas en clústeres deAmazon EMR

Important

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 Controlar el tráfico de red con grupos de seguridad (p. 453).

Hadoop y otras aplicaciones que instale en el clúster de Amazon EMR, publican interfaces de usuariocomo sitios web alojados en el nodo maestro. 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 Connect al nodo maestro utilizando SSH (p. 519). Hadoop también publica las interfaces deusuario 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.

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.

Nombre de interfaz URI

Servidor de historial de Flink (EMRversión 5.33 y posterior)

http://master-public-dns-name:8082/

Ganglia http://master-public-dns-name/ganglia/

Hadoop HDFS NameNode (versiónEMR anterior a la 6.x)

https://master-public-dns-name:50470/

Hadoop HDFS NameNode http://master-public-dns-name:50070/

Hadoop HDFS DataNode http://coretask-public-dns-name:50075/

Hadoop HDFS NameNode (versión 6.xde EMR)

https://master-public-dns-name:9870/

Hadoop HDFS DataNode (versión EMRanterior a la 6.x)

https://coretask-public-dns-name:50475/

Hadoop HDFS DataNode (versión 6.x deEMR)

https://coretask-public-dns-name:9865/

HBase http://master-public-dns-name:16010/

Hue http://master-public-dns-name:8888/

JupyterHub https://master-public-dns-name:9443/

524

Page 533: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Nombre de interfaz URI

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 maestro que no estándisponibles en los nodos principal y de tarea, las instrucciones en este documento son específicas delnodo maestro 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 Hadoop. ResourceManager interfaz con Lynx (las URL de Lynx también se facilitan aliniciar sesión en el nodo maestro 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 nodomaestro, configure el túnel SSH con enrutamiento de puertos local y utilice un navegador de Internetpara abrir interfaces web alojadas en el nodo maestro. 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 maestro,configure el túnel SSH con enrutamiento de puertos local y configure su navegador de Internet parautilizar un complemento como FoxyProxy para Firefox o SwitchyOmega for Chrome para administrarla configuración del proxy SOCKS. Este método 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 del nodo maestro. Para obtener más información acerca de cómo configurar FoxyProxypara Firefox y Google Chrome, consulteOpción 2, parte 2: Configuración de proxy para ver sitios webalojados en el nodo maestro (p. 530).

Note

Si modifica el puerto en el que se ejecuta una aplicación mediante la configuración del clúster,el hipervínculo al puerto no se actualizará en la consola de Amazon EMR. Esto se debe a que laconsola no tiene la funcionalidad para leerserver.portConfiguración de .

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, consulteAcceso de un clic al servidor del historial de Spark persistente.

Temas• Opción 1: Configuración de un túnel SSH al nodo maestro mediante el enrutamiento de puertos

local (p. 526)

525

Page 534: Amazon EMR - Guía de administración

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 en el nodo maestro utilizando el enrutamiento de puertosdinámico (p. 527)

• Opción 2, parte 2: Configuración de proxy para ver sitios web alojados en el nodo maestro (p. 530)

Opción 1: Configuración de un túnel SSH al nodo maestromediante el enrutamiento 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 maestro utilizando la consola de Amazon EMR (p. 519). Para obtener más información acercadel acceso al key pair, consultePares de claves de Amazon EC2en laGuía del usuario de Amazon EC2para instancias de Linux. Para obtener más información sobre los sitios que podría desear ver en el nodoprincipal, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR (p. 524).

Configurar un túnel SSH en el nodo maestro utilizando el enrutamiento de puertoslocal con OpenSSH

Para configurar un túnel SSH utilizando el enrutamiento de puertos local en terminal

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

2. 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.

3. Escriba el siguiente comando para abrir un túnel SSH en su máquina local. Este comando de ejemploaccede a la interfaz web ResourceManager reenviando el tráfico en el puerto local 8157 (un puertolocal sin utilizar elegido de forma aleatoria) al puerto 8088 en el servidor web local del nodo maestro. 

En el comando, sustituya~/mykeypair.pemcon la ubicación y el nombre de archivo de.pemarchivoy reemplazarec2-#################################con el nombre de DNS pública maestrade su clúster. Para acceder a otra interfaz web, sustituya8088con el número de puerto adecuado. Porejemplo, reemplace8088con8890para la interfaz Zeppelin.

ssh -i ~/mykeypair.pem -N -L 8157:ec2-###-##-##-###.compute-1.amazonaws.com:8088 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

-Lhace referencia al uso de enrutamiento de puertos local que le permite especificar un puerto localutilizado para reenviar datos al puerto remoto identificado en el servidor web local del nodo maestro.

Después de emitir este comando, el terminal permanece abierto y no devuelve una respuesta. 4. Para abrir ResourceManager interfaz web en su navegador, escribahttp://localhost:8157/en la

barra de direcciones.5. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre las ventanas de

la terminal.

526

Page 535: Amazon EMR - Guía de administración

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 en el nodo maestroutilizando 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 el navegador deInternet para utilizar un complemento como FoxyProxy o SwitchYomega para administrar la configuracióndel proxy SOCKS.

El uso de un complemento de administración de proxy le permite filtrar automáticamente las URL enfunción de los patrones de texto y limitar la configuración del proxy a dominios que coinciden con la formadel nombre de DNS pública del nodo principal. El complemento del navegador gestiona automáticamentela activación y desactivación del proxy al cambiar entre la visualización de sitios web alojados en el nodoprincipal 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 maestro utilizando la consola de AmazonEMR (p. 519). Para obtener más información acerca del acceso al key pair, consultePares de clavesde Amazon EC2en laGuía del usuario de Amazon EC2 para instancias de Linux. Para obtener másinformación sobre los sitios que podría desear ver en el nodo principal, consulte Ver las interfaces webalojadas en clústeres de Amazon EMR (p. 524).

Configurar un túnel SSH en el nodo maestro utilizando el enrutamiento de puertosdinámico con OpenSSH

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico con OpenSSH

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

2. 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.

3. Escriba el siguiente comando para abrir un túnel SSH en su máquina local. Reemplazar~/mykeypair.pemcon la ubicación y el nombre de archivo de.pemarchivo, reemplazar8157con unnúmero de puerto local sin usar y reemplazarc2-#################################por elnombre de DNS pública maestra de su 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.

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: Configuración de proxy para ver sitios web alojados en elnodo maestro (p. 530).

5. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre la ventana de laterminal.

527

Page 536: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Configurar un túnel SSH utilizando el enrutamiento de puertos dinámico conlaAWS 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. 521). Si utiliza elAWS CLIEn Windows, PuTTY debe aparecer en la variable de entorno dela ruta o podría recibir un error como, por ejemplo,OpenSSH o PuTTY no están disponibles.

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico con la AWS CLI

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

2. Crear una conexión SSH con el nodo principal, tal y como se muestra en Connect al nodo maestroutilizando laAWS CLI (p. 523).

3. 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"

4. 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.

5. 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: Configuración de proxy para ver sitios web alojados en elnodo maestro (p. 530).

6. 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 el uso de los comandos de Amazon EMR en laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

528

Page 537: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Configurar un túnel SSH en el nodo maestro mediante PuTTY

Los usuarios de Windows pueden utilizar un cliente SSH como PuTTY para crear un túnel SSH en elnodo maestro. Antes de conectar al nodo maestro de Amazon EMR, debe descargar e instalar PuTTY yPuTTYgen. Puede descargar estas herramientas desde laPágina de descarga de PuTTY.

PuTTY no admite de forma nativa el formato de archivo de clave privada del key pair (.pem) generados porAmazon EC2. Utilice PuttyGen para convertir el archivo de clave al formato PuTTY requerido (.ppk). Debeconvertir la clave a este formato (.ppk) antes de intentar conectarse al nodo maestro mediante PuTTY.

Para obtener más información acerca de la conversión de claves, consulteConvierta su clave privadautilizando PuTTYgenen laGuía del usuario de Amazon EC2 para instancias de Linux.

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico mediante PuTTY

1. Asegúrese de haber permitido el tráfico SSH entrante. Para obtener instrucciones, consulte Antes deconectarse: Autorizar el tráfico de entrada (p. 518).

2. Haga doble clic enputty.exepara 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 maestro, puede añadir un túnel haciendoclic con el botón derecho del ratón en la barra del título de PuTTY y eligiendoCambio de laconfiguración.

3. Si es necesario, en la lista Category (Categoría), elija Session (Sesión).4. En el campo Host Name (Nombre de host), escriba hadoop@MasterPublicDNS. Por

ejemplo:hadoop@ec2-#################################.5. En la lista Category (Categoría), expanda Connection > SSH (Conexión > SSH) y, a continuación, elija

Auth (Autenticación).6. 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 key pair (.pem)generados por Amazon EC2. Utilice PuttyGen para convertir el archivo de clave al formatoPuTTY requerido (.ppk). Debe convertir la clave a este formato (.ppk) antes de intentarconectarse al nodo maestro mediante PuTTY.

7. En la lista Category (Categoría), expanda Connection > SSH (Conexión > SSH) y, a continuación, elijaTunnels (Túneles).

8. En el navegadorPuerto de origencampo, escriba8157(un puerto local sin utilizar) y, a continuación,seleccioneAñadir.

9. Deje el campo Destination (Destino) en blanco.10. Seleccione las opciones Dynamic (Dinámico) y Auto.11. Elija Open.12. 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.

13. 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: Configuración de proxy para ver sitios web alojados en elnodo maestro (p. 530).

529

Page 538: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

14. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre las ventana dePuTTY.

Opción 2, parte 2: Configuración de proxy para ver sitios webalojados en el nodo maestroSi 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 SwitchYomega.

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 en el nodo maestro utilizando el enrutamiento de puertos dinámico (p. 527).Para obtener más información acerca de las interfaces web disponibles, consulte Ver las interfaces webalojadas en clústeres de Amazon EMR (p. 524).

Incluya la siguiente configuración al configurar el complemento proxy:

• Usarlocalhostcomo dirección de host.• Utilice el mismo número de puerto local que ha seleccionado para establecer el túnel SSH con el nodo

maestro enOpción 2, parte 1: Configurar un túnel SSH en el nodo maestro utilizando el enrutamiento depuertos dinámico (p. 527). Por ejemplo, puerto8157. Este puerto también debe coincidir con el númerode puerto que utiliza en PuTTY o en cualquier otro emulador de terminal que utilice para conectarse.

• Especifique laCALCETINES v5protocolo. SOCKS v5 le permite configurar opcionalmente la autorizacióndel usuario.

• URL Patterns (Patrones de URL)

Los siguientes patrones de URL deben incluirse en la lista permitida y especificarse con un tipo depatrón comodín:• La*ec2*.amazonaws.com*y*10*.amazonaws.com*patrones que coinciden con el nombre DNS público

de los clústeres de las regiones estadounidenses.• La*ec2*.compute*y*10*.cómputo*patrones que coinciden con el nombre de DNS pública de los

clústeres de todas las demás regiones.• UNA10. *patrón para proporcionar acceso al JobTracker archivos de registro en Hadoop. Modifique

este filtro si entra en conflicto con su plan de acceso de red.• La*.ec2.internal*y*.compute.internal*patrones para que coincidan con los nombres DNS privados

(internos) de los clústeres de laus-east-1región y todas las demás regiones, respectivamente.

Ejemplo: Configurar FoxyProxy para Firefox

En el ejemplo siguiente se muestra una FoxyProxy Configuración estándar (versión 7.5.1) para MozillaFirefox.

FoxyProxy proporciona un conjunto de herramientas de administración de proxy. Le permite utilizar unservidor proxy para las URL que coincidan con los patrones correspondientes a dominios que utilizan lasinstancias Amazon EC2 en su clúster de Amazon EMR.

530

Page 539: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

Para instalar y configurar FoxyProxy Uso de Mozilla Firefox

1. En Firefox, ve ahttps://addons.mozilla.org/, busque FoxyProxy Standard y siga las instrucciones paraagregar FoxyProxy a Firefox.

2. En un editor de texto, cree un archivo JSON con el nombrefoxyproxy-settings.jsonEn lasiguiente configuración del ejemplo.

{ "k20d21508277536715": { "active": true, "address": "localhost", "port": 8157, "username": "", "password": "", "type": 3, "proxyDNS": true, "title": "emr-socks-proxy", "color": "#0055E5", "index": 9007199254740991, "whitePatterns": [ { "title": "*ec2*.amazonaws.com*", "active": true, "pattern": "*ec2*.amazonaws.com*", "importedPattern": "*ec2*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*ec2*.compute*", "active": true, "pattern": "*ec2*.compute*", "importedPattern": "*ec2*.compute*", "type": 1, "protocols": 1 }, { "title": "10.*", "active": true, "pattern": "10.*", "importedPattern": "http://10.*", "type": 1, "protocols": 2 }, { "title": "*10*.amazonaws.com*", "active": true, "pattern": "*10*.amazonaws.com*", "importedPattern": "*10*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*10*.compute*", "active": true, "pattern": "*10*.compute*", "importedPattern": "*10*.compute*", "type": 1, "protocols": 1 }, { "title": "*.compute.internal*", "active": true, "pattern": "*.compute.internal*",

531

Page 540: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVer las interfaces web alojadasen clústeres de Amazon EMR

"importedPattern": "*.compute.internal*", "type": 1, "protocols": 1 }, { "title": "*.ec2.internal* ", "active": true, "pattern": "*.ec2.internal*", "importedPattern": "*.ec2.internal*", "type": 1, "protocols": 1 } ], "blackPatterns": [] }, "logging": { "size": 100, "active": false }, "mode": "patterns", "browserVersion": "68.12.0", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard"}

3. Abra FirefoxGestione sus extensionespágina (vaya aacerca de: complementosy,después,Extensiones).

4. ElegirFoxyProxy estándary, a continuación, elige el botón más opciones (el botón que parece un puntosuspensivo).

5. SelectOpcionesdel menú desplegable.6. ElegirConfiguración de importacióndesde el menú de la izquierda.7. En la páginaConfiguración de importación, elijaConfiguración de importaciónUNDERImportar

configuración desde FoxyProxy 6.0+, vaya a la ubicación delfoxyproxy-settings.jsonarchivoque has creado, selecciona el archivo y eligeAbierto.

8. ElegirDE ACUERDOcuando se le pida que sobrescriba la configuración existente y guarde su nuevaconfiguración.

Ejemplo: Configurar SwitchyOmega para chrome

El siguiente ejemplo muestra cómo configurar la SwitchyOmega extensión para Google Chrome.SwitchyOmega le permite configurar, administrar y cambiar entre varios proxies.

Para instalar y configurar SwitchyOmega Uso de Google Chrome

1. Vaya ahttps://chrome.google.com/webstore/category/extensions, busqueInterruptor proxy Omegayañádelo a Chrome.

2. ElegirNuevo perfily introduzcaemr-socks-proxycomo nombre de perfil.3. ElegirPerfil de PACy luegoCrear. Configuración automática de proxy (PAC)los archivos ayudan a

definir una lista de permisos para las solicitudes de explorador que deben reenviarse a un servidorproxy web.

4. En el navegadorScript de PAC, sustituya el contenido por el siguiente script que define qué URLdeben reenviarse a través del servidor proxy web. Si especificó un número de puerto diferente alconfigurar el túnel SSH, sustituya8157con el número de puerto.

function FindProxyForURL(url, host) { if (shExpMatch(url, "*ec2*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "http://10.*")) return 'SOCKS5 localhost:8157';

532

Page 541: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTerminar un clúster

if (shExpMatch(url, "*10*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*10*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*.compute.internal*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2.internal*")) return 'SOCKS5 localhost:8157'; return 'DIRECT';}

5. UNDERActions, eligeAplicación de los cambiospara guardar la configuración del proxy.6. En la barra de herramientas de Chrome, elija SwitchyOmega y seleccione laemr-socks-proxyperfil.

Acceder a una interfaz web en el navegadorPara abrir una interfaz web, introduzca el nombre DNS público del nodo principal o principal seguido delnúmero de puerto de la interfaz elegida en la barra de direcciones del navegador. En el siguiente ejemplose muestra la URL que introduciría para conectarse al Spark HistoryServer.

http://master-public-dns-name:18080/

Para obtener instrucciones sobre cómo recuperar el nombre DNS público de un nodo, consulte.Recuperarel nombre DNS público del nodo maestro (p. 519). Para obtener una lista completa de las URL de lainterfaz web, consulteVer las interfaces web alojadas en clústeres de Amazon EMR (p. 524).

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 Terminacióndel clúster de (p. 186). Puede terminar clústeres en los estados STARTING, RUNNINGo WAITING. Unclúster en el estado WAITING se debe terminar o se ejecuta de forma indefinida, generando cargos en sucuenta. Puede terminar un clúster que no sea capaz de salir del estado STARTING o no pueda completarun 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.

Note

No se puede reiniciar un clúster terminado, pero puede clonar un clúster terminado para reutilizarsu configuración para un nuevo clúster. Para obtener más información, consulte Clonación de unclúster mediante la consola (p. 571).

Terminar un clúster mediante 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 laAWS Management Consoley abra la consola de Amazon EMR enhttps://console.aws.amazon.com/elasticmapreduce/.

2. Seleccione el clúster que va a terminar. Puede seleccionar varios clústeres y terminarlos al mismotiempo.

533

Page 542: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTerminar un clúster mediante elAWS CLI

3. Elija Terminate (Terminar).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 laAWS Management Consoley abra la consola de Amazon EMR enhttps://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 (Terminar).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).

Amazon EMR termina las instancias del clúster y deja de guardar los datos de registro.

Terminar un clúster mediante elAWS 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 el uso de los comandos de Amazon EMR en laAWS CLI,consultehttps://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.

534

Page 543: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónTerminar un clúster mediante la API

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 el uso de los comandos de Amazon EMR en laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Terminar un clúster mediante la APILaTerminateJobFlowsfinaliza el procesamiento de pasos, carga los datos de registro desde AmazonEC2 a Amazon S3 (si está configurado) y termina el clúster de Hadoop. Un clúster también terminaautomáticamente si establece KeepJobAliveWhenNoSteps en False en una solicitud RunJobFlows.

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, consulteParámetros comunes de solicitud.

Escalado de recursos del clPuede 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 que tienen diferentes demandas. Parautilizar el escalado automático, tiene dos opciones. Puede habilitar el escalado administrado por EMR ocrear una política de escalado automático personalizada. En la siguiente tabla se describen las diferenciasentre las dos 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, periodos derecuperación, etc.

Versiones EMR compatibles Amazon EMR versión 5.30.0 yversiones posteriores (exceptoAmazon EMR versión 6.0.0)

Amazon EMR versión 4.0.0 yposteriores.

535

Page 544: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

  Escalado administrado por EMR Escalado automáticopersonalizado

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.

Otras aplicaciones, como Presto,no son compatibles actualmente.

Puede elegir qué aplicaciones seadmiten cuando defina las reglasde escalado automático.

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.

Uso del escalado administrado de EMR en AmazonEMRTemas

• Descripción de la estrategia y escenarios de asignación de nodos (p. 539)• Descripción de las métricas de escalado administrado (p. 544)• UsarAWS Management Consolepara configurar el escalado administrado (p. 547)• Opciones de consola actualizadas para escalado de clúster (p. 549)• Uso deAWS CLIpara configurar el escalado administrado (p. 550)• Uso deAWS SDK for Javapara configurar el escalado administrado (p. 552)

Important

Le recomendamos encarecidamente que utilice las últimas versiones de Amazon EMR para elescalado administrado. En versiones anteriores de Amazon EMR, podría experimentar fallosintermitentes de las aplicaciones o retrasos en el escalado. Este problema se solucionó enAmazon EMR 5.30.2, 5.31.1, 5.32.1, 5.33.1 y 6.0.1, 6.1.1, 6.2.1, 6.3.1.

536

Page 545: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Con las versiones 5.30.0 y posteriores de Amazon EMR (excepto Amazon EMR 6.0.0), puedehabilitar el escalado administrado por EMR. El escalado administrado le permite aumentar o disminuirautomáticamente el número de instancias o unidades del clúster en función de la carga de trabajo. EMRevalúa continuamente las métricas del clúster para tomar decisiones de escalado que optimicen losclústeres en cuanto al costo y la velocidad. El escalado administrado está disponible para clústerescompuestos 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(MinimumCapacityUnits) — Límite inferior de la capacidad EC2 permitida en un clúster. Semide a través de núcleos o instancias de unidad central de procesamiento virtual (vCPU) para grupos deinstancias. Se mide a través de unidades, por ejemplo, flotas.

• Máximo(MaximumCapacityUnits) — Límite superior de la capacidad EC2 permitida en un clúster. Semide a través de núcleos o instancias de unidad central de procesamiento virtual (vCPU) para grupos deinstancias. Se mide a través de unidades, por ejemplo, flotas.

• Límite bajo demanda(MaximumOnDemandCapacityUnits) (Opcional): límite superior de la capacidadEC2 permitida para el tipo de mercado bajo demanda en un clúster. Si no se especifica este parámetro,el valor predeterminado es el valor deMaximumCapacityUnits.

Este parámetro se utiliza para dividir la asignación de capacidad entre instancias bajo demanda einstancias de spot. Por ejemplo, si establece el parámetro mínimo como 2 instancias, el parámetromáximo en 100 instancias, el límite bajo demanda en 10 instancias, el escalado administrado de EMRse escala hasta 10 instancias bajo demanda y asigna la capacidad restante a instancias puntuales. Paraobtener más información, consulte Situaciones de asignación de nodos (p. 540).

• Nodos principales máximos(MaximumCoreCapacityUnits) (Opcional): límite superior de la capacidadEC2 permitida para el tipo de nodo principal en un clúster. Si no se especifica este parámetro, el valorpredeterminado es el valor deMaximumCapacityUnits.

Este parámetro se utiliza para dividir la asignación de capacidad entre los nodos principales y de tareas.Por ejemplo, si establece el parámetro mínimo como 2 instancias, el máximo como 100 instancias, elnodo principal máximo en 17 instancias, el escalado administrado de EMR se escala hasta 17 nodosprincipales y asigna las 83 instancias restantes a nodos de tareas. Para obtener más información,consulte Situaciones de asignación de nodos (p. 540).

Para obtener más información acerca de los parámetros de escalado administrado,consulte.ComputeLimits.

Historial de funciones

En esta sección se enumeran las actualizaciones recientes de la función de escalado administrado deAmazon EMR y la versión de versión que contiene la actualización.

Historial de funciones de escalado administrado

Fechadelanzamientode lanuevaversión

Característica VersionesdeAmazonEMR

21 demarzode2022

Se ha añadido el reconocimiento de datos aleatorio de Spark que se utilizacuando se reducen los clústeres. Para los clústeres de Amazon EMR conApache Spark y la función de escalado administrado habilitada, Amazon EMRsupervisa continuamente los ejecutores de Spark y las ubicaciones de datosaleatorios intermedios. Con esta información, Amazon EMR reduce la escalasolo de las instancias infrautilizadas que no contienen datos aleatorios utilizados

5.34.0 yposteriores,6.4.0 yposteriores

537

Page 546: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Fechadelanzamientode lanuevaversión

Característica VersionesdeAmazonEMR

activamente. Esto evita que se vuelva a calcular los datos aleatorios perdidos, loque ayuda a reducir los costos y mejorar el rendimiento del trabajo. Para obtenermás información, consulte laGuía de programación de Spark.

     

Condiciones y limitaciones

• Para utilizar el escalado administrado, el proceso del recopilador de métricas debe poder conectarse alextremo de la API pública para el escalado administrado en API Gateway. Si utiliza un nombre de DNSprivado conAmazon Virtual Private Cloud, el escalado administrado no funcionará correctamente. Paragarantizar que el escalado administrado funcione, le recomendamos que realice una de las siguientesoperaciones:• Elimine el extremo de la VPC de la interfaz de API Gateway de su Amazon VPC.• Siga las instrucciones en¿Por qué aparece un error HTTP 403 Prohibido al conectarse a mis API de

API Gateway desde una VPC?Para deshabilitar la configuración del nombre DNS privado.• Lance su clúster en una subred privada en su lugar. Para obtener más información, consulte el tema

deSubredes privadas (p. 226).• Si los trabajos de YARN se ralentizan intermitentemente durante la reducción de la escala y los registros

de YARN Resource Manager muestran que la mayoría de los nodos fueron denegados en la listadurante ese tiempo, puede ajustar el umbral de tiempo de espera de desmantelamiento. Reduzcaelspark.blacklist.decommissioning.timeoutde una hora a un minuto para que el nodo estédisponible para otros contenedores pendientes para continuar el procesamiento de tareas.

También debe configuraryarn.resourcemanager.nodemanager-graceful-decommission-timeout-secsa un valor mayor para garantizar que Amazon EMR no forza la finalización del nodomientras la «tarea de chispa» más larga sigue ejecutándose en el nodo. El valor predeterminado actuales de 60 minutos, lo que significa que la fuerza de hilo termina el contenedor después de 60 minutos unavez que el nodo entra en estado de desmantelamiento.

A continuación se muestra un ejemplo de línea de registro de Yarn Resource Manager que muestra quelos nodos se agregan al estado de desmantelamiento.

2021-10-20 15:55:26,994 INFO org.apache.hadoop.yarn.server.resourcemanager.DefaultAMSProcessor (IPC Server handler 37 on default port 8030): blacklist are updated in Scheduler.blacklistAdditions: [ip-10-10-27-207.us-west-2.compute.internal, ip-10-10-29-216.us-west-2.compute.internal, ip-10-10-31-13.us-west-2.compute.internal, ... , ip-10-10-30-77.us-west-2.compute.internal], blacklistRemovals: []

Másdetalles sobre cómo Amazon EMR se integra con el listado de denegación de YARN durante eldesmantelamiento de nodos.

Casos en los que los nodos de Amazon EMR pueden denegarse a publicar.

Configuración del comportamiento de desmantelamiento de nodos de Spark.• La utilización excesiva de volúmenes de EBS puede provocar problemas de escalado administrado.

Le recomendamos que mantenga el volumen de EBS por debajo del 90% de utilización.ConsulteEspecificación de volúmenes de almacenamiento de EBS adicionales.

538

Page 547: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

• El escalado administrado de EMR está disponible actualmente en 22AWSRegiones: EE.UU. Este (Nortede Virginia y Ohio), EE.UU. Oeste (Oregón y Norte de California), América del Sur (São Paulo), Europa(Fráncfort, Irlanda, Londres, Milán, París y Estocolmo), Canadá (Central), Asia Pacífico (Hong Kong,Mumbai, Seúl, Singapur, Sídney y Tokio), Oriente Medio (Bahréin), África (Ciudad del Cabo),AWSGovCloud (EE. UU. Este),AWS GovCloud (US-Oeste), China (Pekín) operado por Sinnet y China(Ningxia) operado por NWCD.

• Amazon CloudWatch las métricas son fundamentales para que funcione el escalado administradode Amazon EMR. Le recomendamos que monitoree de cerca a Amazon CloudWatch métricaspara asegurarse de que no faltan datos. Para obtener más información acerca de cómo configurarCloudWatch alarmas para detectar métricas faltantes, consulteUso de Amazon CloudWatch alarmas.

• Las operaciones de escalado administrado en clústeres 5.30.0 y 5.30.1 sin Presto instalado puedenprovocar errores en las aplicaciones o hacer que un grupo de instancias uniforme o flota de instanciaspermanezca en elARRESTEDestado, especialmente cuando una operación de reducción de escala vaseguida rápidamente de una operación de escalado.

Como solución alternativa, elija Presto como aplicación para instalar cuando cree un clúster, incluso si sutrabajo no requiere Presto.

• El escalado administrado de EMR solo funciona con aplicaciones YARN, como Spark, Hadoop, Hive yFlink. Actualmente no es compatible con aplicaciones que no estén basadas en YARN, como Presto.

• Cuando establezca el nodo principal máximo y el límite bajo demanda para el escalado administradode EMR, tenga en cuenta las diferencias entre los grupos de instancias y las flotas de instancias. Cadagrupo de instancias consta del mismo tipo de instancia y la misma opción de compra para las instancias:Bajo demanda o spot. Para cada flota de instancias, puede especificar hasta cinco tipos de instancias,que se pueden aprovisionar como instancias bajo demanda y subasta. Para obtener más información,consulteCrear un clúster con flotas de instancias o grupos de instancias uniformes,Opciones de flota deinst, ySituaciones de asignación de nodos (p. 540).

• (EMR 5.30.0 y versiones posteriores) Si elimina el valor predeterminadoPermitir todoregla de salidaa 0.0.0.0/ para el grupo de seguridad principal, debe agregar una regla que permita la conectividadTCP saliente al grupo de seguridad para el acceso al servicio en el puerto 9443. El grupo de seguridadpara el acceso al servicio también debe permitir el tráfico TCP entrante en el puerto 9443 del grupo deseguridad principal. Para obtener más información acerca de la configuración de grupos de seguridad,consulte.Grupo de seguridad administrado por Amazon EMR para la instancia principal (subredesprivadas).

• Puede usarAWS CloudFormationpara configurar el escalado administrado por EMR. Para obtener másinformación, consulteAWS::EMR::Clusteren laAWS CloudFormationGuía del usuario de.

Temas• Descripción de la estrategia y escenarios de asignación de nodos (p. 539)• Descripción de las métricas de escalado administrado (p. 544)• UsarAWS Management Consolepara configurar el escalado administrado (p. 547)• Opciones de consola actualizadas para escalado de clúster (p. 549)• Uso deAWS CLIpara configurar el escalado administrado (p. 550)• Uso deAWS SDK for Javapara configurar el escalado administrado (p. 552)

Descripción de la estrategia y escenarios de asignación de nodosEn esta sección se ofrece una descripción general de la estrategia de asignación de nodos y losescenarios de escalado comunes que puede utilizar con el escalado administrado de EMR.

Estrategia de asignación de nodosEl escalado administrado de EMR asigna los nodos principales y de tareas en función de las siguientesestrategias de escalado y reducción:

539

Page 548: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Estrategia de escalado

• El escalado administrado de EMR añade primero capacidad a los nodos principales y, a continuación,a los nodos de tareas hasta que se alcance la capacidad máxima permitida o hasta que se alcance lacapacidad de destino de escalado deseada.

• Si el archivo deMaximumCoreCapacityUnitsse establece y, a continuación, Amazon EMR escalalos nodos principales hasta que las unidades principales alcancen el límite máximo permitido. Toda lacapacidad restante se añade a los nodos de tareas.

• Si el archivo deMaximumOnDemandCapacityUnitsse establece y, a continuación, Amazon EMRescala el clúster mediante las instancias bajo demanda hasta que las unidades bajo demanda alcancenel límite máximo permitido. Toda la capacidad restante se añade mediante instancias puntuales.

• Si ambosMaximumCoreCapacityUnitsyMaximumOnDemandCapacityUnitsse establecenparámetros, Amazon EMR tiene en cuenta ambos límites durante el escalado.

Por ejemplo, si elMaximumCoreCapacityUnitses menor queMaximumOnDemandCapacityUnits,EMR escala en primer lugar los nodos principales hasta que se alcanza el límite de capacidad delnúcleo. Para la capacidad restante, EMR utiliza en primer lugar instancias bajo demanda para escalarlos nodos de tareas hasta que se alcance el límite bajo demanda y, a continuación, utiliza instanciaspuntuales para nodos de tareas.

Estrategia de escalado inferior

• Las versiones 5.34.0 y posteriores de Amazon EMR y las versiones 6.4.0 y posteriores de AmazonEMR admiten el escalado administrado que conoce los datos aleatorios de Spark (datos que Sparkredistribuye entre particiones para realizar operaciones específicas). Para obtener más informaciónacerca de las operaciones de aleatorización, consulte laGuía de programación de Spark. El escaladoadministrado solo reduce las instancias que están infrautilizadas y que no contienen datos aleatoriosutilizados activamente. Este escalado inteligente evita la pérdida involuntaria de datos de barajación,evitando la necesidad de reintentos de trabajo y de volver a calcular datos intermedios.

• El escalado administrado de EMR elimina primero los nodos de tareas y, a continuación, elimina losnodos principales hasta que se alcance la capacidad de destino de reducción deseada. El clúster nuncase escala por debajo de las restricciones mínimas de la política de escalado administrado.

• Dentro de cada tipo de nodo (nodos principales o nodos de tareas), el escalado administrado de EMRelimina primero las instancias puntuales y, a continuación, elimina las instancias bajo demanda.

Si el clúster no tiene carga, Amazon EMR cancela la adición de nuevas instancias de una evaluaciónanterior y realiza operaciones de reducción de escala. Si el clúster tiene una carga pesada, Amazon EMRcancela la eliminación de instancias y realiza operaciones de escalado.

Consideraciones sobre asignación de nodos

Le recomendamos que utilice la opción de compra bajo demanda para nodos principales para evitar lapérdida de datos HDFS en caso de recuperación de spot. Puede utilizar la opción Compra de subasta paralos nodos de tareas para reducir los costos y obtener una ejecución más rápida de los trabajos cuando seañaden más instancias puntuales a los nodos de tareas.

Situaciones de asignación de nodos

Puede crear varios escenarios de escalado en función de sus necesidades mediante la configuración delos parámetros Máximo, Mínimo, Límite bajo demanda y Núcleo máximo en distintas combinaciones.

Escenario 1: Escalar solo los nodos de núcleo

Para escalar únicamente los nodos principales, los parámetros de escalado administrado deben cumplirlos siguientes requisitos:

540

Page 549: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

• El límite bajo demanda es igual al límite máximo.• El nodo principal máximo es igual al límite máximo.

Cuando no se especifican el límite bajo demanda y los parámetros de nodo principal máximo, ambosparámetros se establecen por defecto en el límite máximo.

Los siguientes ejemplos muestran el escenario de escalado únicamente de nodos de núcleos.

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

Grupos de instancias

Core: 1 Bajo demanda

Tarea: 1 bajo demanda y 1 spot

UnitType: Instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

Flotas de instancias

Core: 1 Bajo demanda

Tarea: 1 bajo demanda y 1 spot

UnitType: Unidades de flota de instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

Escale entre 1 y20 instancias ounidades de flotade instancias ennodos principalesutilizando el tipobajo demanda. Sinescalado en losnodos de tareas.

Escenario 2: Escalar solo nodos de tareas

Para escalar únicamente los nodos de tareas, los parámetros de escalado administrado deben cumplir lossiguientes requisitos:

• El nodo principal máximo debe ser igual al límite mínimo.

Los siguientes ejemplos muestran el escenario de escalado únicamente de los nodos de tareas.

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

Grupos de instancias

Core: 2 Bajo demanda

Tarea: 1 spot

UnitType: Instancias

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

Flotas de instancias

Core: 2 Bajo demanda

Tarea: 1 spot

UnitType: Unidades de flota de instancias

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

Mantenga losnodos principalesestables en 2y solo escalelos nodos detareas entre 0 y18 instancias ounidades de flotade instancias. Lacapacidad entrelos límites mínimoy máximo se

541

Page 550: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

MaximumCoreCapacityUnits: 2 añade solo a losnodos de tareas.

Escenario 3: Solo instancias bajo demanda en el clúster

Para tener instancias bajo demanda únicamente, el clúster y los parámetros de escalado administradodeben cumplir los siguientes requisitos:

• El límite bajo demanda es igual al límite máximo.

Cuando no se especifica el límite bajo demanda, el valor del parámetro se establece por defecto en ellímite máximo. El valor predeterminado indica que Amazon EMR escala únicamente las instancias bajodemanda.

Si el nodo principal máximo es inferior al límite máximo, se puede utilizar el parámetro de nodo principalmáximo para dividir la asignación de capacidad entre los nodos principales y los nodos de tarea.

Para habilitar este escenario en un clúster compuesto por grupos de instancias, todos los grupos de nodosdel clúster deben utilizar el tipo de mercado bajo demanda durante la configuración inicial.

Los ejemplos siguientes muestran el escenario de tener instancias bajo demanda en todo el clúster.

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

Grupos de instancias

Core: 1 Bajo demanda

Tarea: 1 Bajo demanda

UnitType: Instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

Flotas de instancias

Core: 1 Bajo demanda

Tarea: 1 Bajo demanda

UnitType: Unidades de flota de instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

Escale entre 1 y12 instancias ounidades de flotade instancias ennodos principalesutilizandoel tipo bajodemanda. Escalela capacidadrestante utilizandobajo demandaen los nodosde tareas. Sinescalado utilizandoInstancias de spot.

Escenario 4: Solo instancias puntuales en el clúster

Para tener solo instancias puntuales, los parámetros de escalado administrado deben cumplir lossiguientes requisitos:

• El límite bajo demanda se establece en 0.

Si el nodo principal máximo es inferior al límite máximo, se puede utilizar el parámetro de nodo principalmáximo para dividir la asignación de capacidad entre los nodos principales y los nodos de tarea.

542

Page 551: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Para habilitar este escenario en un clúster compuesto por grupos de instancias, el grupo de instanciasprincipal debe utilizar la opción Compra de subasta durante la configuración inicial. Si no hay ningunainstancia de subasta en el grupo de instancias de tareas, el escalado administrado de EMR crea un grupode tareas utilizando instancias puntuales cuando es necesario.

Los ejemplos siguientes muestran el escenario de tener instancias puntuales en todo el clúster.

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

Grupos de instancias

Core: 1 spot

Tarea: 1 spot

UnitType: Instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

Flotas de instancias

Core: 1 spot

Tarea: 1 spot

UnitType: Unidades de flota de instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

Escale entre 1 y20 instancias ounidades de flotade instancias ennodos principalesmediante Spot.Sin escaladomediante el tipobajo demanda.

Escenario 5: Escalar instancias bajo demanda en nodos principales e instancias puntuales en nodos detareas

Para escalar instancias bajo demanda en nodos principales e instancias puntuales en nodos de tareas, losparámetros de escalado administrado deben cumplir los siguientes requisitos:

• El límite bajo demanda debe ser igual al nodo principal máximo.• Tanto el límite bajo demanda como el nodo principal máximo deben ser inferiores al límite máximo.

Para habilitar este escenario en un clúster compuesto por grupos de instancias, el grupo de nodosprincipales debe utilizar la opción Compra bajo demanda.

Los ejemplos siguientes muestran el escenario de escalar instancias bajo demanda en nodos principales einstancias puntuales en nodos de tareas.

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

Grupos de instancias

Core: 1 Bajo demanda

Tarea: 1 bajo demanda y 1 spot

UnitType: Instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7

Flotas de instancias

Core: 1 Bajo demanda

UnitType: Unidades de flota de instancias

MinimumCapacityUnits: 1

Escale hasta 6unidades bajodemanda en elnodo principal,ya que ya hay1 unidad bajodemanda en elnodo de tarea y ellímite máximo parabajo demanda es7. A continuación,amplíe hasta

543

Page 552: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Estado inicial del clúster Parámetros de escalado Comportamientode escalado

Tarea: 1 bajo demanda y 1 spot MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7

13 unidadespuntuales ennodos de tareas.

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 ola Amazon CloudWatch consola de . CloudWatch las métricas son fundamentales para que funcione elescalado administrado de Amazon EMR. Le recomendamos que siga de cerca CloudWatch métricas paraasegurarse de que no faltan datos. Para obtener más información acerca de cómo configurar CloudWatchalarmas para detectar métricas faltantes, consulteUso de Amazon CloudWatch alarmas. Para obtenermás información acerca del uso de CloudWatch eventos con Amazon EMR, consulteMonitorear eventosCloudWatch.

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 El número actual de unidades, nodos o vCPU TASK que seejecutan en un clúster.

544

Page 553: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Métrica Descripción• TaskNodesRunning

• TaskVCPURunning

Unidades: Recuento

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 de 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 Monitorear el progreso del

Unidades: Recuento

AppsPending El número de aplicaciones enviadas a YARN que están enestado pendiente.

Caso de uso Monitorear el progreso del

Unidades: Recuento

AppsRunning El número de aplicaciones enviadas a YARN que se estánejecutando.

Caso de uso Monitorear el progreso del

Unidades: Recuento

ContainerAllocated El número de contenedores de recursos asignados porResourceManager.

Caso de uso Monitorear el progreso del

Unidades: Recuento

ContainerPending El número de contenedores en la cola que aún no se hanasignado.

Caso de uso Monitorear el progreso del

Unidades: Recuento

ContainerPendingRatio La proporción entre contenedores pendientes y contenedoresasignados (ContainerPendingRatio = ContainerPending /ContainerAllocated). Si ContainerAllocated = 0, luegoContainerPendingRatio = 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

HDFSUtilization El porcentaje de almacenamiento HDFS usado actualmente.

545

Page 554: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Métrica DescripciónCaso de uso Análisis del rendimiento del clú

Unidades: Porcentaje

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 en 0.Este valor se comprueba a intervalos de cinco minutos y un valorde 1 indica que el clúster estuvo inactivo cuando se comprobó,no que estuvo inactivo durante los cinco minutos. Para evitarfalsos positivos, debe activar una alarma cuando este valorsea 1 durante más de una comprobación consecutiva de cincominutos. Por ejemplo, puede activar una alarma cuando estevalor sea 1 durante treinta minutos o más.

Caso de uso Monitorear el rendimiento del

Unidades: Booleano

MemoryAvailableMB La cantidad de memoria disponible para asignar.

Caso de uso Monitorear el progreso del

Unidades: Recuento

MRActiveNodes El número de nodos que se están ejecutando actualmenteMapReduce tareas o trabajos. Equivalente a la métrica YARNmapred.resourcemanager.NoOfActiveNodes.

Caso de uso Monitorear el progreso del

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

Diagrama métricas de escalado administrado

Puede 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 graficar métricas de escalado administrado en la CloudWatch consola

1. Abra la consola de CloudWatch.2. En el panel de navegación, elijaAmazon 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.

546

Page 555: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

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.

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.

UsarAWS Management Consolepara configurar el escaladoadministradoAl crear un clúster, puede configurar el escalado administrado mediante opciones rápidas o 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 .

547

Page 556: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Para utilizar opciones rápidas para configurar el escalado administrado al crear un clúster

1. Abra la consola de Amazon EMR y elijaCrear un clústerAbraCrear clúster: opciones rápidas.2. En el navegadorConfiguración de hardwaresección junto aEscalado clúster, seleccione la casilla de

verificación para activarescalar nodos de clúster según la carga de trabajo.

3. UNDERUnidades principales y de tareas, especifique laMínimoyMáximonúmero de instanciasprincipales 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, seleccionaCrear un clúster, seleccioneIr a las opciones avanzadas,elija opciones paraPaso 1: Software y pasosy, a continuación, vaya aPaso 2: Configuración dehardware.

2. En la sección Composición del clúster seleccione Flotas de instancias o Grupos de instanciasuniformes.

3. UNDEREscalado clúster, seleccioneHabilitar el escalado de. A continuación, seleccioneUtilizarescalado administrado por EMR. UNDERUnidades principales y de tareas, especifiquelaMínimoyMáximonúmero de instancias o unidades de flota de instancias,Límite bajo demanda, ynodoprincipal máximocontar.

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. 554).

548

Page 557: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

Para modificar un clúster existente

1. Abra la consola de Amazon EMR, seleccione el clúster en la lista de clústeres y, a continuación, elijalaHardwarePestaña.

2. En la sección Escalado del clúster, seleccione Editar para el escalado administrado por EMR.

3. En el navegadorEscalado clúster, especifique nuevos valores para laMínimoyMáximonúmero deinstancias y elLímite bajo demanda.

Opciones de consola actualizadas para escalado de 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. Utilizar escalado administrado por EMRsolo estádisponible con Amazon EMR versión 5.30.0 y posterior. Para obtener más información, consulte Escaladode recursos del cl (p. 535).

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.

549

Page 558: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de 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 deAWS CLIpara configurar el escalado administradoPuede usarAWS CLIcomandos para Amazon EMR para que configure el escalado administrado al crearun clúster. Puede utilizar una sintaxis abreviada, especificando la configuración JSON insertada dentrode los comandos pertinentes o puede hacer referencia a un archivo que contenga la configuración JSON.También puede aplicar una política de escalado administrado a un clúster existente y eliminar una política

550

Page 559: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de EMR en Amazon EMR

de escalado administrado que se haya aplicado anteriormente. Además, puede recuperar detalles de unaconfiguració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.36.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

551

Page 560: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de 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 laAWS 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 deAWS SDK for Javapara 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 */

552

Page 561: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado administrado de 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.36.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.

553

Page 562: Amazon EMR - Guía de administración

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 getCredentials(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 instanciasTemas

• Creación del rol de IAM para el escalado automático (p. 555)• Descripción de las reglas de escalado automático (p. 555)• Condiciones y limitaciones (p. 556)• Uso deAWS Management Consolepara configurar el escalado automático (p. 557)• Uso deAWS CLIpara configurar el escalado automático (p. 557)

El escalado automático con una política personalizada en las versiones 4.0 y posteriores de AmazonEMR le permite ampliar o reducir la escala mediante programación en los nodos principales y en losnodos de tareas en función de un CloudWatch métrica y otros parámetros especificados en unpolí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 Crear un clúster con flotas de instancias o grupos deinstancias uniformes (p. 233).

Note

Para utilizar el escalado automático con una política personalizada en Amazon EMR, debeconfigurartruepara laVisibleToAllUsersal crear un clúster. Para obtener 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 se

554

Page 563: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

compone 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 laAWS Management Console, elAWS CLIo la API deAmazon EMR. Cuando utiliza elAWS CLIo la API de Amazon EMR, debe especificar la política de escaladoen formato JSON. Además, cuando se utiliza elAWS CLIo la API de Amazon EMR, puede especificarpersonalizada CloudWatch Métricas de . Las métricas personalizadas no se pueden seleccionar utilizandola AWS Management Console. Al crear inicialmente una política de escalado mediante la consola, sepreconfigura una política predeterminada adecuada para muchas aplicaciones para ayudarle a comenzar.Puede eliminar o modificar las reglas predeterminadas.

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 nodo yde los grupos de instancias. Para obtener más información, consulteDirectrices para configurar clú.

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 el 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 lapolítica de roles adecuadas. Al crear un clúster con una política de escalado por primera vez utilizandolaAWS Management Console, Amazon EMR crea el rol predeterminado y adjunta la política administradapredeterminada para los permisos,AmazonElasticMapReduceforAutoScalingRole.

Al crear un clúster con una política de escalado automático mediante laAWS 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 enla política administrada. Para obtener más información, consulte Configurar roles de servicio de IAM parapermisos de Amazon EMR paraAWSservicios y recursos (p. 312).

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, por ejemplo, Apache Spark y Apache Hive pueden utilizar los nodos nuevos tan pronto como lainstancia Amazon EC2 entre en elInServiceestado. También puede configurar una regla de escaladodescendente que termina instancias y elimina nodos. Para obtener más información sobre el ciclo de vidade las instancias Amazon EC2 que se escalan automáticamente, consulteCiclo de vida de Auto ScalingenlaGuía del usuario de Amazon EC2 Auto Scaling.

Puede configurar cómo termina un clúster las instancias de Amazon EC2. Puede optar por terminaren el límite por instancia y hora de Amazon EC2 para la facturación o una vez completadas las tareas.Esta configuración se aplica tanto al escalado automático como a las operaciones manuales decambio de tamaño. Para obtener más información acerca de esta configuración, consulte Escalado declúster (p. 569).

555

Page 564: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

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 laAWS Management Consolepara AmazonEMR. Cuando utiliza elAWS CLIo la API de Amazon EMR, están disponibles las opciones deconfiguración avanzada adicionales. Para obtener más información acerca de las opcionesavanzadas, consulteSimpleScalingPolicyConfigurationen laReferencia de la API de Amazon EMR.

• Número máximo de instancias y número mínimo de instancias. LaNúmero máximo deinstanciaslimitación especifica el número máximo de instancias de Amazon EC2 que puede haberen el grupo de instancias y se aplica a todas las reglas de escalado ascendente. Del mismo modo,elInstancias mínimaslimitación especifica el número mínimo de instancias de Amazon EC2 y se aplica atodas 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.• UNAOperador de comparación, que se utiliza para comparar el CloudWatch métrica alUmbralvalor y

determina una condición de desencadenador.• Unperíodo de evaluación, en incrementos de cinco minutos, para los que se CloudWatch La métrica

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óxima actividadde escalado, con independencia de la regla que la activa. Cuando un grupo de instancias ha finalizadouna actividad de escalado y alcanza su estado posterior al escalado, el periodo de recuperación ofreceuna oportunidad para las métricas de CloudWatch que podrían disparar actividades de escaladosiguientes para estabilizar. Para obtener más información, consulteRecuperaciones de Auto ScalingenlaGuía del usuario de Amazon EC2 Auto Scaling.

Condiciones y limitaciones• Amazon CloudWatch las métricas son fundamentales para que funcione el escalado automático de

Amazon EMR. Le recomendamos que monitoree de cerca a Amazon CloudWatch métricas paraasegurarse de que no faltan datos. Para obtener más información acerca de cómo configurar AmazonCloudWatch alarmas para detectar métricas faltantes, consulteUso de Amazon CloudWatch alarmas.

• La utilización excesiva de volúmenes de EBS puede provocar problemas de escalado administrado. Lerecomendamos que supervise de cerca el uso del volumen de EBS para asegurarse de que el volumen

556

Page 565: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

de EBS esté por debajo del 90% de utilización. ConsulteAlmacenamiento de instanciapara obtenerinformación sobre la especificación de volúmenes EBS adicionales.

• El escalado automático con una política personalizada en las versiones 5.18 a 5.28 de Amazon EMRpuede experimentar un fallo de escalado debido a la falta de datos de forma intermitente en AmazonCloudWatch Métricas de . Le recomendamos que utilice las versiones más recientes de Amazon EMRpara mejorar el escalado automático. También puede ponerse en contacto conAWSSoportepara unparche si desea utilizar una versión de Amazon EMR entre la 5.18 y la 5.28.

Uso deAWS Management Consolepara configurar el escaladoautomá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 va a crear un clúster, en la consola de Amazon EMR, seleccioneCrear un clúster, seleccioneIr a lasopciones avanzadas, elija opciones paraPaso 1: Software y pasosy, a continuación, vaya aPaso 2: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.

2. EnEscalado clústersección, seleccioneHabilitar el escalado de. A continuación, seleccione Crear unapolí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 Auto ScalingRules.

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.Para obtener descripciones de las métricas de CloudWatch disponibles para Amazon EMR,consulteDimensiones y métricas de Amazon EMRen laAmazon CloudWatch Guía del usuario de.

Uso deAWS CLIpara configurar el escalado automáticoPuede usarAWS CLIcomandos para que Amazon EMR configure el escalado automático al crear un clústery al crear un grupo de instancias. Puede utilizar una sintaxis abreviada, especificando la configuraciónJSON insertada dentro de los comandos pertinentes o puede hacer referencia a un archivo que contengala configuración JSON. También puede aplicar una política de escalado automático a un grupo deinstancias 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 en ejecución.

Important

Al crear un clúster que tiene una política de escalado automático, debe utilizar la--auto-scaling-role MyAutoScalingRolepara especificar el rol de IAM paraEscalado automático.

557

Page 566: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

El rol predeterminado es EMR_AutoScaling_DefaultRole y se puede crear mediante elcomando create-default-roles. El rol solo se puede añadir cuando se crea el clúster y no sepuede 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, consultePutAutoScalingPolicyenReferencia de la API de Amazon EMR.

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 utilizando laAWSManagement Consolepara 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 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": {

558

Page 567: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

"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":[ { "Key" : "JobFlowId", "Value" : "${emr.clusterId}" } ] } } } ] }}]

Adición de 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

Aplicación de una política de escalado automático a un grupo de instanciasexistente o modificación de 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.

559

Page 568: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

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": { "MaxCapacity": 10, "MinCapacity": 2 }, "Rules": [{ "Action": { "SimpleScalingPolicyConfiguration": { "AdjustmentType": "CHANGE_IN_CAPACITY", "CoolDown": 300, "ScalingAdjustment": 1 } }, "Description": "Replicates the default scale-out rule in the console for YARN memory", "Name": "Default-scale-out", "Trigger": { "CloudWatchAlarmDefinition": { "ComparisonOperator": "LESS_THAN", "Dimensions": [{ "Key": "JobFlowID", "Value": "${emr.clusterID}" }], "EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Statistic": "AVERAGE", "Threshold": 15, "Unit": "PERCENT" } } }] }

Eliminar una política de escalado automático de 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 automática de políticas de escalado

Ladescribe-clusterrecupera la configuración de la política en la InstanceGroup bloque. Por ejemplo, elcomando siguiente recupera la configuración para el clúster con un ID de clúster de j-1CWOHP4PI30VJ.

aws emr describe-cluster --cluster-id j-1CWOHP4PI30VJ

El comando produce el siguiente resultado de ejemplo.

560

Page 569: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

{ "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" } ], "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",

561

Page 570: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso del escalado automático con una política

personalizada para grupos de instancias

"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": "", "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,

562

Page 571: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio manual de un clúster en ejecución

"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." } } }}

Cambio manual de un clúster en ejecuciónPuede añadir y eliminar instancias en los grupos principales y de instancias de tareas, así como en lasflotas de instancias, de un clúster en ejecución medianteAWS Management Console,AWS CLIo la APIde Amazon EMR. Si un clúster utiliza grupos de instancias, es necesario cambiar de forma explícita elrecuento de instancias. Si el clúster utiliza flotas de instancias, puede cambiar las unidades de destinoen las instancias bajo demanda y las instancias de spot. A continuación, la flota de instancias añadiráy eliminará instancias para satisfacer los requisitos del nuevo destino. Para obtener más información,consulte Opciones de flota de inst (p. 236). Las aplicaciones pueden utilizar las instancias AmazonEC2 recién aprovisionadas para alojar nodos tan pronto como las instancias estén disponibles. Cuandose eliminan las instancias, Amazon EMRterminatareas de forma que no interrumpe los trabajos yprotege frente a la pérdida de datos. Para obtener más información, consulte Terminar al completar latarea (p. 569).

Cambio del tamaño de un clúster mediante 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.

563

Page 572: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio manual de un clúster en ejecución

–O BIEN–

Si el clúster utiliza flotas de instancias, elijaCambiar el tamañoen laCapacidad aprovisionadacolumna,escriba nuevos valores paraUnidades bajo demandayUnidades puntualesy luego seleccioneCambiarel tamaño.

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).

Redimensionar un clúster mediante laAWS 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 teliminaruna instancia del grupo de instancias principal mediante laAWS CLIo la API.Esto debe hacerse con precaución. FinalizarUna instancia del grupo de instancias principales corre elriesgo 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.

564

Page 573: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio manual de un clúster en ejecución

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 estecomando, 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 laAWS CLI,consultehttps://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

Uso deAWS CLI, puede añadir entre 1 y 48 grupos de instancias de tareas a un clúster con la--add-instance-groupssubmando. 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.

565

Page 574: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio manual de un clúster en ejecución

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 laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Interrupción de un cambio de tamañoMediante 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.

566

Page 575: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio manual de un clúster en ejecución

Estado suspendidoUn grupo de instancias pasa a estado suspendido si encuentra demasiados errores al intentar iniciar losnuevos nodos del clúster. Por ejemplo, si los nodos nuevos fallan al realizar acciones de arranque, elgrupo de instancias pasa a unSUSPENDEDstate, en lugar de aprovisionar nuevos nodos continuamente.Después de haber resuelto el error subyacente, restablezca el número deseado de nodos en el grupode instancias del clúster y, a continuación, el grupo de instancias reanuda la asignación de nodos. Lamodificación de una instancia grupo da instrucciones a Amazon EMR de que intente volver a aprovisionarlos 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 aSUSPENDED.

Para restablecer un clúster en un estado SUSPENDIDO mediante laAWS 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.

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",

567

Page 576: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCambio manual de un clúster en ejecución

"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 }...}

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 SUSPENDED. El subcomando describe-cluster devuelve el iddel grupo de instancias.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-3SUXXXXXXQ9ZM,InstanceCount=3

568

Page 577: Amazon EMR - Guía de administración

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

Escalado de clústerNote

Las opciones de comportamiento de reducción de escala ya no se admiten desde la versión5.10.0 de Amazon EMR. Debido a la introducción de la facturación por segundo en Amazon EC2,el valor predeterminado para los clústeres de Amazon EMR termina una vez completadas lastareas.

Con las versiones 5.1.0 a 5.9.1 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 una vez completadas las tareas. A partir de la versión 5.10.0 de Amazon EMR, la configuraciónpara la terminación en el límite por instancia y hora ha quedado obsoleta debido a la introducción de lafacturación por segundo de Amazon EC2. No recomendamos especificar la terminación en el límite porinstancia y hora 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 las listas y vacía lastareas de los nodos antes de terminar las instancias Amazon EC2. Dado que se especifica cualquiercomportamiento, Amazon EMR no termina las instancias Amazon EC2 en grupos de instancias principalessi ello puede dar lugar a la corrupción de HDFS.

Terminar al completar la tareaAmazon EMR le permite reducir la escala del clúster sin que ello afecte a su carga de trabajo. AmazonEMR retira apropiadamente YARN, HDFS y otros demonios en nodos principales y de tareas durante unaoperación de reducción de tamaño sin perder datos o interrumpir trabajos. Amazon EMR solo reduce losgrupos de instancias si el trabajo asignados a los grupos se ha completado y están inactivos. Para YARNNodeManager Retirada de servicio con gracia, puede ajustar manualmente el tiempo que un nodo esperapara el cierre de servicio.

Este tiempo se establece mediante una propiedad de la clasificación de configuraciónyarn-site. Si utiliza la versión 5.12.0 y posterior de Amazon EMR, especifiquelayarn.resourcemanager.nodemanager-graceful-decommission-timeout-secspropiedad. Si utiliza versiones anteriores de Amazon EMR,especifiqueyarn.resourcemanager.decommissioning.timeoutpropiedad.

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 contenedoresde 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, consulteDesmantelamiento grácil de nodos YARNen la documentación deApache Hadoop.

Grupos de nodos de tareas

Amazon EMR selecciona de forma inteligente las instancias que no están ejecutando tareas relacionadascon ningún paso o aplicación y las elimina de un clúster en primer lugar. Si se están utilizando todas lasinstancias del clúster, Amazon EMR espera a que las tareas se completen en una instancia dada antes deeliminarlas del clúster. El tiempo de espera predeterminado es de una hora y este valor se puede modificar

569

Page 578: Amazon EMR - Guía de administración

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

definiendoyarn.resourcemanager.decommissioning.timeout. Amazon EMR utiliza de formadinámica la nueva configuración. Puede definirlo en un número arbitrariamente grande para garantizar quelas tareas no se cancelen al reducir el clúster.

Grupos de nodos principales

En los nodos principales, ambos YARN NodeManager HDFS DataNode Los demonios deben retirarse delservicio 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.replicationdentro/etc/hadoop/conf/hdfs-site. Amazon EMR configura el valor en función del número de instancias del clúster:1con 1-3instancias,2para clústeres con 4 a 9 instancias, y3para clústeres con más de 10 instancias. La reducciónapropiada no permite reducir nodos secundarios por debajo del factor de replicación de HDFS; esto tienecomo objetivo evitar que HDFS sea incapaz de cerrar archivos debido a réplicas insuficientes. Para evitareste límite, debe reducir el factor de replicación y reiniciar la NameNode demonio de.

Configurar el comportamiento de escalado reducido de AmazonEMR

Note

La opción de comportamiento de escalado de reducción de la hora de la instancia ya no seadmite para las versiones 5.10.0 y posteriores de Amazon EMR. Las siguientes opciones decomportamiento de escalado reducido solo aparecen en la consola de Amazon EMR para lasversiones 5.1.0 a 5.9.1.

Puede utilizar elAWS Management Console, elAWS CLIo la API de Amazon EMR para configurar elcomportamiento de reducción de escala al crear un clúster. Configuración de la escalabilidad hacia abajomediante elAWS Management Consolese realiza en laPaso 3: Configuración general del clústerpantallacuando se crea un clúster utilizandoOpciones avanzadas.

Al crear un clúster con la AWS CLI, utilice la opción --scale-down-behavior para especificarTERMINATE_AT_INSTANCE_HOUR o bien TERMINATE_AT_TASK_COMPLETION.

570

Page 579: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónClonación de un clúster mediante la consola

Clonación de un clúster mediante 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. 571).

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. Puedeenviar trabajo a un clúster añadiendo pasos o de forma interactiva enviando trabajos de Hadoop al nodoprincipal. El número máximo de pasos PENDING y RUNNING permitidos en un clúster es 256. Puedeenviar trabajos de forma interactiva al nodo principal incluso si tiene 256 pasos activos en ejecución enel clúster. 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 EN EJECUCIÓN 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 laAWS Management Console, elAWS CLIo 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.

Note

Para obtener el mejor rendimiento, le recomendamos que almacene acciones de arranquepersonalizadas, scripts y otros archivos que desee utilizar con Amazon EMR en un bucket deAmazon S3 que esté en el mismoRegión de AWScomo clúster.

Temas• Añadir pasos a un clúster mediante la consola (p. 572)• Añadir pasos a un clúster medianteAWS CLI (p. 573)• Consideraciones para ejecutar varios pasos en parallel (p. 575)• Visualización de pasos (p. 575)• Cancelación de pasos (p. 576)

571

Page 580: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAñadir pasos a un clúster mediante la consola

Añadir pasos a un clúster mediante la consolaUtilice los siguientes procedimientos para añadir pasos a un clúster mediante laAWS ManagementConsole. Para obtener información detallada acerca de cómo enviar pasos para aplicaciones de big dataespecíficas, consulte laGuía de publicación de Amazon EMR.

Añadir pasos durante la creación del clústerCon la AWS Management Console, puede añadir pasos a un clúster al crear el clúster.

1. En el navegadorConsola de Amazon EMR, eligeCrear clúster: opciones avanzadas.2. En la páginaPaso 1: Software y pasos, paraPasos (opcional), seleccioneEjecute varios pasos en

parallel para mejorar la utilización del clúster y ahorrar costos. El valor predeterminado para el nivel desimultaneidad es 10. Puede elegir entre 2 y 256 pasos que se pueden ejecutar en paralelo.

Note

Ejecutar varios pasos en parallel solo es compatible con Amazon EMR versión 5.28.0 yposteriores de.

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 clusterutilization 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).

Añadir pasos a un clúster en ejecuciónUso deAWS Management Console, puede añadir pasos a un clúster en ejecución prolongada; es decir, unclúster con la opción de terminación automática deshabilitada.

1. En el navegadorConsola de Amazon EMR, en elLista de clú, seleccione el enlace para el clú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.

Modificar el nivel de simultaneidad de pasos en un clúster enejecuciónCon la AWS Management Console, puede modificar el nivel de simultaneidad de pasos en un clúster enejecución.

Note

Ejecutar varios pasos en parallel solo es compatible con Amazon EMR versión 5.28.0 yposteriores de.

1. En el navegadorConsola de Amazon EMR, en elLista de clú, seleccione el enlace para el clúster.2. En la página Cluster Details (Detalles del clúster), seleccione la pestaña Steps (Pasos).

572

Page 581: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAñadir pasos a un clúster medianteAWS CLI

3. En Concurrency (Simultaneidad), elija Change (Cambiar). Seleccione un nuevo valor para el nivel desimultaneidad de pasos y, a continuación, guarde el cambio.

Añadir argumentos de pasoCuando agrega un paso a su clúster utilizando laAWS Management Console, puede especificarargumentos para ese paso en elArguments (Argumentos). Debe separar los argumentos con espacios enblanco y argumentos de cadena envolvente que constan de caracteresyEspacio en blanco con comillas.

Example : Argumentos correctos

Los argumentos de ejemplo siguientes tienen el formato correcto para elAWS Management Console, concomillas alrededor del argumento de cadena final.

bash -c "aws s3 cp s3://DOC-EXAMPLE-BUCKET/my-script.sh ."

También puede colocar cada argumento en una línea separada para su legibilidad, como en el siguienteejemplo.

bash -c "aws s3 cp s3://DOC-EXAMPLE-BUCKET/my-script.sh ."

Example : Argumentos incorrectos

Los argumentos de ejemplo siguientes tienen un formato incorrecto para elAWS ManagementConsole. Observe que el argumento final de cadena,aws s3 cp s3://DOC-EXAMPLE-BUCKET/my-script.sh ., contiene espacios en blanco y no está rodeado de comillas.

bash -c aws s3 cp s3://DOC-EXAMPLE-BUCKET/my-script.sh .

Añadir pasos a un clúster medianteAWS 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.ReemplazarmyKeypor el nombre de su key pair de Amazon EC2 y sustituirmybucketcon el nombrede su bucket de Amazon 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/]

• Windows

573

Page 582: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAñadir pasos a un clúster medianteAWS CLI

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.ReemplazarJ-2AXXXXXGAP LFcon tu ID de clúster y reemplazamybucketcon el nombre de bucketde 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 la StepConcurrencyLevel en un clúster en ejecución

1. En un clúster en ejecución, puede modificar la StepConcurrencyLevel mediante el usode laModifyClusterAPI. Por ejemplo, escriba el siguiente comando para aumentar laStepConcurrenyLevel a10. Sustituya j-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}

574

Page 583: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConsideraciones para ejecutar varios pasos en parallel

Para obtener más información sobre el uso de los comandos de Amazon EMR en laAWS CLI,consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Consideraciones para ejecutar varios pasos enparallel• Los pasos que se ejecutan en parallel pueden completarse en cualquier orden, pero los pasos

pendientes de la transición de la cola al estado de ejecución en el orden en que se enviaron.• 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 aplicacionesen laGuía de publicación de Amazon EMR.

• No puede añadir un paso con unActionOnFailureaparte de CONTINUAR mientras que el nivel deconcurrencia de pasos del clúster es superior a 1.

• Si el nivel de concurrencia de pasos de un clúster es superior a uno, pasoActionOnFailureno seactivará.

• Si un clúster tiene nivel de concurrencia escalonada1pero tiene varios pasos deejecución,TERMINATE_CLUSTER ActionOnFailurepuede activarse, peroCANCEL_AND_WAITActionOnFailureno lo hará. Este caso perimetral surge cuando el nivel de concurrencia del paso delclúster era mayor que uno, pero se redujo mientras se ejecutaban varios pasos.

• 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.

575

Page 584: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCancelación de pasos

Opción DescribeJobFlow o --describe --jobflow

ListSteps o list-steps

SDK 256 pasos 1000 pasos

CLI de AmazonEMR

256 pasos N/A

AWS CLI N/A 1000 pasos

API 256 pasos 1000 pasos

Cancelación de pasosPuede cancelar los pasos pendientes y en ejecución mediante laAWS Management Console, elAWS CLIola API de Amazon EMR.

Para cancelar pasos utilizando la AWS Management Console

1. En el navegadorConsola de Amazon EMR, en elLista clúster, elija el enlace del clú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-2QUAXXXXXXXXX --step-ids s-3M8DXXXXXXXXX s-3M8DXXXXXXXXX --step-cancellation-option SEND_INTERRUPT

Con Amazon EMR versión 5.28.0, puede elegir una de las dos siguientes opciones de cancelaciónparaStepCancellationOptionparámetro al cancelar los pasos.

• SEND_INTERRUPT— Esta es la opción predeterminada. Cuando se recibe una solicitud de cancelaciónde pasos, EMR envía unSIGTERMseñal al paso. añadir unSIGTERMcontrolador de señal a su lógicade pasos para catch esta señal y finalizar los procesos de paso descendientes o esperar a que secompleten.

• TERMINATE_PROCESS— Cuando se selecciona esta opción, EMR envía unSIGKILLseñal al paso y atodos sus procesos descendientes que los terminan inmediatamente.

Consideraciones sobre los pasos de cancelación

• La cancelación de un paso en ejecución o pendiente elimina ese paso del recuento de pasos activo.• La cancelación de un paso en ejecución no permite que un paso pendiente comience a ejecutarse,

suponiendo que no haya cambios enstepConcurrencyLevel.

576

Page 585: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAutomatice clústeres recurrentes conAWS Data Pipeline

• La cancelación de un paso en ejecución no activa el pasoActionOnFailure.• Para EMR 5.32.0 y versiones posteriores,SEND_INTERRUPT StepCancellationOptionenvía

una aplicaciónSIGTERMseñal para el proceso hijastra. Debe estar atento a esta señal y hacer unalimpieza y apagado con gracia. LaTERMINATE_PROCESS StepCancellationOptionenvía unaaplicaciónSIGKILLseñal al proceso hijo paso a paso y a todos sus procesos descendientes; sinembargo, los procesos asíncronos no se ven afectados.

Automatice clústeres recurrentes conAWS DataPipeline

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 a 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 utilizarAWS Data Pipelinepara programar esos clústeres.AWS Data Pipelinees un flujo detrabajo basado en datos, de modo que una tarea (lanzamiento del clúster) puede depender de otra tarea(trasladar los datos de entrada a Amazon S3). También tiene la funcionalidad de reintento eficaz.

Para obtener más información acerca deAWS Data Pipelineconsulte lasAWS Data PipelineGuía paradesarrolladores, especialmente los tutoriales sobre Amazon EMR:

• Tutorial: Lanzamiento de un flujo de trabajo de Amazon EMR• Introducción al Procesar registros web conAWS Data Pipeline, Amazon EMR y Hive• Tutorial: Importación y exportación de Amazon DynamoDB utilizandoAWS Data Pipeline

577

Page 586: Amazon EMR - Guía de administración

Amazon EMR Guía de administración¿Qué herramientas están disponibles

para solucionar problemas?

Solución de 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 están disponibles para solucionar problemas? (p. 578)• Visualización y reinicio de Amazon EMR y procesos de aplicación (daemons) (p. 580)• Solucionar problemas de un clúster con errores (p. 584)• Solucionar problemas de un clúster lento (p. 587)• Errores comunes en Amazon EMR (p. 594)• Solución de problemas de un clúster de Lake Formation (p. 610)

Cuando desarrolle una nueva aplicación de Hadoop, le recomendamos que habilite la depuración yprocese un subconjunto pequeño pero representativo de sus datos para probar la aplicación. Es posibleque también desee ejecutar la aplicación step-by-step para probar cada paso por separado. Para obtenermás información, consulte Configurar el registro y la depuración de clústeres (p. 263) y Paso 5: Prueba delclúster paso a paso (p. 587).

¿Qué herramientas están disponibles parasolucionar 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 los detalles del clúster (p. 578)• Herramientas para ejecutar secuencias de comandos y configurar procesos (p. 579)• Herramientas para ver archivos de registro (p. 579)• Herramientas para supervisar el rendimiento del clúster (p. 580)

Herramientas para mostrar los detalles del clústerPuede utilizar la AWS Management Console, la AWS CLI o la API de EMR para recuperar informacióndetallada sobre un clúster de EMR y sobre la ejecución de trabajos. Para obtener más informaciónsobre cómo usar la AWS Management Console y la AWS CLI, consulte Ver el estado y detalles delclúster (p. 473).

Panel de detalles de la consola Amazon EMREn el navegadorClústeresen la consola de Amazon EMR puede ver información general sobre el estadode cada clúster de su cuenta y región. La lista muestra todos los clústeres que se han lanzado en los dosúltimos meses, independientemente de si están activos o han terminado. En la lista Clusters (Clústeres),

578

Page 587: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónHerramientas para ejecutar secuencias

de comandos y configurar procesos

puede seleccionar el Name (Nombre) de un clúster para ver los detalles del clúster. Esta información estáorganizada en distintas categorías para poder consultarla más fácilmente.

El Interfaces de usuario de aplicaciones disponible en la página de detalles del clúster puede serespecialmente útil para la solución de problemas. Proporciona el estado de las aplicaciones YARN y,en algunos casos, como en las aplicaciones Spark, puede explorar las diferentes métricas y facetas,como trabajos, etapas y ejecutores. Para obtener más información, consulte Visualización del historialde aplicaciones (p. 481). Esta característica solo está disponible en la versión de Amazon EMR 5.8.0 yposteriores.

La 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 ejecutar secuencias de comandosy configurar procesosComo parte del proceso de solución de problemas, puede resultarle útil ejecutar scripts personalizados enel clúster o ver y configurar los procesos de clúster.

Ver y reiniciar los procesos de aplicaciónPuede resultar útil ver los procesos en ejecución en el clúster para diagnosticar posibles problemas.Puede detener y reiniciar los procesos del clúster si se conecte al nodo principal del clúster. Paraobtener más información, consulte Visualización y reinicio de Amazon EMR y procesos de aplicación(daemons) (p. 580).

Ejecutar comandos y scripts sin conexión SSHPara ejecutar un comando o una secuencia de comandos en el clúster como paso, puede utilizarelcommand-runner.jaroscript-runner.jarherramientas sin establecer una conexión SSH al nodomaestro. Para obtener más información, consulteEjecutar comandos y scripts en un clúster de AmazonEMR.

Herramientas para ver archivos de registroAmazon EMR y Hadoop generan archivos de registro cuando se ejecuta el clúster. Puede acceder aestos archivos de registro de diversas herramientas, en función de la configuración que haya especificadoal lanzar el clúster. Para obtener más información, consulte Configurar el registro y la depuración declústeres (p. 263).

Archivos de registro en el nodo maestroCada 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. Dado

579

Page 588: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónHerramientas para supervisar el rendimiento del clúster

que 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 supervisar 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. 524).

Métricas de CloudWatchCada clúster notifica las métricas a CloudWatch. CloudWatch es un servicio web que realiza unseguimiento de las métricas y que se puede utilizar para definir alarmas en dichas métricas. Para obtenermás información, consulte Supervisar métricas con CloudWatch (p. 502).

Visualización y reinicio de Amazon EMR y procesosde aplicación (daemons)

Cuando realice la solución de problemas en un clúster, conviene que cree una lista de los procesosen ejecución. También puede resultar útil detener o reiniciar procesos en algunas circunstancias. Porejemplo, puede reiniciar un proceso tras cambiar una configuración o detectar un problema con un procesodeterminado tras analizar los archivos de registro y los mensajes de error.

Hay 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, primero debe conectarse al nodo principal. Paraobtener más información, consulte Connect al clúster (p. 517).

Visualizar procesos en ejecuciónEl método que utiliza para ver los procesos en ejecución en un clúster difiere según la versión de AmazonEMR que utilice.

EMR 5.30.0 and 6.0.0 and later

Example : enumerar todos los procesos en ejecución

El siguiente ejemplo utilizasystemctly especifica--typepara ver todos los procesos.

systemctl --type=service

Example : Listar procesos específicos

En el siguiente ejemplo, se muestran todos los procesos con nombres que contienenhadoop.

580

Page 589: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónVisualizar procesos en ejecución

systemctl --type=service | grep -i hadoop

Ejemplo de resultados:

hadoop-hdfs-namenode.service loaded active running Hadoop namenode hadoop-httpfs.service loaded active running Hadoop httpfs hadoop-kms.service loaded active running Hadoop kms hadoop-mapreduce-historyserver.service loaded active running Hadoop historyserver hadoop-state-pusher.service loaded active running Daemon process that processes and serves EMR metrics data. hadoop-yarn-proxyserver.service loaded active running Hadoop proxyserver hadoop-yarn-resourcemanager.service loaded active running Hadoop resourcemanager hadoop-yarn-timelineserver.service loaded active running Hadoop timelineserver

Example : consulte un informe de estado detallado para un proceso específico

En el siguiente ejemplo, se muestra un informe de estado detallado delhadoop-hdfs-namenodeservicioservicio

sudo systemctl status hadoop-hdfs-namenode

Ejemplo de resultados:

hadoop-hdfs-namenode.service - Hadoop namenode Loaded: loaded (/etc/systemd/system/hadoop-hdfs-namenode.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-08-18 21:01:46 UTC; 26min ago Main PID: 9733 (java) Tasks: 0 Memory: 1.1M CGroup: /system.slice/hadoop-hdfs-namenode.service # 9733 /etc/alternatives/jre/bin/java -Dproc_namenode -Xmx1843m -server -XX:OnOutOfMemoryError=kill -9 %p ...

Aug 18 21:01:37 ip-172-31-20-123 systemd[1]: Starting Hadoop namenode...Aug 18 21:01:37 ip-172-31-20-123 su[9715]: (to hdfs) root on noneAug 18 21:01:37 ip-172-31-20-123 hadoop-hdfs-namenode[9683]: starting namenode, logging to /var/log/hadoop-hdfs/ha...outAug 18 21:01:46 ip-172-31-20-123 hadoop-hdfs-namenode[9683]: Started Hadoop namenode:[ OK ]Aug 18 21:01:46 ip-172-31-20-123 systemd[1]: Started Hadoop namenode.Hint: Some lines were ellipsized, use -l to show in full.

EMR 4.x - 5.29.0

Example : enumerar todos los procesos en ejecución

En el siguiente ejemplo, se muestran todos los procesos en ejecución.

initctl list

EMR 2.x - 3.x

Example : enumerar todos los procesos en ejecución

En el siguiente ejemplo, se muestran todos los procesos en ejecución.

ls /etc/init.d/

581

Page 590: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónParada y reinicio de procesos

Parada y reinicio de procesosDespués de determinar qué procesos se están ejecutando, puede detenerlos y, a continuación, reiniciarlossi es necesario.

EMR 5.30.0 and 6.0.0 and later

Example : Detener un proceso

En el siguiente ejemplo, se detiene lahadoop-hdfs-namenodeproceso.

sudo systemctl stop hadoop-hdfs-namenode

Puede consultar elstatuspara comprobar que el proceso se ha detenido.

sudo systemctl status hadoop-hdfs-namenode

Ejemplo de resultados:

hadoop-hdfs-namenode.service - Hadoop namenode Loaded: loaded (/etc/systemd/system/hadoop-hdfs-namenode.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2021-08-18 21:37:50 UTC; 8s agoMain PID: 9733 (code=exited, status=143)

Example : Iniciar un proceso

En el siguiente ejemplo, se inicia lahadoop-hdfs-namenodeproceso.

sudo systemctl start hadoop-hdfs-namenode

Puede consultar el estado para comprobar que el proceso se está en ejecución.

sudo systemctl status hadoop-hdfs-namenode

Ejemplo de resultados:

hadoop-hdfs-namenode.service - Hadoop namenode Loaded: loaded (/etc/systemd/system/hadoop-hdfs-namenode.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-08-18 21:38:24 UTC; 2s ago Process: 13748 ExecStart=/etc/init.d/hadoop-hdfs-namenode start (code=exited, status=0/SUCCESS) Main PID: 13800 (java) Tasks: 0 Memory: 1.1M CGroup: /system.slice/hadoop-hdfs-namenode.service # 13800 /etc/alternatives/jre/bin/java -Dproc_namenode -Xmx1843m -server -XX:OnOutOfMemoryError=kill -9 %p...

EMR 4.x - 5.29.0

Example : Detener un proceso en ejecución

En el siguiente ejemplo, se detiene lahadoop-hdfs-namenodeservicioservicio

582

Page 591: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónParada y reinicio de procesos

sudo stop hadoop-hdfs-namenode

Example : Reinicia un proceso detenido

En el siguiente ejemplo, se reinicia lahadoop-hdfs-namenodeservicioservicio Debe utilizarelstartcomando y norestart.

sudo start hadoop-hdfs-namenode

Example : Compruebe el estado del proceso

A continuación se obtiene el estado dehadoop-hdfs-namenode. Puede utilizar elstatusparacomprobar que el proceso se ha detenido o iniciado.

sudo status hadoop-hdfs-namenode

EMR 2.x - 3.x

Example : Detener un proceso de solicitud

En el siguiente ejemplo, se detiene lahadoop-hdfs-namenode, que está asociado a la versión deAmazon EMR instalada en el clúster.

sudo /etc/init.d/hadoop-hdfs-namenode stop

Example : Reiniciar un proceso de aplicación

El siguiente comando de ejemplo reinicia elhadoop-hdfs-namenodeproceso:

sudo /etc/init.d/hadoop-hdfs-namenode start

Example : Detener un proceso de Amazon EMR

En el siguiente ejemplo se detiene un proceso, como el controlador de instancias, que no estáasociado a la versión de Amazon EMR del clúster.

sudo /sbin/stop instance-controller

Example : Reiniciar un proceso de Amazon EMR

En el siguiente ejemplo se reinicia un proceso, como el controlador de instancias, que no estáasociado a la versión de Amazon EMR del clúster.

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.

583

Page 592: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónSolucionar problemas de un clúster con errores

Solucionar problemas de un 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. 587) en su lugar.

Temas• Paso 1: Recopilar datos sobre el problema (p. 584)• Paso 2: Consultar el entorno (p. 584)• Paso 3: Mira el último cambio de estado (p. 585)• Paso 4: Examinar los archivos de registro (p. 586)• Paso 5: Prueba del clúster paso a paso (p. 587)

Paso 1: Recopilar datos sobre el problemaEl primer paso para la resolución de problemas de un clúster consiste en recopilar información sobre quéha ocurrido y el estado actual y la configuración del clúster. Esta información se utilizará en los siguientespasos para confirmar o descartar posibles causas del problema.

Definir el problemaEl primer lugar para empezar es una definición clara del problema. Algunas preguntas que debes hacerte:

• ¿Qué esperaba que ocurriera? ¿Qué ha pasado en cambio?• ¿Cuándo se produjo este problema por primera vez? ¿Con qué frecuencia ha ocurrido desde entonces?• ¿Ha cambiado algo en cómo configuro o ejecuto mi clúster?

Detalles clústerLos siguientes detalles del clúster son útiles para ayudar a rastrear problemas. Para obtenermás información acerca de cómo recopilar esta información, consulte.Ver el estado y detalles delclúster (p. 473).

• Identificador del clúster. (También se denomina identificador de flujo de trabajo.)• Región y zona de disponibilidad en la 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 maestro, núcleo y tarea.

Paso 2: Consultar 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. 585)• Consultar los límites de uso (p. 585)• Comprobar la versión (p. 585)• Compruebe la configuración de subred de Amazon VPC (p. 585)

584

Page 593: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 3: Mira el último cambio de estado

Comprobar las interrupciones de servicioAmazon EMR utiliza varios Amazon Web Services internamente. Ejecuta servidores virtuales en AmazonEC2, almacena datos y scripts en Amazon S3, indexa archivos de registro en Amazon SimpleDB e informalas métricas a CloudWatch. Los eventos que interrumpen estos servicios son poco frecuentes, pero cuandoocurren, pueden causar problemas en Amazon EMR.

Antes de continuar, compruebe el Panel de estado del servicio. Compruebe la región en la que lanzó elclúster para ver si hay eventos de interrupción en alguno de estos servicios.

Consultar los límites de usoSi va a lanzar un clúster grande, ha lanzado varios clústeres simultáneamente o eres un usuario de IAMque comparte unAWScuenta con otros usuarios, es posible que el clúster haya fallado porque ha superadounAWSlímite de los servicios.

Amazon EC2 limita el número de instancias de servidor virtual que se ejecutan en un soloAWSRegión a20 instancias bajo demanda o reservadas. Si lanza un clúster con más de 20 nodos o lanza un clústerque provoca el número total de instancias EC2 activas en suAWSuna cuenta superior a 20, el clúster nopodrá lanzar todas las instancias EC2 que necesita y podría fallar. Cuando esto sucede, Amazon EMRdevuelve unEC2 QUOTA EXCEEDED. Puedes solicitar queAWSaumente el número de instancias EC2 quepueden ejecutarse en su cuenta enviando unSolicitud para aumentar el límite de instancias de AmazonEC2revisiones de.

Otra cosa que puede hacer que supere los límites de uso es el retraso entre la finalización de un clústery el momento en que libera todos sus recursos. En función de su configuración, un clúster puede tardarhasta 5-20 minutos en terminar por completo y liberar los recursos asignados. Si estás recibiendo unEC2QUOTA EXCEEDEDError 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, puedesolicitar que se aumente su cuota deAmazon EC2o puede esperar 20 minutos y volver a lanzar el clúster.

Amazon S3 limita el número de depósitos creados en una cuenta a 100. Si el clúster crea un nuevodepósito que supera este límite, la creación del bucket fallará y puede provocar que el clúster falle.

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 del clúster.

Compruebe la configuración de subred de Amazon VPCSi el clúster se ha lanzado en una subred de Amazon VPC, la subred debe configurarse tal y como sedescribe enConfigure redes (p. 224). Además, compruebe que la subred en la que inicia el clúster tienesuficientes direcciones IP elásticas gratuitas para asignar una a cada nodo del clúster.

Paso 3: Mira 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 API

585

Page 594: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 4: Examinar los archivos de registro

utilizando las acciones DescribeCluster y ListSteps. Para obtener más información, consulte Ver elestado y detalles del clúster (p. 473).

Paso 4: Examinar los archivos de registroEl siguiente paso consiste en examinar los archivos de registro para localizar un código de error u otraindicación del problema que ha experimentado el clúster. Para obtener información sobre los archivos deregistro disponibles, dónde encontrarlos y cómo verlos, consulteVer archivos de registro de (p. 487).

Es posible que se necesiten algunos trabajos de investigación para determinar qué ocurrió. Hadoopejecuta el trabajo de los trabajos en intentos de tareas en varios nodos del clúster. Amazon EMR puedeiniciar intentos de tareas especulativas y finalizar los demás intentos de tareas que no se completanprimero. Esto genera una actividad significativa que se registra en los archivos de registro del controlador,stderr y syslog a medida que sucede. Además, se ejecutan varios intentos de tareas simultáneamente,pero un archivo de registro solo puede mostrar los resultados linealmente.

Comience comprobando los registros de acciones de arranque en busca de errores o cambios deconfiguración inesperados durante el lanzamiento del clúster. A partir de ahí, consulte los registros depasos para identificar los trabajos de Hadoop lanzados como parte de un paso con errores. Examine losregistros de trabajos de Hadoop para identificar los intentos de tareas fallidos. El registro de intentos detareas contendrá detalles sobre qué causó un error en un intento de tarea.

En las siguientes secciones se describe cómo se utilizan los distintos archivos de registro para identificarerrores en el clúster.

Compruebe los registros de acciones de arranqueLas acciones de arranque ejecutan scripts en el clúster a medida que se inicia. Se utilizan comúnmentepara instalar software adicional en el clúster o para modificar la configuración de los valorespredeterminados. La comprobación de estos registros puede proporcionar información sobre los erroresque se produjeron durante la configuración del clúster, así como cambios en la configuración que podríanafectar al rendimiento.

Consultar los registros de pasosHay cuatro tipos de registros de pasos.

• controlador—Contiene archivos generados por Amazon EMR (Amazon EMR) que surgen de erroresencontrados al intentar ejecutar el paso. Si el paso falla durante la carga, puede encontrar el seguimientode la pila en este registro. Los errores al cargar o acceder a la aplicación se describen a menudo aquí, aligual que los errores de archivo de mapeador faltantes.

• stderr—Contiene mensajes de error que se han producido durante el procesamiento del paso. Loserrores de carga de aplicaciones se describen a menudo aquí. Este registro a veces contiene unseguimiento de pila.

• stdout—Contiene el estado generado por los ejecutables del mapeador y reductor. Los errores de cargade aplicaciones se describen a menudo aquí. Este registro contiene a veces mensajes de error de laaplicación.

• syslog—Contiene registros de software ajeno a Amazon, como Apache y Hadoop. Los errores detransmisión se describen a menudo aquí.

Compruebe stderr para ver si hay errores obvios. Si stderr muestra una breve lista de errores, el pasose detuvo rápidamente con un error emitido. En la mayoría de los casos, esto se debe a un error en lasaplicaciones de mapeador y reductor que se ejecutan en el clúster.

Examine las últimas líneas de controlador y syslog en busca de avisos de errores o errores. Siga cualquieraviso sobre tareas fallidas, especialmente si dice «Error en el Job».

586

Page 595: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 5: Prueba del clúster paso a paso

Comprobar los registros de intentos de tareasSi el análisis anterior de los registros de pasos ha mostrado una o varias tareas fallidas, investigue losregistros de los intentos de tareas correspondientes para obtener información de errores más detallada.

Paso 5: Prueba del 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 elsiguiente 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 alive mantieneel clúster en ejecución después de que haya procesado todos los pasos pendientes. La protecciónde terminación evita que un clúster se cierre en caso de que se produzca un error. Para obtener másinformación, consulte Configuración de un clúster para que continúe o finalice tras la ejecución porpasos (p. 186) y Uso de la protección contra terminación (p. 191).

2. Envíe un paso al clúster. Para obtener más información, consulte Enviar trabajo a un clúster (p. 571).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: Examinar los archivos de registro (p. 586).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 contra terminación (p. 191).

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 un clúster con errores (p. 584)

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 de hardware y redes de clúster (p. 214).

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. 588)• Paso 2: Consultar el entorno (p. 588)• Paso 3: Examinar los archivos de registro (p. 589)• Paso 4: Comprobar el estado del clúster y (p. 590)• Paso 5: Comprobar si hay grupos suspendidos (p. 591)• Paso 6: Revisión de la configuración de configuración (p. 592)

587

Page 596: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 1: Recopilar datos sobre el problema

• Paso 7: Examinar datos de entrada (p. 593)

Paso 1: Recopilar datos sobre el problemaEl primer paso para la resolución de problemas de un clúster consiste en recopilar información sobre quéha ocurrido y el estado actual y la configuración del clúster. Esta información se utilizará en los siguientespasos para confirmar o descartar posibles causas del problema.

Definir el problemaEl primer lugar para empezar es una definición clara del problema. Algunas preguntas que debes hacerte:

• ¿Qué esperaba que ocurriera? ¿Qué ha pasado en cambio?• ¿Cuándo se produjo este problema por primera vez? ¿Con qué frecuencia ha ocurrido desde entonces?• ¿Ha cambiado algo en cómo configuro o ejecuto mi clúster?

Detalles clústerLos siguientes detalles del clúster son útiles para ayudar a rastrear problemas. Para obtenermás información acerca de cómo recopilar esta información, consulte.Ver el estado y detalles delclúster (p. 473).

• Identificador del clúster. (También se denomina identificador de flujo de trabajo.)• Región y zona de disponibilidad en la 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 maestro, núcleo y tarea.

Paso 2: Consultar el entornoTemas

• Comprobar las interrupciones de servicio (p. 588)• Consultar los límites de uso (p. 588)• Compruebe la configuración de subred de Amazon VPC (p. 589)• Restablecer el clúster (p. 589)

Comprobar las interrupciones de servicioAmazon EMR utiliza varios Amazon Web Services internamente. Ejecuta servidores virtuales en AmazonEC2, almacena datos y scripts en Amazon S3, indexa archivos de registro en Amazon SimpleDB e informalas métricas a CloudWatch. Los eventos que interrumpen estos servicios son poco frecuentes, pero cuandoocurren, pueden causar problemas en Amazon EMR.

Antes de continuar, compruebe el Panel de estado del servicio. Compruebe la región en la que lanzó elclúster para ver si hay eventos de interrupción en alguno de estos servicios.

Consultar los límites de usoSi va a lanzar un clúster grande, ha lanzado varios clústeres simultáneamente o eres un usuario de IAMque comparte unAWScuenta con otros usuarios, es posible que el clúster haya fallado porque ha superadounAWSlímite de los servicios.

588

Page 597: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 3: Examinar los archivos de registro

Amazon EC2 limita el número de instancias de servidor virtual que se ejecutan en un soloAWSRegión a20 instancias bajo demanda o reservadas. Si lanza un clúster con más de 20 nodos o lanza un clústerque provoca el número total de instancias EC2 activas en suAWSuna cuenta superior a 20, el clúster nopodrá lanzar todas las instancias EC2 que necesita y podría fallar. Cuando esto sucede, Amazon EMRdevuelve unEC2 QUOTA EXCEEDED. Puedes solicitar queAWSaumente el número de instancias EC2 quepueden ejecutarse en su cuenta enviando unSolicitud para aumentar el límite de instancias de AmazonEC2revisiones de.

Otra cosa que puede hacer que supere los límites de uso es el retraso entre la finalización de un clústery el momento en que libera todos sus recursos. En función de su configuración, un clúster puede tardarhasta 5-20 minutos en terminar por completo y liberar los recursos asignados. Si estás recibiendo unEC2QUOTA EXCEEDEDError 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, puedesolicitar que se aumente su cuota deAmazon EC2o puede esperar 20 minutos y volver a lanzar el clúster.

Amazon S3 limita el número de depósitos creados en una cuenta a 100. Si el clúster crea un nuevodepósito que supera este límite, la creación del bucket fallará y puede provocar que el clúster falle.

Compruebe la configuración de subred de Amazon VPCSi el clúster se ha lanzado en una subred de Amazon VPC, la subred debe configurarse tal y como sedescribe enConfigure redes (p. 224). Además, compruebe que la subred en la que inicia el clúster tienesuficientes direcciones IP elásticas gratuitas para asignar una a cada nodo del clúster.

Restablecer 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 de registro para localizar un código de error u otraindicación del problema que ha experimentado el clúster. Para obtener información sobre los archivos deregistro disponibles, dónde encontrarlos y cómo verlos, consulteVer archivos de registro de (p. 487).

Es posible que se necesiten algunos trabajos de investigación para determinar qué ocurrió. Hadoopejecuta el trabajo de los trabajos en intentos de tareas en varios nodos del clúster. Amazon EMR puedeiniciar intentos de tareas especulativas y finalizar los demás intentos de tareas que no se completanprimero. Esto genera una actividad significativa que se registra en los archivos de registro del controlador,stderr y syslog a medida que sucede. Además, se ejecutan varios intentos de tareas simultáneamente,pero un archivo de registro solo puede mostrar los resultados linealmente.

Comience comprobando los registros de acciones de arranque en busca de errores o cambios deconfiguración inesperados durante el lanzamiento del clúster. A partir de ahí, consulte los registros depasos para identificar los trabajos de Hadoop lanzados como parte de un paso con errores. Examine losregistros de trabajos de Hadoop para identificar los intentos de tareas fallidos. El registro de intentos detareas contendrá detalles sobre qué causó un error en un intento de tarea.

En las siguientes secciones se describe cómo se utilizan los distintos archivos de registro para identificarerrores en el clúster.

Compruebe los registros de acciones de arranqueLas acciones de arranque ejecutan scripts en el clúster a medida que se inicia. Se utilizan comúnmentepara instalar software adicional en el clúster o para modificar la configuración de los valorespredeterminados. La comprobación de estos registros puede proporcionar información sobre los errores

589

Page 598: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 4: Comprobar el estado del clúster y

que se produjeron durante la configuración del clúster, así como cambios en la configuración que podríanafectar al rendimiento.

Consultar los registros de pasosHay cuatro tipos de registros de pasos.

• controlador—Contiene archivos generados por Amazon EMR (Amazon EMR) que surgen de erroresencontrados al intentar ejecutar el paso. Si el paso falla durante la carga, puede encontrar el seguimientode la pila en este registro. Los errores al cargar o acceder a la aplicación se describen a menudo aquí, aligual que los errores de archivo de mapeador faltantes.

• stderr—Contiene mensajes de error que se han producido durante el procesamiento del paso. Loserrores de carga de aplicaciones se describen a menudo aquí. Este registro a veces contiene unseguimiento de pila.

• stdout—Contiene el estado generado por los ejecutables del mapeador y reductor. Los errores de cargade aplicaciones se describen a menudo aquí. Este registro contiene a veces mensajes de error de laaplicación.

• syslog—Contiene registros de software ajeno a Amazon, como Apache y Hadoop. Los errores detransmisión se describen a menudo aquí.

Compruebe stderr para ver si hay errores obvios. Si stderr muestra una breve lista de errores, el pasose detuvo rápidamente con un error emitido. En la mayoría de los casos, esto se debe a un error en lasaplicaciones de mapeador y reductor que se ejecutan en el clúster.

Examine las últimas líneas de controlador y syslog en busca de avisos de errores o errores. Siga cualquieraviso sobre tareas fallidas, especialmente si dice «Error en el Job».

Comprobar los registros de intentos de tareasSi el análisis anterior de los registros de pasos ha mostrado una o varias tareas fallidas, investigue losregistros de los intentos de tareas correspondientes para obtener información de errores más detallada.

Comprobar los registros demonio de HadoopEn contadas ocasiones, el propio Hadoop podría fallar. Para ver si ese es el caso, debe consultar losregistros de Hadoop. Se encuentran en/var/log/hadoop/en cada nodo.

Puede utilizar el JobTracker registros para asignar un intento de tarea fallido al nodo en el que se ejecutó.Una vez que conozca el nodo asociado al intento de tarea, puede comprobar el estado de la instancia EC2que aloja ese nodo para ver si hubo algún problema, como quedarse sin CPU o memoria.

Paso 4: Comprobar el estado del clúster yUn 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 maestro: administra el clúster. Si experimenta problemas de rendimiento, se ve afectado todo elclúster.

• nodos básicos— procesan tareas de MapReduce y mantienen el Hadoop Distributed Filesystem (HDFS).Si uno de estos nodos experimenta un problema de rendimiento, puede ralentizar las operaciones deHDFS, así como el procesamiento de MapReduce. Puede añadir más nodos secundarios a un clúster

590

Page 599: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 5: Comprobar si hay grupos suspendidos

para mejorar el rendimiento, pero no puede eliminar nodos secundarios. Para obtener más información,consulte Cambio manual de un clúster en ejecución (p. 563).

• nodos de tarea— Procesar tareas de reducción de mapas de procesos. Se trata exclusivamente derecursos informáticos y no almacenan datos. Puede añadir nodos de tareas a un clúster para acelerarel rendimiento o eliminar los nodos de tareas que no sean necesarios. Para obtener más información,consulte Cambio manual de un clúster en ejecución (p. 563).

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:

Comprobar el estado de los clústeresCada 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. Mirando el CloudWatch Las métricas leofrecen el panorama general de lo que sucede con su clúster y puede obtener información sobre losmotivos por los que se ralentiza su procesamiento. Además de utilizar CloudWatch Para analizar unproblema de rendimiento existente, puede configurar alarmas que causen CloudWatch para alertar si seproduce un problema de rendimiento future. Para obtener más información, consulte Supervisar métricascon CloudWatch (p. 502).

Comprobar el estado del trabajo y el estado del HDFSUtilice la pestaña Interfaces de usuario 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 Visualización del historial de aplicaciones (p. 481).

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. 524).

• 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 : proporciona información sobre el porcentaje de utilización de HDFS y el espaciodisponible en cada nodo. Puede utilizar esta interfaz para identificar cuando HDFS se ve limitado por losrecursos y requiere 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.

Comprobar el estado de las instancias 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. 491).

Paso 5: Comprobar si hay grupos suspendidosUn grupo de instancias queda suspendido cuando encuentra demasiados errores al intentar lanzar nodos.Por ejemplo, si nodos nuevos devuelven error repetidamente al llevar a cabo acciones de arranque, elgrupo de instancias, después de un tiempo, pasará al estado SUSPENDED en lugar intentar de formacontinua aprovisionar nuevos nodos.

Un nodo podría no cargarse si:

591

Page 600: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 6: Revisión de la configuración de configuración

• 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 SUSPENDED y el clúster está en estado WAITING, puede añadirun paso de clúster para restablecer el número deseado de nodos secundarios y de tareas. Al añadirel paso se reanuda el procesamiento del clúster y coloca el grupo de instancias de nuevo en estadoRUNNING.

Para obtener más información sobre cómo restablecer un clúster en estado suspendido, consulteEstadosuspendido (p. 567).

Paso 6: Revisión de la configuración 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 Crear acciones de arranque para instalar software adicional (p. 210). Para determinarsi una acción de arranque ha cambiado los ajustes de configuración, compruebe los registros de la acciónde arranque.

Amazon EMR registra los ajustes de Hadoop utilizados para ejecutar cada trabajo. Los datos de registrose 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 del trabajo. Si hahabilitado el archivado de registros, estos datos se copian en Amazon S3 en ellogs/date/jobflow-id/jobscarpeta, dondefechaes la fecha en que se ejecutó el trabajo, yid de flujo de trabajoes elidentificador 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/.

Configuració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.

592

Page 601: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónPaso 7: Examinar datos de entrada

Configuración de configuración Descripción

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.

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 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".

593

Page 602: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores comunes en Amazon EMR

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.

Temas• Errores de entrada y salida (p. 594)• Errores de permisos (p. 596)• Errores recursos (p. 597)• Errores clúster (p. 604)• Errores de clúster (p. 605)• Errores de clúster (p. 606)• Errores de VPC (p. 607)• AWS GovCloud errores (EE.UU.-Oeste) (p. 610)• Otros problemas. (p. 610)

Errores de entrada y salidaLos errores siguientes son habituales en las operaciones de entrada y salida de clúster.

Temas• ¿Su ruta de acceso a Amazon Simple Storage Service (Amazon S3) tiene al menos tres barras

diagonales? (p. 594)• ¿Está intentando atravesar de forma recursiva directorios de entrada? (p. 594)• ¿Ya existe el directorio de salida? (p. 595)• ¿Está intentando especificar un recurso mediante una URL HTTP? (p. 595)• ¿Está haciendo referencia a un bucket de Amazon S3 con un formato de nombre no válido? (p. 595)• ¿Está teniendo problemas para cargar datos hacia o desde Amazon S3? (p. 595)

¿Su ruta de acceso a Amazon Simple Storage Service (AmazonS3) tiene al menos tres barras diagonales?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://DOC-EJEMPLO-CUBETA 1«,deberías usar «s3n://DOC-EJEMPLO-CUBETA 1/», de lo contrario, Hadoop falla en el clúster en la mayoríade 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.

594

Page 603: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores de entrada y salida

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 losmismos 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 intentas usar un nombre de depósito como»DOC-EJEMPLO-CUBETA 1.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úscula, números, puntos (.) y guiones (-). Para obtener más información sobre cómo dar formato alos nombres de bucket de Amazon S3, consulteRestricciones y limitaciones de los bucketsen laAmazonSimple Storage Service User Guide.

¿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 de lanzamiento 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, consulteCopia 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.

595

Page 604: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores de permisos

• Si los clústeres confirman 200 o más transacciones por segundo a Amazon S3,Contacto de soporteparapreparar el bucket para que realice más transacciones por segundo y plantéese el uso de las estrategiasde partición de claves que se describen enConsejos y trucos de rendimiento de Amazon S3.

• 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 problemasde un clúster lento. Para ello, establezca las propiedades mapreduce.reduce.speculativemapreduce.map.speculative y en false. Al lanzar un clúster, puede establecer estos valoresutilizando elmapred-envclasificación de configuración. 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. 607).

Para obtener información adicional, consultePrácticas recomendadas para los errores de Amazon S3enlaAmazon Simple Storage Service User Guide.

Errores de permisosLos siguientes errores son comunes cuando se utilizan permisos o credenciales.

Temas• ¿Está transfiriendo las credenciales correctas en SSH? (p. 596)• Si está utilizando IAM, ¿tiene definido el conjunto de políticas de Amazon EC2 correcto? (p. 597)

¿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. Estoes fácil de hacer si ha creado varios pares de claves. Compruebe los detalles del clúster en la consolade Amazon EMR (o utilice el--describeen la CLI) para el nombre del par de claves que se especificócuando se creó el clúster.

Una vez que haya verificado que está utilizando el key pair correcto y que los permisos se handefinido correctamente en el archivo .pem, puede utilizar el siguiente comando para utilizar SSH paraconectarse al nodo maestro, donde debería sustituir mykey.pem por el nombre de su archivo [email protected] el nombre de DNS pública del nodomaestro (disponible a través de la--describeen la CLI o a través de la consola de Amazon EMR.)

Important

Debe utilizar el nombre de inicio de sesiónhadoopcuando se conecte a un nodo de clúster deAmazon EMR; de lo contrario, un error similar aServer refused our keypuede producirse unerror.

596

Page 605: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores recursos

ssh -i mykey.pem [email protected]

Para obtener más información, consulte Connect al nodo maestro utilizando SSH (p. 519).

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éntienen que disponer de determinadas políticas de Amazon EC2 definidas para que Amazon EMR puedagestionar dichas instancias en nombre del usuario de IAM. Si no tiene definidos los permisos necesarios,Amazon EMR devuelve el error: «La cuenta de usuario no está autorizada para 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, consulteCómo funciona Amazon EMR con IAM (p. 310).

Errores 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 principales FAILED_BY_MASTER (p. 597)• Cannot replicate block, only managed to replicate to zero nodes. (p. 599)• EC2 QUOTA EXCEEDED (p. 600)• Too many fetch-failures (p. 600)• File could only be replicated to 0 nodes instead of 1 (p. 601)• Nodos listados de denegación (p. 602)• Errores de limitación (p. 602)• No se admite el tipo de instancia (p. 603)• EC2 está fuera de capacidad (p. 604)

El clúster termina con NO_SLAVE_LEFT y los nodos principalesFAILED_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 central superael umbral de utilización, YARN NodeManager servicio de salud informa del nodo comoUNHEALTHY. Sisigue en este estado, Amazon EMR deny envía a la lista el nodo y no le asigna contenedores YARN.Si el nodo sigue en mal estado transcurridos 45 minutos, Amazon EMR marca la instancia AmazonEC2 asociada para su terminación comoFAILED_BY_MASTER. Cuando todas las instancias AmazonEC2 asociadas con nodos secundarios se marcan para su terminación, el clúster termina con elestadoNO_SLAVE_LEFTporque 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 deny lo muestra en la lista de denegación. Esto aumenta la carga de la utilización del disco en losnodos restantes, ya que estos comienzan a replicar entre ellos los datos HDFS que perdieron en el nodo

597

Page 606: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores recursos

incluido en la lista de denegación. Uno por uno, los nodos van adoptando el estado UNHEALTHY de lamisma manera, y el clúster finalmente termina.

Prácticas recomendadas y recomendaciones

Configurar hardware de clúster con almacenamiento adecuado

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 obtenermás información, consulte Cálculo de la capacidad HDFS requerida de un clúster (p. 262). 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 del cl (p. 535).

Habilitar la protección contra la terminación

Habilite la protección de terminación. De esta forma, si un nodo secundario aparece en la lista dedenegación, puede conectarse a la instancia Amazon EC2 asociada mediante SSH para solucionarproblemas y recuperar los datos. Si habilita la protección de terminación, tenga en cuenta que AmazonEMR no sustituye la instancia de Amazon EC2 por una nueva. Para obtener más información, consulte Usode la protección contra terminación (p. 191).

Crear una alarma para MRunHealthyNodes CloudWatch métrica

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 Supervisar métricas con CloudWatch (p. 502).

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, consulteConfiguración de aplicacionesen laGuía de publicaciónde Amazon EMR. También puede conectarse a las instancias Amazon EC2 asociadas con nodossecundarios mediante SSH y, a continuación, añadir los valores en/etc/hadoop/conf.empty/yarn-site.xmlutilizando un editor de texto. Después de realizar el cambio, debe reiniciar hadoop-yarn-nodemanager como se muestra a continuación.

Important

Cuando reinicies el NodeManager servicio, los contenedores YARN activos se eliminana menosyarn.nodemanager.recovery.enabledtoma el valortrueUsar elyarn-siteclasificación de configuración al crear el clúster. Asimismo, debe especificar eldirectorio 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.

598

Page 607: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores 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 del númerode discos que deben estar enbuen estado para NodeManagerpara lanzar nuevoscontenedores. Esto correspondea yarn.nodemanager.local-dirs(de forma predeterminada,/mnt/yarnen Amazon EMR)y yarn.nodemanager.log-dirs(de forma predeterminada)/var/log/hadoop-yarn/containers, que está vinculadosimbólicos amnt/var/log/hadoop-yarn/containersenAmazon 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 superior oigual a 100, el NodeManagercomprueba si hay un discocompleto. 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.» normalmente se producecuando un clúster no dispone de suficiente almacenamiento de HDFS. Este error se produce cuando segeneran más datos en el clúster de los que pueden almacenarse en HDFS. Ve este error solo mientras seestá ejecutando el clúster, porque cuando el trabajo termina se libera el espacio de HDFS que se estabautilizando.

La cantidad de espacio HDFS disponible para un clúster depende del número y del tipo de instanciasAmazon EC2 que se utilizan como nodos principales. Los nodos de tarea no se utilizan paraalmacenamiento de HDFS. Todo el espacio en disco en cada instancia de Amazon EC2, incluidoslos volúmenes de almacenamiento de EBS adjuntos, está disponible para HDFS. Para obtener más

599

Page 608: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores recursos

información sobre la cantidad de almacenamiento local para cada tipo de instancia EC2, consulteTipos yfamilias de instanciasen laGuía del usuario de Amazon EC2 para instancias de 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 principales 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:

• Siga las instrucciones enAWScuotas de servicioen laReferencia general de Amazon Web Servicesparasolicitar un aumento del límite del servicio. Para algunas API, configurar un CloudWatch evento podríaser una mejor opción que aumentar los límites. Para obtener más información, consulte Cuándoconfigurar los eventos de EMR en CloudWatch (p. 619).

• Si uno o varios clústeres en ejecución no se ejecutan según la capacidad, cambie de tamaño los gruposde 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.

600

Page 609: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores 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 significa queHadoop está ejecutando todas las tareas de asignación. Si este valor vuelve a disminuir por debajo del100%, significa que una tarea de asignación ha devuelto un error y, en función de la configuración, Hadooppodría intentar volver a programar la tarea. Si el porcentaje de asignación permanece en el 100% en losregistros, mire el CloudWatch métricas, específicamenteRunningMapTasks, para comprobar si la tarea deasignación sigue en procesamiento. También puede encontrar esta información a través de la interfaz webde 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 modificando elajuste de configuración de Hadoop mapred.reduce.slowstart.completed.maps a un tiempo superior. Paraobtener más información, consulte Crear acciones de arranque para instalar software adicional (p. 210).

• 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 el número de salidas que se tienen querecuperar.

• Compruebe que no haya ningún problema con el servicio Amazon EC2 que esté afectando aldesempeño 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 de hardware y redes de clúster (p. 214).

• 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 ve este error,significa que el NameNode daemon no dispone de instancias DataNode disponibles para escribir datos enHDFS. 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 JobTracker es posible que demonio no tenga permisos

para crear la información de seguimiento del trabajo.• La configuración de espacio reservado para un DataNode instancia puede ser insuficiente. Compruebe

si este es el caso comprobando la opción de configuración dfs.datanode.du.reserved.

601

Page 610: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores recursos

Para comprobar si este problema se debe a que HDFS se ha quedado sin espacio en disco, examinelaHDFSUtilizationmétrica 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 podría quedarse sin espacioen disco de HDFS, puede configurar una alarma en CloudWatch para avisarle cuando el valordeHDFSUtilizationse eleva por encima de cierto nivel. Para obtener más información, consulte Cambiomanual de un clúster en ejecución (p. 563) y Supervisar métricas con CloudWatch (p. 502).

Si el problema no se ha quedado sin espacio en HDFS, compruebe la DataNode registros, registros deNameNode y conectividad de red para otros problemas que podrían haber evitado que HDFS replicara losdatos. Para obtener más información, consulte Ver archivos de registro de (p. 487).

Nodos listados de denegaciónLa NodeManager daemon es responsable de lanzar y administrar contenedores en los nodos principales yde tareas. Los contenedores se asignan al NodeManager demonio de ResourceManager daemon que seejecuta en el nodo maestro. La ResourceManager monitoriza el NodeManager nodo a través de un latido.

Hay un par de situaciones en las que el ResourceManager daemon deny envía a la lista un NodeManager,eliminándolo del conjunto de nodos disponible para procesar tareas:

• Si el archivo de NodeManager no ha enviado un latido al ResourceManager demonio en los últimos10 minutos (600 000 milisegundos). Este periodo de tiempo puede configurarse mediante la opción deconfiguración yarn.nm.liveness-monitor.expiry-interval-ms. Para obtener más informaciónsobre cómo cambiar los ajustes de configuración de Yarn, consulteConfiguración de aplicacionesenlaGuía de publicación de Amazon 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 falla en la comprobación, el NodeManager deja de utilizar ese disco en particular perosigue notificando que el estado del nodo es correcto. Si varios discos no superan la comprobación, elnodo se notifica como no correcto a la ResourceManager y los contenedores nuevos no están asignadosal nodo.

El maestro de aplicaciones también puede denegar la lista de NodeManager nodo si tiene más detres tareas erróneas. Puede cambiar esto a un valor superior utilizando el parámetro de configuraciónmapreduce.job.maxtaskfailures.per.tracker. Otras opciones de configuración quepodrí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.maxattempts paratareas de reducción. Para obtener más información acerca de cómo cambiar los ajustes de configuración,consulte.Configuración de aplicacionesen laGuía de publicación de Amazon EMR.

Errores de limitaciónLos errores «Estrangulados desdeAmazon EC2al iniciar clúster» y «No se pudieron aprovisionar instanciasdebido a la limitación desdeAmazon EC2«ocurre cuando Amazon EMR no puede completar una solicitudporque otro servicio ha limitado la actividad. Amazon EC2 es la fuente más común de errores de limitación,pero otros servicios pueden ser la causa de errores de limitación.AWSlímites de los serviciosse aplica porregión para mejorar el rendimiento y un error de limitación controlada indica que ha superado el límite deservicio de su cuenta en dicha región.

Causas posibles

La fuente más común de errores de limitación de Amazon EC2 consiste en que se está lanzando ungran número de instancias de clúster de modo que se supera el límite de servicio de instancias EC2. Lasinstancias de clúster pueden lanzarse por las siguientes razones:

• Se han creado nuevos clústeres.

602

Page 611: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores recursos

• Se ha cambiado manualmente el tamaño de los clústeres. Para obtener más información, consulteCambio manual de un clúster en ejecución (p. 563).

• Los grupos de instancias en un clúster añaden instancias (escalado) como resultado de una regla deescalado automático. Para obtener más información, consulte Descripción de las reglas de escaladoautomático (p. 555).

• 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. 235).

También es posible que la frecuencia o el tipo de solicitud de API realizada a Amazon EC2 provoqueerrores de limitación controlada. Para obtener más información sobre cómo Amazon EC2 limita lassolicitudes de la API, consulteVelocidad de solicitudes de API de consultasen laReferencia de la API deAmazon EC2.

Soluciones

Tenga en cuenta las soluciones siguientes:

• Siga las instrucciones enAWScuotas de servicioen laReferencia general de Amazon Web Servicesparasolicitar un aumento del límite del servicio. Para algunas API, configurar un CloudWatch evento podríaser una mejor opción que aumentar los límites. Para obtener más información, consulte Cuándoconfigurar los eventos de EMR en CloudWatch (p. 619).

• Si tiene clústeres que se inician en la misma programación, por ejemplo, en la parte superior de la hora,considere horarios de inicio asombrosos.

• Si tiene clústeres que están dimensionados para picos de demanda y periódicamente tiene problemasde 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. 554).

No se admite el tipo de instanciaSi crea un clúster y falla con el mensaje de error «El tipo de instancia solicitado»InstanceTypenose admite en la zona de disponibilidad solicitada», significa que creó el clúster y especificó un tipo deinstancia para uno o varios grupos de instancias que Amazon EMR no admite en la región y la zona dedisponibilidad donde se creó el clúster. Amazon EMR puede admitir un tipo de instancia en una zona dedisponibilidad dentro de una región y no en otra. La subred que seleccione para un clúster determina lazona de disponibilidad dentro de la región.

Solución

Determine los tipos de instancia disponibles en una zona de disponibilidad mediante laAWS CLI

• Utilice el comando ec2 run-instances con la opción --dry-run. En el ejemplo siguiente,sustitúyasem5.xlargecon el tipo de instancia que desea utilizar,ami-035be7 bafff33b6b6conla AMI asociada a ese tipo de instancia, ysubred - 12ab3c45con una subred en la zona dedisponibilidad que desea consultar.

aws ec2 run-instances --instance-type m5.xlarge --dry-run --image-id ami-035be7bafff33b6b6 --subnet-id subnet-12ab3c45

Para obtener instrucciones sobre cómo encontrar un ID de AMI, consulteEncontrar una AMI de Linux.Para encontrar un ID de subred, puede utilizar ladescribe-subnetscomando.

603

Page 612: Amazon EMR - Guía de administración

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

Para obtener más información acerca de cómo descubrir los tipos de instancia disponibles,consulte.Buscar un tipo de instancia Amazon EC2.

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 instancias admitidos, consulte Tipos deinstancias admitidas (p. 217). Para comparar capacidades de tipos de instancia EC2, consulte.Tipos deinstancias de 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 está fuera de capacidadUn «EC2 no tiene capacidad paraInstanceType«se produce un error al intentar crear un clúster oagregar instancias a un clúster en una zona de disponibilidad que ya no tiene el tipo de instancia EC2especificado. La subred que seleccione para un clúster determina la zona de disponibilidad.

Para crear un clúster, realice alguna de las siguientes operaciones:

• Especifique un tipo de instancia diferente con capacidades similares• Crear el clúster en una región de distinta• Seleccione una subred en una zona de disponibilidad en la que el tipo de instancia que desea esté

disponible.

Para añadir instancias a un clúster en ejecución, lleve a cabo alguna de las siguientes operaciones:

• Modifique las configuraciones de grupo de instancias o las configuraciones de flota de instancias paraañadir tipos de instancia disponibles con capacidades similares. Para ver una lista de los tipos deinstancias admitidos, consulte Tipos de instancias admitidas (p. 217). Para comparar capacidades detipos de instancia EC2, consulte.Tipos de instancias de Amazon EC2.

• Termine el clúster y vuelva a crearlo en una región y zona de disponibilidad en la que el tipo de instanciaesté disponible.

Errores clústerNormalmente, 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. 605)• ¿Se agota el tiempo de espera del script? (p. 605)• ¿Está transfiriendo un argumento de streaming no válido? (p. 605)• ¿El script se cierra con un error? (p. 605)

604

Page 613: Amazon EMR - Guía de administración

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

¿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 de (p. 487).

¿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 de (p. 487).

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 de (p. 487).

Errores de clústerLos siguientes errores son comunes en los clústeres JAR personalizados.

605

Page 614: Amazon EMR - Guía de administración

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

Temas• ¿Su JAR lanza una excepción antes de crear un trabajo? (p. 606)• ¿Su JAR lanza un error dentro de una tarea de asignación? (p. 606)

¿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 de (p. 487).

¿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 de (p. 487).

Errores de clústerNormalmente, 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. 606)• ¿Ha detectado un error de sintaxis en el script de Hive? (p. 606)• ¿Ha devuelto error un trabajo al ejecutarlo de forma interactiva? (p. 606)• ¿Está teniendo problemas para cargar datos hacia o desde Amazon S3 en Hive? (p. 607)

¿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 de (p. 487).

¿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 de (p. 487).

606

Page 615: Amazon EMR - Guía de administración

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 acceder a los datos en Amazon S3, primero compruebe las posibles causasincluidas en¿Está teniendo problemas para cargar datos hacia o desde Amazon S3? (p. 595). Si ningunode 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.

• Uso deINSERT OVERWRITErequiere mostrar el contenido del bucket o la carpeta de Amazon S3.Se trata de una operación costosa. Si es posible, elimine manualmente la ruta en lugar de que Hiveenumere y elimine los objetos existentes.

• Si utiliza versiones de Amazon EMR anteriores a la 5.0, puede utilizar el comando siguiente enHiveQL 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 porque la tabla se almacena en una ubicación distinta a la esperada por Hive. La solución consisteen 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 subred no válida (p. 607)• Falta el conjunto de opciones de DHCP (p. 608)• Errores de permisos (p. 608)• Errores que dan lugar aSTART_FAILED (p. 609)• RacimoTerminated with errorsy NameNode no se inicia (p. 609)

Configuración de subred 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 Adding an internet gateway to your VPC (Cómo añadir una gateway de Interneta la VPC).

607

Page 616: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores de 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.

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 elAWS GovCloud región (EE.UU.-Oeste), establezca el nombre de dominio enus-gov-west-1.compute.internalen lugar del valor utilizado en el siguiente ejemplo.

• domain-name = ec2.internal

Usarec2.internalSi su región es EE. UU. Este (Norte de Virginia). Para las demás regiones,utilice nombre-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 fallo en elstderrlog 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 el archivo de ActionOnFailure toma el valorTERMINATE_JOB_FLOW, esto daría lugar a que el clústertermine con el 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 conexión de la VPC y seleccionandoPermitir todoen laopción Política al crear el endpoint.

• 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/

608

Page 617: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónErrores de VPC

• 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:

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 aSTART_FAILEDAntes de la AMI 3.7.0, en las VPC donde se especifica un nombre de host, Amazon EMR asigna losnombres de host internos de la subred a direcciones de dominio personalizadas del siguiente modo:ip-X.X.X.X.customdomain.com.tld. Por ejemplo, si el nombre de host eraip-10.0.0.10y laVPC tiene la opción de nombre de dominio definida en customdomain.com, el nombre de host resultantemapeado por Amazon EMR seríaip-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.

RacimoTerminated with errorsy 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 fracaso se debe a que NameNode no poder arrancar. Esto dará lugar al siguiente error en el NameNodelogs, cuyo URI de Amazon S3 tiene la forma:s3://mybucket/logs/cluster-id/daemons/masterinstance-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)

609

Page 618: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónAWS GovCloud errores (EE.UU.-Oeste)

at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)

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 unAWS-servidor DNSproporcionado y un servidor DNS personalizado proporcionado por el usuario. Si el servidor de DNSproporcionado por el usuario no ofrece ningún registro de puntero (PTR) para ningún registro A utilizadopara designar nodos en un clúster de EMR, los clústeres devolverán un error al iniciarse cuando seconfiguran de esta manera. La solución consiste en añadir un registro PTR por cada registro A que se creacuando se lanza una instancia EC2 en cualquiera de las subredes de la VPC.

AWS GovCloud errores (EE.UU.-Oeste)LaAWS GovCloud (Estados Unidos y oeste) difiere de otras regiones en la seguridad, configuración yajustes predeterminados. Por tanto, utilice la siguiente lista de comprobación para solucionar los erroresde Amazon EMR específicos de laAWS GovCloud (EE.UU.-Oeste) antes de utilizar recomendaciones desolución de problemas más generales.

• Compruebe que sus roles de IAM estén correctamente configurados. Para obtener más información,consulte Configurar roles de servicio de IAM para permisos de Amazon EMR paraAWSservicios yrecursos (p. 312).

• 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. 607).

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. 594).

Otros problemas.¿No ve el clúster que espera en la página Cluster List o en losresultados devueltos desde? ListClusters API?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.

Solución de problemas de un clúster de LakeFormation

Esta sección le muestra el proceso de resolución de problemas comunes al utilizar Amazon EMR conAWSLake Formation.

610

Page 619: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónNo se permite el acceso al lago de datos

No se permite el acceso al lago de datosDebe optar explícitamente por el filtrado de datos en clústeres de Amazon EMR antes de poderanalizar y procesar datos en el data lake. Cuando se produce un error en el acceso a los datos, verá ungenéricoAccess is not allowedmensaje en la salida de las entradas del bloc de notas.

Para inscribirse y permitir el filtrado de datos en Amazon EMR, consultePermitir el filtrado de datos enAmazon EMRen laAWS Lake FormationGuía para desarrolladoresPara obtener instrucciones.

Vencimiento de la sesiónEl tiempo de espera para EMR Notebooks y Zeppelin se controla mediante el Rol de IAM para LakeFormationMaximum CLI/API session durationconfiguración. El valor predeterminado para estaconfiguració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.

Sin permisos para el usuario en la tabla solicitadaAl 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 modificación de tablas: No seadmite en versión 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, consulteLimitaciones de la integración de Amazon EMR conAWS LakeFormation.

611

Page 620: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplo de código fuente de Java integral de Amazon EMR

Escribir aplicaciones que lancen yadministren clústeres

Temas• Ejemplo de código fuente de Java integral de Amazon EMR (p. 612)• Conceptos comunes para llamadas a API (p. 615)• Utilizar SDK para llamar a las API de Amazon EMR (p. 616)• Gestionar cuotas de Amazon EMR Service (p. 618)

Puede acceder a la funcionalidad proporcionada por el API de Amazon EMR llamando a las funcionescontenedoras en una de lasAWSSDK. Los SDK de AWS proporcionan funciones específicas del lenguajeque contienen la API del servicios web y simplifican la conexión al servicio web, gestionando muchos delos detalles de conexión para usted. Para obtener más información sobre cómo llamar a Amazon EMR através de uno de los SDK, consulteUtilizar SDK para llamar a las API de Amazon EMR (p. 616).

Important

La máxima velocidad de solicitudes para Amazon EMR es una solicitud cada diez segundos.

Ejemplo de código fuente de Java integral deAmazon EMR

Los desarrolladores pueden llamar a el API de Amazon EMR mediante código Java personalizado parahacer lo mismo con la consola de Amazon EMR o la CLI. Esta sección proporciona todos los pasosnecesarios para instalar elAWS Toolkit for Eclipsey ejecuta una muestra de código fuente de Javatotalmente funcional que añada 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 con una colección de SDK de Amazon EMR. Para obtener más información,consulte Utilizar SDK para llamar a las API de Amazon EMR (p. 616).

Este código de origen de Java de ejemplo muestra cómo realizar las siguientes tareas a través del API deAmazon EMR:

• RecuperarAWScredenciales 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.

612

Page 621: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplo de código fuente de Java integral de Amazon EMR

Antes de comenzar, instale una versión del Eclipse IDE for Java EE Developers (IDE de Eclipse paraJava EE Developers) que coincida con su plataforma informática. Para obtener más información,consulteDescargas de Eclipse.

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 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, elijaAWS Toolkit for EclipseyAcabado.5. Reinicie Eclipse cuando se le solicite.

A continuación, cree un nuevoAWSJava project y ejecute el código fuente Java de muestra.

Para crear un nuevoAWSproyecto Java

1. Abra el IDE de Eclipse.2. Elija File (Archivo), New (Nuevo) y Other (Otros).3. En el navegadorSeleccione un asistentecuadro de diálogo, elijaAWSProyecto JavayPróximo.4. En el navegadorNuevoAWSProyecto Java, en el cuadro de diálogoProject name:, introduzca el

nombre del proyecto nuevo, por ejemploEMR-sample-code.5. ElegirConfigurarAWScuentas..., introduzca sus claves de acceso públicas y privadas y elijaAcabado.

Para obtener más información acerca de la creación de claves de acceso, consulte¿Cómo puedoobtener las credenciales de seguridad?en laReferencia general de Amazon Web 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.

613

Page 622: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónEjemplo de código fuente de Java integral de Amazon EMR

Note

En el siguiente código de ejemplo, sustituya el ID de clúster de ejemplo (JobFlowId),j-xxxxxxxxxxxx, con un ID de clúster válido en su cuenta de en laAWS ManagementConsoleo utilizando lo siguienteAWS CLIcomando:

aws emr list-clusters --active | grep "Id"

Además, sustituya la ruta de Amazon S3 de ejemplo,s3://path/to/my/jarfolder, con laruta válida a su JAR. Por último, sustituya el nombre de clase de ejemplo com.my.Main1 porel 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());

614

Page 623: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónConceptos comunes para llamadas a 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 a APITemas

• Puntos de enlace para Amazon EMR (p. 615)• Especificación de parámetros de clúster en Amazon EMR (p. 615)• Zonas de disponibilidad de Amazon EMR (p. 616)• Cómo utilizar archivos y bibliotecas adicionales en clústeres de Amazon EMR (p. 616)

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. Cadasolicitud de servicio web debe contener un punto de enlace. El punto final especificaelAWSRegión 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 su solicitud a un punto de enlace en 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, consulteRegiones ypuntos de enlaceen laReferencia general de Amazon Web Services.

Especificación de parámetros de clúster en AmazonEMRLos 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.

615

Page 624: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónZonas de disponibilidad de Amazon EMR

SiKeepJobAliveestrue, después de obtener correctamente el clúster para completar su trabajo, debeenviar unTerminateJobFlowssolicitud o el clúster continúa ejecutándose y generandoAWScargos.

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 de 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 obtener una lista de las regiones y puntos de enlace de Amazon EMR,consulteRegiones y puntos de enlaceen laReferencia 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. CuandoAvailabilityZoneno se especifica Amazon EMR eligeautomáticamente el mejorAvailabilityZonevalor para el clúster. Puede encontrar este parámetro útilsi desea coubicar sus instancias con otras instancias en ejecución existentes y su clúster necesita leero escribir datos de dichas instancias. A fin de obtener más información, consulte la Guía del usuario deAmazon EC2 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.

Utilizar SDK para llamar a las API de Amazon EMRTemas

• Uso deAWS SDK for JavaPara crear un clúster de Amazon EMR (p. 617)

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.

616

Page 625: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónUso deAWS SDK for JavaPara

crear un clúster de Amazon EMR

Para obtener más información acerca de cómo descargar y usar laAWSSDK, consulte SDKenHerramientas para Amazon Web Services.

Uso deAWS SDK for JavaPara crear un clúster deAmazon EMRLaAWS SDK for Javaproporciona 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 acerca de estos paquetes, consulte laAWS SDK for JavaReferencia de laAPI.

El siguiente ejemplo ilustra cómo los SDK pueden simplificar la programación con Amazon EMR. En elejemplo de código siguiente se utiliza elStepFactory, una clase helper para crear tipos de paso deAmazon EMR 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) { AWSCredentialsProvider profile = null; try { credentials_profile = new ProfileCredentialsProvider("default"); // 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(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");

617

Page 626: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónGestionar cuotas de Amazon EMR Service

Application ganglia = new Application().withName("Ganglia"); Application zeppelin = new Application().withName("Zeppelin"); // create the cluster 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. Para hacerlo, invoque estoAWS CLIpara lamisma 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 para crearlos:

aws emr create-default-roles

Gestionar cuotas de Amazon EMR ServiceTemas

• Qué son las Service Quotas Amazon EMR (p. 619)• Cómo administrar las Service Quotas Amazon EMR (p. 619)• Cuándo configurar los eventos de EMR en CloudWatch (p. 619)

618

Page 627: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónQué son las Service Quotas Amazon EMR

Los temas de esta sección describen las cuotas de servicio EMR (anteriormente denominadas límites deservicio), cómo gestionarlas en elAWS Management Consoley cuando resulta ventajoso utilizar eventos deCloudWatch en lugar de cuotas de servicio para supervisar clústeres y desencadenar acciones.

Qué son las Service Quotas Amazon EMRSusAWScuenta incluye cuotas de servicio predeterminadas, también conocidas como límites, paracadaAWSservicioservicio El servicio de EMR tiene dos tipos de límites:

• Límites en recursos- Puede usar EMR para crear recursos de EC2. Sin embargo, estos recursos de EC2están sujetos a cuotas de servicios. Las limitaciones de recursos de esta categoría son:• : el número máximo de clústeres activos que se pueden ejecutar a la vez.• El número de instancias activas por grupo de instancias.

• Límites de las API de- Cuando se utilizan API de EMR, los dos tipos de limitaciones son:• Límite de ráfaga— Este es el número máximo de llamadas a la API que puedes realizar a la vez.

Por ejemplo, el número máximo de solicitudes de API de AddInstanceFleet que puede realizar porsegundo se establece en 5 llamadas/segundo de forma predeterminada. Esto implica que el límite deráfaga de la API de AddInstanceFleet es de 5 llamadas/segundo o que, en cualquier momento, puederealizar como máximo 5 llamadas a la API de AddInstanceFleet. Sin embargo, después de utilizar ellímite de ráfagas, las llamadas posteriores quedan limitadas por el límite de velocidad.

• Límite de frecuencia— Esta es la tasa de reabastecimiento de la capacidad de ráfaga de la API. Porejemplo, la tasa de reabastecimiento de las llamadas AddInstanceFleet se establece en 0,5 llamadas/segundo como valor predeterminado. Esto significa que después de alcanzar el límite de ráfagas,tienes que esperar al menos 2 segundos (0,5 llamadas/segundo X 2 segundos = 1 llamada) pararealizar la llamada a la API. Si realiza una llamada antes de eso, el servicio web de EMR lo limita. Encualquier momento, solo puedes realizar tantas llamadas como la capacidad de ráfaga sin que selimite. Cada segundo adicional que esperas, tu capacidad de ráfaga aumenta 0,5 llamadas hasta quealcanza el límite máximo de 5, que es el límite de ráfaga.

Cómo administrar las Service Quotas Amazon EMRService Quotas es unAWSfunción que puede utilizar para ver y administrar sus cuotas de servicio deAmazon EMR, o los límites, desde una ubicación central mediante elAWS Management Console, la APIo la CLI. Para obtener más información acerca de la visualización de cuotas y solicitar aumentos de,consulteAWScuotas de servicioen laReferencia general de Amazon Web Services.

Para algunas API, configurar un evento de CloudWatch podría ser una mejor opción que aumentar lascuotas de servicio. También puede ahorrar tiempo utilizando CloudWatch para configurar alarmas y activarsolicitudes de aumento de forma proactiva, antes de alcanzar la cuota de servicio. Para obtener másinformación, consulte Cuándo configurar los eventos de EMR en CloudWatch (p. 619).

Cuándo configurar los eventos de EMR enCloudWatchPara algunas API de sondeo, como DescribeCluster, DescribeStep y ListClusters, la configuración deun evento de CouldWatch puede reducir el tiempo de respuesta a los cambios y liberar las cuotas deservicio. Por ejemplo, si tiene una función Lambda configurada para ejecutarse cuando cambia el estadode un clúster, como cuando finaliza un paso o finaliza un clúster, puede utilizar ese activador para iniciar lasiguiente acción en su flujo de trabajo en lugar de esperar a la siguiente encuesta. De lo contrario, si tieneinstancias de Amazon EC2 dedicadas o funciones Lambda sondeando constantemente la API de EMR enbusca de cambios, no solo desperdiciará recursos informáticos sino que también podría alcanzar su cuotade servicio.

619

Page 628: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCuándo configurar los eventos de EMR en CloudWatch

A continuación se presentan algunos casos en los que podría beneficiarse cambiando a una arquitecturabasada en eventos.

Caso 1: Sondeo de EMR mediante llamadas a la APIDescribeCluster para completar los pasosExample Sondeo de EMR mediante llamadas a la API DescribeCluster para completar los pasos

Un patrón común consiste en enviar un paso a un clúster en ejecución y sondear Amazon EMR paradeterminar el estado del paso, normalmente utilizando las API DescribeCluster o DescribeStep. Esta tareatambién se puede llevar a cabo con un retraso mínimo conectando al evento Cambio de estado de paso deAmazon EMR en.

Este evento incluye la siguiente información en su carga útil.

{ "version": "0", "id": "999cccaa-eaaa-0000-1111-123456789012", "detail-type": "EMR Step Status Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T20:53:09Z", "region": "us-east-1", "resources": [], "detail": { "severity": "ERROR", "actionOnFailure": "CONTINUE", "stepId": "s-ZYXWVUTSRQPON", "name": "CustomJAR", "clusterId": "j-123456789ABCD", "state": "FAILED", "message": "Step s-ZYXWVUTSRQPON (CustomJAR) in Amazon EMR cluster j-123456789ABCD (Development Cluster) failed at 2016-12-16 20:53 UTC." }}

En el mapa detallado, una función de Lambda podría analizar «estado», «stepId» o «ClustID» paraencontrar la información pertinente.

Caso 2: Sondeo de EMR en busca de clústeres disponibles paraejecutar flujos de trabajoExample Sondeo de EMR en busca de clústeres disponibles para ejecutar flujos de trabajo

Un patrón para los clientes que ejecutan varios clústeres es ejecutar flujos de trabajo en clústeres tanpronto como estén disponibles. Si hay muchos clústeres en ejecución y se necesita realizar un flujo detrabajo en un clúster que está esperando, un patrón podría consistir en sondear EMR mediante llamadasa la API de DescribeCluster o ListClusters para clústeres disponibles. Otra forma de reducir el retraso ensaber cuándo un clúster está listo para un paso sería procesar el evento de cambio de estado del clústerde Amazon EMR en.

Este evento incluye la siguiente información en su carga útil.

{ "version": "0", "id": "999cccaa-eaaa-0000-1111-123456789012", "detail-type": "EMR Cluster State Change",

620

Page 629: Amazon EMR - Guía de administración

Amazon EMR Guía de administraciónCuándo configurar los eventos de EMR en CloudWatch

"source": "aws.emr", "account": "123456789012", "time": "2016-12-16T20:43:05Z", "region": "us-east-1", "resources": [], "detail": { "severity": "INFO", "stateChangeReason": "{\"code\":\"\"}", "name": "Development Cluster", "clusterId": "j-123456789ABCD", "state": "WAITING", "message": "Amazon EMR cluster j-123456789ABCD ..." }}

Para este evento, se podría configurar una función Lambda para enviar inmediatamente un flujo de trabajoen espera a un clúster en cuanto su estado cambie a ESPERA.

Caso 3: Encuesta de EMR para la terminación del clústerExample Encuesta de EMR para la terminación del clúster

Un patrón común de clientes que ejecutan muchos clústeres de EMR es sondear Amazon EMR en buscade clústeres terminados para que el trabajo ya no se le envíe. Puede implementar este patrón con lasllamadas a la API DescribeCluster y ListClusters o mediante el evento Cambio de estado de clúster deAmazon EMR en.

Al finalizar el clúster, el evento emitido es similar al del siguiente ejemplo.

{ "version": "0", "id": "1234abb0-f87e-1234-b7b6-000000123456", "detail-type": "EMR Cluster State Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T21:00:23Z", "region": "us-east-1", "resources": [], "detail": { "severity": "INFO", "stateChangeReason": "{\"code\":\"USER_REQUEST\",\"message\":\"Terminated by user request\"}", "name": "Development Cluster", "clusterId": "j-123456789ABCD", "state": "TERMINATED", "message": "Amazon EMR Cluster jj-123456789ABCD (Development Cluster) has terminated at 2016-12-16 21:00 UTC with a reason of USER_REQUEST." }}

La sección «detalles» de la carga útil incluye el ID de clúster y el estado sobre el que se puede actuar.

621

Page 630: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

Glosario de AWSPara ver la terminología más reciente de AWS, consulte el Glosario de AWS en la Referencia general deAWS.

622

Page 631: Amazon EMR - Guía de administración

Amazon EMR Guía de administración

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre latraducción y la version original de inglés, prevalecerá la version en inglés.

dcxxiii