

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Introducción a Amazon EMR sin servidor
<a name="getting-started"></a>

Este tutorial le ayudará a empezar a utilizar EMR sin servidor al implementar una carga de trabajo de ejemplo de Spark o Hive. Creará, ejecutará y depurará su propia aplicación. En la mayoría de los apartados de este tutorial, le mostraremos opciones predeterminadas.

Antes de iniciar una aplicación de EMR sin servidor, realice las siguientes tareas.

**Topics**
+ [Otorgar permisos para usar EMR sin servidor](#gs-permissions)
+ [Preparar el almacenamiento para EMR sin servidor](#gs-prepare-storage)
+ [Crear un EMR Studio para ejecutar cargas de trabajo interactivas](#gs-interactive)
+ [Crear un rol de tiempo de ejecución del trabajo](#gs-runtime-role)
+ [Introducción a EMR sin servidor con la consola](gs-console.md)
+ [Empezando desde AWS CLI](gs-cli.md)

## Otorgar permisos para usar EMR sin servidor
<a name="gs-permissions"></a>

Para usar EMR sin servidor, necesita un rol de usuario o de IAM con una política adjunta que otorgue permisos para EMR sin servidor. Para crear un usuario y asociar la política correspondiente a ese usuario, siga las instrucciones de [Concesión de permisos](setting-up.md#setting-up-iam).

## Preparar el almacenamiento para EMR sin servidor
<a name="gs-prepare-storage"></a>

En este tutorial, utilizará un bucket de S3 para almacenar los archivos de salida y los registros de la carga de trabajo de muestra de Spark o Hive que ejecutará con una aplicación EMR sin servidor. Para crear un bucket, siga las instrucciones en [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) en la *Guía del usuario de la consola de Amazon Simple Storage Service*. Sustituya cualquier referencia adicional a `amzn-s3-demo-bucket` por el nombre del bucket recién creado. 

## Crear un EMR Studio para ejecutar cargas de trabajo interactivas
<a name="gs-interactive"></a>

Si quiere usar EMR sin servidor para ejecutar consultas interactivas a través de cuadernos alojados en EMR Studio, debe especificar un bucket de S3 y el [rol de servicio mínimo para que EMR sin servidor](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-serverless) cree un espacio de trabajo. Para ver los pasos de configuración, consulte [Configurar un EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-set-up.html) en la *Guía de administración de Amazon EMR*. Para más información sobre cargas de trabajo interactivas, consulte [Ejecutar cargas de trabajo interactivas con EMR sin servidor a través de EMR Studio](interactive-workloads.md).

## Crear un rol de tiempo de ejecución del trabajo
<a name="gs-runtime-role"></a>

Las ejecuciones de trabajos en EMR Serverless utilizan un rol de tiempo de ejecución que proporciona permisos granulares a recursos Servicios de AWS y específicos en tiempo de ejecución. En este tutorial, un bucket público de S3 aloja los datos y los scripts. El bucket `amzn-s3-demo-bucket` almacena la salida. 

Para configurar un rol de tiempo de ejecución de un trabajo, primero cree un rol de tiempo de ejecución con una política de confianza para que EMR sin servidor pueda usar el nuevo rol. A continuación, adjunte la política de acceso de S3 requerida a ese rol. Los pasos siguientes le guiarán a través del proceso.

------
#### [ Console ]

1. Vaya a la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación izquierdo, elija **Políticas**.

1. Seleccione **Crear política**.

1. La página **Crear política** se abre en una pestaña nueva. Seleccione el **Editor de políticas** como archivo Json y péguelo a continuación.
**importante**  
Sustituya `amzn-s3-demo-bucket` en la política que aparece a continuación por el nombre real del bucket creado en[Preparar el almacenamiento para EMR sin servidor](#gs-prepare-storage). Se trata de una política básica para el acceso a S3. Para ver más ejemplos de roles de ejecución de trabajos, consulte [Roles en tiempo de ejecución de trabajo para Amazon EMR sin servidor](security-iam-runtime-role.md).

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. Seleccione **Siguiente** para ingresar un nombre para la política, como `EMRServerlessS3AndGlueAccessPolicy`, y luego **Crear política**. 

1. En el panel de navegación izquierdo de la consola de IAM, elija **Roles**.

1. Elija **Crear rol**.

1. Para tipo de rol, elija **Política de confianza personalizada** e introduzca la siguiente política de confianza. Esto permite que los trabajos enviados a sus aplicaciones Amazon EMR Serverless accedan a otros Servicios de AWS en su nombre.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sts:AssumeRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole",
         "Sid": "AllowSTSAssumerole"
       }
     ]
   }
   ```

------

1. **Seleccione **Siguiente** para ir a la página **Añadir permisos** y, a continuación, seleccione EMRServerless S3. AndGlueAccessPolicy**

1. En la página **Nombrar, revisar y crear**, para el **Nombre de rol**, introduzca un nombre para su rol, por ejemplo, `EMRServerlessS3RuntimeRole`. Para crear este nuevo rol de IAM, elija **Crear un rol**.

------
#### [ CLI ]

1. Cree un archivo con el nombre `emr-serverless-trust-policy.json`, que contenga la política de confianza que se va a utilizar para el rol de IAM. El archivo debe contener la política siguiente.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "EMRServerlessTrustPolicy",
         "Action": [
           "sts:AssumeRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole"
       }
     ]
   }
   ```

------

1. Creación de un rol de IAM denominado `EMRServerlessS3RuntimeRole`. Use la política de confianza que creó en el paso anterior.

   ```
   aws iam create-role \
       --role-name EMRServerlessS3RuntimeRole \
       --assume-role-policy-document file://emr-serverless-trust-policy.json
   ```

   Anote el ARN en el resultado. Se utiliza el ARN del nuevo rol durante el envío del trabajo, que en adelante se denomina `job-role-arn`.

1. Cree un archivo con un nombre `emr-sample-access-policy.json` que defina la política de IAM para su carga de trabajo. Esto proporciona acceso de lectura al script y a los datos almacenados en buckets públicos de S3 y acceso de lectura y escritura a `amzn-s3-demo-bucket`. 
**importante**  
Sustituya `amzn-s3-demo-bucket` en la política que aparece a continuación por el nombre real del bucket creado en [Preparar el almacenamiento para EMR sin servidor](#gs-prepare-storage). Esta es una política básica para el acceso a AWS Glue y S3. Para ver más ejemplos de roles de ejecución de trabajos, consulte [Roles en tiempo de ejecución de trabajo para Amazon EMR sin servidor](security-iam-runtime-role.md).

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. Cree una política de IAM denominada `EMRServerlessS3AndGlueAccessPolicy` con el archivo de políticas que creó en el **Paso 3**. Tome nota del ARN en el resultado, ya que utilizará el ARN de la nueva política en el siguiente paso. 

   ```
   aws iam create-policy \
       --policy-name EMRServerlessS3AndGlueAccessPolicy \
       --policy-document file://emr-sample-access-policy.json
   ```

   Anote el ARN de la nueva política en el resultado. Lo sustituirá `policy-arn` en el siguiente paso.

1. Adjunte la política de IAM `EMRServerlessS3AndGlueAccessPolicy` al rol `EMRServerlessS3RuntimeRole` del tiempo de ejecución del trabajo.

   ```
   aws iam attach-role-policy \
       --role-name EMRServerlessS3RuntimeRole \
       --policy-arn policy-arn
   ```

------