

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.

# Consistent view
<a name="emr-plan-consistent-view"></a>

**aviso**  
El 1 de junio de 2023 será la fecha de fin de soporte estándar para la vista coherente de EMRFS en futuras versiones de Amazon EMR. La vista coherente de EMRFS seguirá funcionando en las versiones existentes.

Con el lanzamiento de Amazon S3 Strong read-after-write Coherence el 1 de diciembre de 2020, ya no necesitará usar la vista coherente de EMRFS (EMRFS CV) con sus clústeres de Amazon EMR. EMRFS CV es una función opcional que permite a los clústeres de Amazon EMR comprobar la lista y la coherencia de los objetos de read-after-write Amazon S3. Al crear un clúster y activar el CV de EMRFS, Amazon EMR crea una base de datos de Amazon DynamoDB para almacenar los metadatos de los objetos que utiliza para realizar un seguimiento de las listas y la coherencia de los objetos de S3. read-after-write Ahora puede desactivar la CV de EMRFS y eliminar la base de datos de DynamoDB que utiliza para no acumular costos adicionales. Los siguientes procedimientos explican cómo comprobar la característica de CV, desactivarla y eliminar la base de datos de DynamoDB que utiliza la característica.<a name="enable-emr-fs-console"></a>

**Para comprobar si está utilizando la característica de CV de EMRFS**

1. Navegue hasta la pestaña **Configuración**. Si el clúster tiene la siguiente configuración, utiliza CV de EMRFS.

   ```
   Classification=emrfs-site,Property=fs.s3.consistent,Value=true
   ```

1. [Como alternativa, puede utilizarla AWS CLI para describir el clúster con la API. `describe-cluster`](https://docs.aws.amazon.com/cli/latest/reference/emr/describe-cluster.html) Si el resultado contiene `fs.s3.consistent: true`, el clúster usa la CV de EMRFS.

**Para desactivar CV de EMRFS en sus clústeres de Amazon EMR**

Para desactivar la característica de CV de EMRFS, utilice una de las tres opciones siguientes. Debe probar estas opciones en su entorno de pruebas antes de aplicarlas a sus entornos de producción.

1. 

**Para detener su clúster existente e iniciar uno nuevo sin las opciones de la CV de EMRFS**

   1. Antes de detener el clúster, asegúrese de hacer una copia de seguridad de los datos y de avisar a los usuarios.

   1. Para detener el clúster, siga las instrucciones de la sección [Terminar un clúster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminateJobFlow.html).

   1. Si utiliza la consola de Amazon EMR para crear un clúster nuevo, vaya a **Opciones avanzadas**. En la sección **Editar configuración de software**, anule la selección de la opción para activar la CV de EMRFS. Si la casilla que corresponde a la **vista coherente de EMRFS** está disponible, manténgala desmarcada.

   1. Si solías AWS CLI crear un clúster nuevo con la [`create-cluster`API](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html), no utilices la `--emrfs` opción, que activa EMRFS CV.

   1. Si utilizas un SDK o CloudFormation para crear un clúster nuevo, no utilices ninguna de las configuraciones que se muestran en [Configurar la vista coherente](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html).

1. 

**Para clonar un clúster y eliminar el CV de EMRFS**

   1. En la consola de Amazon EMR, elija el clúster que usa CV de EMRFS.

   1. En la parte superior de la página **Detalles del clúster**, elija **Clonar**.

   1. Elija **Anterior** y vaya a **Paso 1: software y pasos**.

   1. En **Editar configuración de software**, elimine la CV de EMRFS. En **Editar configuración**, elimine las siguientes configuraciones de la clasificación `emrfs-site`. Si está cargando JSON desde un bucket de S3, debe modificar su objeto de S3.

      ```
      [
      	{"classification":
      		"emrfs-site",
      		"properties": {
      			"fs.s3.consistent.retryPeriodSeconds":"10",
      			"fs.s3.consistent":"true",
      			"fs.s3.consistent.retryCount":"5",
      			"fs.s3.consistent.metadata.tableName":"EmrFSMetadata"
      		}
      	}
      ]
      ```

1. 

**Para eliminar el CV de EMRFS de un clúster que usa grupos de instancias**

   1. Utilice el siguiente comando para comprobar si un único clúster de EMR utiliza la tabla de DynamoDB asociada al CV de EMRFS o si varios clústeres comparten la tabla. El nombre de la tabla se especifica en `fs.s3.consistent.metadata.tableName`, tal y como se describe en [Configuración de la vista coherente](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html). El nombre de tabla predeterminado que utiliza la CV de EMRFS es `EmrFSMetadata`.

      ```
      aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
      ```

   1. Si el clúster no comparte la base de datos de DynamoDB con otro clúster, utilice el siguiente comando para volver a configurar el clúster y desactivar la CV de EMRFS. Para obtener más información, consulte la sección [Reconfiguración de un grupo de instancias en un clúster en ejecución](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

      ```
      aws emr modify-instance-groups --cli-input-json file://disable-emrfs-1.json
      ```

      Este comando abre el archivo que desea modificar. Modifique el archivo con las siguientes configuraciones.

      ```
      {
      	"ClusterId": "j-xxxx",
      	"InstanceGroups": [
      		{
      			"InstanceGroupId": "ig-xxxx",
      			"Configurations": [
      				{
      					"Classification": "emrfs-site",
      					"Properties": {
      						"fs.s3.consistent": "false"
      					},
      					"Configurations": []
      				}
      			]
      		}
      	]
      }
      ```

   1. Si su clúster comparte la tabla de DynamoDB con otro clúster, desactive la CV de EMRFS en todos los clústeres cuando ningún clúster modifique ningún objeto de la ubicación de S3 compartida.

**Para eliminar los recursos de Amazon DynamoDB asociados al CV de EMRFS**

Después de eliminar el CV de EMRFS de sus clústeres de Amazon EMR, elimine los recursos de DynamoDB asociados al CV de EMRFS. Hasta que lo haga, seguirá incurriendo en cargos de DynamoDB asociados a la CV de EMRFS.

1. Compruebe las CloudWatch métricas de la tabla de DynamoDB y confirme que ningún clúster utilice la tabla.

1. Elimine la tabla de DynamoDB.

   ```
   aws dynamodb delete-table --table-name <your-table-name>
   ```

**Para eliminar los recursos de Amazon SQS asociados al CV de EMRFS**

1. Si configuró el clúster para enviar notificaciones de incoherencia a Amazon SQS, puede eliminar todas las colas de SQS.

1. Encuentre el nombre de cola de Amazon SQS se especifica en `fs.s3.consistent.notification.SQS.queueName`, tal y como se describe en [Configuración de la vista coherente](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html). El formato de nombre de cola predeterminado es `EMRFS-Inconsistency-<j-cluster ID>`.

   ```
   aws sqs list-queues | grep ‘EMRFS-Inconsistency’
   aws sqs delete-queue –queue-url <your-queue-url>
   ```

**Para dejar de usar la CLI de EMRFS**
+ La [CLI de EMRFS](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-cli-reference.html) administra los metadatos que genera la CV de EMRFS. Cuando el soporte estándar para la CV de EMRFS llegue a su fin en futuras versiones de Amazon EMR, el soporte para la CLI de EMRFS también lo hará. 

**Topics**
+ [Habilitación de la vista coherente](enable-consistent-view.md)
+ [Seguimiento de objetos de EMRFS mediante la vista consistente de Amazon S3](emrfs-files-tracked.md)
+ [Lógica de reintentos](emrfs-retry-logic.md)
+ [Metadatos de la vista consistente de EMRFS](emrfs-metadata.md)
+ [Configurar las notificaciones de coherencia para CloudWatch Amazon SQS](emrfs-configure-sqs-cw.md)
+ [Configuración de la vista coherente](emrfs-configure-consistent-view.md)
+ [La Referencia de los comandos de la CLI de EMRFS](emrfs-cli-reference.md)

# Habilitación de la vista coherente
<a name="enable-consistent-view"></a>

Puede habilitar el cifrado del lado del servidor de Amazon S3 o la vista coherente de EMRFS mediante la clasificación Consola de administración de AWS AWS CLI, o de configuración. `emrfs-site`<a name="enable-emr-fs-console"></a>

**Para configurar la vista consistente utilizando la consola**

1. Vaya hasta la nueva consola de Amazon EMR y seleccione **Ir a la consola antigua** en el panel de navegación lateral. Para más información sobre lo que puede esperar al cambiar a la consola antigua, consulte [Uso de la consola antigua](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

1. Elija **Crear clúster** e **Ir a las opciones avanzadas**.

1. Elija los valores de **Step 1: Software and Steps (Paso 1: Software y pasos)** y **Step 2: Hardware (Paso 2: Hardware)**. 

1. En **Step 3: General Cluster Settings (Paso 3: Configuración general del clúster)**, en **Additional Options (Opciones adicionales)**, elija **EMRFS consistent view (Vista consistente de EMRFS)**.

1. En **EMRFS Metadata store (Almacén de metadatos de EMRFS)**, escriba el nombre del almacén de metadatos. El valor predeterminado es **EmrFSMetadata**. Si la FSMetadata tabla Emr no existe, se crea automáticamente en DynamoDB.
**nota**  
Amazon EMR no elimina automáticamente los metadatos de EMRFS desde DynamoDB cuando se termina el clúster.

1. En **Number of retries (Número de reintentos)**, escriba un valor entero. Si se detecta una inconsistencia, EMRFS intenta llamar a Amazon S3 este número de veces. El valor predeterminado es **5**. 

1. En **Retry period (in seconds) (Período de reintento (en segundos))**, escriba un valor entero. Se trata de la cantidad de tiempo que EMRFS espera entre reintentos. El valor predeterminado es **10**.
**nota**  
Los reintentos siguientes utilizan un retardo exponencial. 

**Para lanzar un clúster con una vista coherente habilitada mediante el AWS CLI**

Le recomendamos que instale la versión actual de AWS CLI. Para descargar la versión más reciente, consulte [https://aws.amazon.com/cli/](https://aws.amazon.com/cli/).
+ 
**nota**  
Se incluyen caracteres de continuación de línea de Linux (\$1) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

  ```
  1. aws emr create-cluster --instance-type m5.xlarge --instance-count 3 --emrfs Consistent=true \
  2. --release-label emr-7.12.0 --ec2-attributes KeyName=myKey
  ```

**Para comprobar si la vista coherente está habilitada, utilice la Consola de administración de AWS**
+ Para comprobar si la vista consistente está habilitada en la consola, vaya a **Cluster List (Lista de clústeres)** y seleccione el nombre del clúster para ver los **Cluster Details (Detalles del clúster)**. El campo "EMRFS consistent view" tiene un valor de `Enabled` o `Disabled`.

**Para comprobar si la vista consistente está habilitada examinando el archivo `emrfs-site.xml`**
+ Puede comprobar si la consistencia está habilitada inspeccionando el archivo de configuración `emrfs-site.xml` en el nodo principal del clúster. Si el valor booleano para `fs.s3.consistent` se define en `true` entonces la vista consistente está habilitada para las operaciones del sistema de archivos que implican Amazon S3.

# Seguimiento de objetos de EMRFS mediante la vista consistente de Amazon S3
<a name="emrfs-files-tracked"></a>

EMRFS crea una vista consistente de los objetos en Amazon S3 agregando información sobre estos objetos a los metadatos de EMRFS. EMRFS añade estas listas a sus metadatos cuando:
+  Un objeto escrito por EMRFS durante el transcurso de un trabajo de Amazon EMR.
+  Un objeto se sincroniza con o se importa a los metadatos de EMRFS utilizando la CLI de EMRFS.

Los objetos leídos por EMRFS no se añaden automáticamente a los metadatos. Cuando EMRFS elimina un objeto, su entrada permanece en los metadatos con el estado eliminado hasta que dicha entrada se purga utilizando la CLI de EMRFS. Para obtener más información sobre la CLI, consulte [La Referencia de los comandos de la CLI de EMRFS](emrfs-cli-reference.md). Para obtener más información sobre la eliminación de listados en los metadatos de EMRFS, consulte [Metadatos de la vista consistente de EMRFS](emrfs-metadata.md).

Por cada operación de Amazon S3, EMRFS comprueba los metadatos para obtener información sobre el conjunto de objetos en la vista consistente. Si EMRFS detecta que Amazon S3 es inconsistente durante una de estas operaciones, vuelve a intentar la operación, de acuerdo con los parámetros definidos en las propiedades de configuración de `emrfs-site`. Cuando EMRFS agota los reintentos, genera una excepción `ConsistencyException` o registra la excepción y continúa el flujo de trabajo. Para obtener más información acerca de la lógica de reintentos, consulte [Lógica de reintentos](emrfs-retry-logic.md). Puede encontrar `ConsistencyExceptions` en sus registros, por ejemplo:
+  listStatus: ningún objeto de Amazon S3 para elemento de metadatos `/S3_bucket/dir/object`
+  getFileStatus: La clave `dir/file` está presente en los metadatos, pero no en Amazon S3

Si elimina un objeto directamente desde Amazon S3 y se está realizando su seguimiento en la vista consistente de EMRFS, EMRFS trata dicho objeto como inconsistente, ya que sigue apareciendo en los metadatos como presente en Amazon S3. Si los metadatos dejan de estar sincronizados con los objetos cuyo seguimiento realiza EMRFS en Amazon S3, puede utilizar el subcomando **sync** de la CLI de EMRFS para restablecer el estado de los metadatos de Amazon S3. Para descubrir discrepancias entre los metadatos y Amazon S3, utilice el comando **diff**. Por último, EMRFS solo tiene una vista consistente de los objetos a los que se hace referencia en los metadatos; puede haber otros objetos en la misma ruta de Amazon S3 de los que no se está realizando seguimiento. Cuando EMRFS muestra un listado de los objetos de una ruta de Amazon S3, devuelve el superconjunto de los objetos a los que se hace seguimiento en los metadatos y de los que están en esa ruta de Amazon S3.

# Lógica de reintentos
<a name="emrfs-retry-logic"></a>

EMRFS intenta comprobar la consistencia de la lista de objetos a los que se hace seguimiento en sus metadatos un número de reintentos específico. El valor predeterminado es 5. En caso de que el número de reintentos supere el trabajo de origen se devuelve un error, a menos que `fs.s3.consistent.throwExceptionOnInconsistency` se haya establecido en `false`, donde solo registrará los objetos marcados como inconsistentes. EMRFS utiliza una política de reintento de retardo exponencial de forma predeterminada, pero también puede establecer a una política fija. Es posible que los usuarios también deseen volver a intentar tras un periodo de tiempo determinado antes de proceder con el resto de su trabajo sin lanzar una excepción. Pueden conseguirlo configurando `fs.s3.consistent.throwExceptionOnInconsistency` en `false`, `fs.s3.consistent.retryPolicyType` en `fixed` y `fs.s3.consistent.retryPeriodSeconds` para el valor deseado. El siguiente ejemplo crea un clúster con la consistencia habilitada, que registra las inconsistencias y establece un intervalo de reintento fijo de 10 segundos:

**Example Establecimiento de un periodo de reintento en una cantidad fija**  

```
aws emr create-cluster --release-label emr-7.12.0 \
--instance-type m5.xlarge --instance-count 1 \
--emrfs Consistent=true,Args=[fs.s3.consistent.throwExceptionOnInconsistency=false, fs.s3.consistent.retryPolicyType=fixed,fs.s3.consistent.retryPeriodSeconds=10] --ec2-attributes KeyName=myKey
```

**nota**  
Se incluyen caracteres de continuación de línea de Linux (\$1) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

Para obtener más información, consulte [Consistent view](emr-plan-consistent-view.md).

## Las configuraciones de EMRFS para el IMDS obtienen llamadas regionales
<a name="randomized-exponential-backoff-retry"></a>

EMRFS se basa en el IMDS (servicio de metadatos de instancias) para obtener la región de la instancia y Amazon S3, DynamoDB o los puntos de enlace. AWS KMS Sin embargo, el IMDS tiene un límite en cuanto al número de solicitudes que puede gestionar y las que superen ese límite fallarán. Este límite del IMDS puede provocar errores en la inicialización de EMRFS y provocar un error en la consulta o el comando. Puede utilizar el siguiente mecanismo de reintentos de retroceso exponencial con asignación al azar y propiedades de configuración de una región alternativa en emrfs-site.xml para abordar el escenario en el que todos los reintentos fallan.

```
<property>
    <name>fs.s3.region.retryCount</name>
    <value>3</value>
    <description>
    Maximum retries that would be attempted to get AWS region.
    </description>
</property>
<property>
    <name>fs.s3.region.retryPeriodSeconds</name>
    <value>3</value>
    <description>
    Base sleep time in second for each get-region retry.
    </description>
</property>
<property>
    <name>fs.s3.region.fallback</name>
    <value>us-east-1</value>
    <description>
    Fallback to this region after maximum retries for getting AWS region have been reached.
    </description>
</property>
```

# Metadatos de la vista consistente de EMRFS
<a name="emrfs-metadata"></a>

La vista consistente de EMRFS realiza un seguimiento de la consistencia mediante una tabla de DynamoDB que permite controlar los objetos de Amazon S3 que se han creado o sincronizado con EMRFS. Los metadatos se utilizan para realizar un seguimiento de todas las operaciones (lectura, escritura, actualización y copia) y no se almacena ningún contenido real. Estos metadatos se utilizan para validar si los objetos o los metadatos recibidos desde Amazon S3 coinciden con lo que se espera. Esta confirmación permite a EMRFS comprobar la coherencia de la lista y read-after-write la coherencia de los nuevos objetos que EMRFS escribe en Amazon S3 o los objetos sincronizados con EMRFS. Varios clústeres pueden compartir los mismos metadatos.

**Cómo añadir entradas a metadatos**  
Puede utilizar los subcomandos `sync` o `import` para agregar entradas a los metadatos. `sync` refleja el estado de los objetos de Amazon S3 de una ruta, mientras que `import` se utiliza estrictamente para añadir entradas nuevas a los metadatos. Para obtener más información, consulte [La Referencia de los comandos de la CLI de EMRFS](emrfs-cli-reference.md).

**Cómo comprobar las diferencias entre metadatos y objetos en Amazon S3**  
Para comprobar si hay diferencias entre los metadatos y Amazon S3, utilice el subcomando `diff` de la CLI de EMRFS. Para obtener más información, consulte [La Referencia de los comandos de la CLI de EMRFS](emrfs-cli-reference.md).

**Cómo saber si las operaciones de metadatos se están limitando**  
EMRFS establece límites de capacidad de rendimiento predeterminados en los metadatos para sus operaciones de lectura y escritura en 500 y 100 unidades, respectivamente. Un gran número de objetos o buckets podría provocar que las operaciones superen esta capacidad, a partir de la cual se verán limitadas por DynamoDB. Por ejemplo, una aplicación podría hacer que EMRFS lance una `ProvisionedThroughputExceededException` si realiza una operación que supere estos límites de capacidad. Tras la limitación, la herramienta de CLI de EMRFS vuelve a intentar la escritura en la tabla de DynamoDB mediante [retroceso exponencial](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) hasta que finalice la operación o cuando alcance el máximo valor de reintento para escribir objetos desde Amazon EMR a Amazon S3. 

Puede configurar sus propios límites de la capacidad de rendimiento. Sin embargo, DynamoDB tiene límites de partición estrictos de 3000 unidades de capacidad de lectura RCUs () y 1000 unidades de capacidad de escritura WCUs () por segundo para las operaciones de lectura y escritura. Para evitar `sync` errores provocados por la limitación, le recomendamos que limite el rendimiento de las operaciones de lectura a menos de 3000 RCUs y el de las operaciones de escritura a menos de 1000. WCUs Para obtener instrucciones sobre cómo configurar límites de capacidad de rendimiento personalizados, consulte [Configuración de la vista coherente](emrfs-configure-consistent-view.md).

También puede ver CloudWatch las métricas de Amazon de sus metadatos de EMRFS en la consola de DynamoDB, donde puede ver el número de solicitudes de lectura y escritura limitadas. Si tiene un valor distinto de cero para las solicitudes limitadas, la aplicación podría potencialmente beneficiarse del aumento de capacidad de rendimiento asignada para operaciones de lectura o escritura. También puede obtener un beneficio de rendimiento si ve que sus operaciones se aproximan a la capacidad máxima de rendimiento asignada en lecturas o escrituras durante un periodo de tiempo prolongado.

**Características de rendimiento para operaciones de EMRFS notables**  
El valor predeterminado para las operaciones de lectura y escritura es de 400 y 100 unidades de capacidad de rendimiento, respectivamente. Las siguientes características de rendimiento le dan una idea del rendimiento necesario para determinadas operaciones. Estas pruebas se realizaron a través de clúster `m3.large` de un único nodo. Todas las operaciones tenían un único hilo. El rendimiento varia en gran medida en función de las características de la aplicación en particular y es posible que tenga que experimentar para optimizar las operaciones del sistema de archivos.


| Operación  | Promedio read-per-second  | Promedio write-per-second  | 
| --- | --- | --- | 
| create (objeto) | 26,79 |  6,70 | 
| delete (objeto) | 10,79 |  10,79 | 
| delete (directorio que contiene 1000 objetos) | 21,79 | 338,40  | 
|  getFileStatus(objeto) | 34,70 | 0  | 
| getFileStatus(directorio) | 19,96 | 0 | 
| listStatus (directorio que contiene un objeto) | 43,31 | 0 | 
| listStatus (directorio que contiene 10 objetos) | 44,34 | 0 | 
| listStatus (directorio que contiene 100 objetos) | 84,44 | 0 | 
| listStatus (directorio que contiene 1000 objetos) | 308,81 | 0 | 
| listStatus (directorio que contiene 10 000 objetos) | 416,05 | 0 | 
| listStatus (directorio que contiene 100 000 objetos) | 823,56 | 0 | 
| listStatus (directorio que contiene un millón de objetos) | 882,36 | 0 | 
| mkdir (continuo para 120 segundos)  | 24,18 | 4,03 | 
| mkdir | 12,59 | 0 | 
| rename (objeto) | 19,53 | 4,88 | 
| rename (directorio que contiene 1000 objetos) | 23,22 | 339,34 | 

**Para enviar un paso que elimina datos antiguos de su almacén de metadatos**  
Es posible que los usuarios deseen eliminar entradas particulares en los metadatos basados en DynamoDB. Esto puede ayudar a reducir los costos de almacenamiento asociados a la tabla. Los usuarios tienen la posibilidad de eliminar manualmente o mediante programación las entradas particulares a través del subcomando `delete` de la CLI de EMRFS. No obstante, si elimina las entradas desde los metadatos, EMRFS ya no realiza ninguna comprobación de consistencia.

La eliminación mediante programación tras la finalización de un trabajo puede realizarse enviando un último paso al clúster, que ejecuta un comando de la CLI de EMRFS. Por ejemplo, escriba el siguiente comando para enviar un paso a su clúster para eliminar todas las entradas de más de dos días.

```
aws emr add-steps --cluster-id j-2AL4XXXXXX5T9 --steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"]
{
    "StepIds": [
        "s-B12345678902"
    ]
}
```

Utilice el StepId valor devuelto para comprobar el resultado de la operación en los registros.

# Configurar las notificaciones de coherencia para CloudWatch Amazon SQS
<a name="emrfs-configure-sqs-cw"></a>

Puede habilitar CloudWatch las métricas y los mensajes de Amazon SQS en EMRFS para los posibles problemas de coherencia de Amazon S3. 

**CloudWatch**  
Cuando CloudWatch las métricas están habilitadas, se envía una métrica denominada **Inconsistencia** cada vez que se produce un error en una llamada a la `FileSystem` API debido a la coherencia final de Amazon S3. 

**Para ver CloudWatch las métricas de posibles problemas de coherencia de Amazon S3**

Para ver la métrica de **inconsistencia** en la CloudWatch consola, seleccione las métricas de EMRFS y, a continuación, seleccione un par **JobFlowId**/nombre de **métrica**. Por ejemplo, `j-162XXXXXXM2CU ListStatus`, `j-162XXXXXXM2CU GetFileStatus` etc.

1. Abra la consola en CloudWatch . [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. En el **Dashboard (Panel)**, en la sección **Metrics (Métricas)**, elija **EMRFS**. 

1. En el panel **Métricas del flujo de trabajos**, seleccione uno o más pares de **JobFlowId**/**Nombre de métrica**. Aparece una representación gráfica de las métricas en la ventana siguiente.

**Amazon SQS**  
Cuando están habilitadas las notificaciones de Amazon SQS, se crea una cola de Amazon SQS con el nombre `EMRFS-Inconsistency-<jobFlowId>` cuando se inicializa EMRFS. Los mensajes de Amazon SQS se envían en la cola cuando falla una llamada a la API de `FileSystem` debido a consistencia final de Amazon S3. El mensaje contiene información como la API JobFlowId, una lista de rutas incoherentes, un rastreo de pila, etc. Los mensajes se pueden leer a través de la consola de Amazon SQS o mediante el comando `read-sqs` de EMRFS.

**Para administrar mensajes de Amazon SQS para problemas de consistencia final de Amazon S3**

Los mensajes de Amazon SQS para problemas de consistencia final de Amazon S3 se pueden leer con la CLI de EMRFS. Para leer mensajes desde una cola de Amazon SQS de EMRFS, escriba el comando `read-sqs` y especifique una ubicación de salida en el sistema de archivos local del nodo maestro para el archivo de salida resultante. 

También puede eliminar una cola de Amazon SQS de EMRFS utilizando el comando `delete-sqs`.

1. Para leer los mensajes de una cola de Amazon SQS, escriba el siguiente comando. *queuename*Sustitúyalo por el nombre de la cola de Amazon SQS que configuró y */path/filename* sustitúyalo por la ruta al archivo de salida:

   ```
   emrfs read-sqs --queue-name queuename --output-file /path/filename
   ```

   Por ejemplo, para leer y generar mensajes de Amazon SQS desde la cola predeterminada, escriba:

   ```
   emrfs read-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU --output-file /path/filename
   ```
**nota**  
También puede utilizar los accesos directos `-q` y `-o` en lugar de `--queue-name` y `--output-file` respectivamente.

1. Para eliminar una cola de Amazon SQS, escriba el comando siguiente:

   ```
   emrfs delete-sqs --queue-name queuename
   ```

   Por ejemplo, para eliminar la cola predeterminada, escriba:

   ```
   emrfs delete-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU
   ```
**nota**  
También puede utilizar el acceso directo `-q` en lugar de `--queue-name`.

# Configuración de la vista coherente
<a name="emrfs-configure-consistent-view"></a>

Puede configurar ajustes adicionales para la vista consistente mediante las propiedades de configuración de `emrfs-site`. Por ejemplo, puede elegir otra opción predeterminada de rendimiento de DynamoDB suministrando los siguientes argumentos a la opción `--emrfs` de la CLI, utilizando la clasificación de configuración emrfs-site (solo para Amazon EMR versión 4.x y posteriores), o mediante una acción de arranque para configurar el archivo emrfs-site.xml en el nodo maestro:

**Example Cambio de valores de lectura y escritura de metadatos predeterminados en el lanzamiento del clúster**  

```
aws emr create-cluster --release-label emr-7.12.0 --instance-type m5.xlarge \
--emrfs Consistent=true,Args=[fs.s3.consistent.metadata.read.capacity=600,\
fs.s3.consistent.metadata.write.capacity=300] --ec2-attributes KeyName=myKey
```

De forma alternativa, utilice el siguiente archivo de configuración y guárdelo de forma local o en Amazon S3:

```
[
    {
      "Classification": "emrfs-site",
      "Properties": {
        "fs.s3.consistent.metadata.read.capacity": "600",
        "fs.s3.consistent.metadata.write.capacity": "300"
      }
    }
 ]
```

Utilice la configuración que ha creado con la siguiente sintaxis:

```
aws emr create-cluster --release-label emr-7.12.0 --applications Name=Hive \
--instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json
```

**nota**  
Se incluyen caracteres de continuación de línea de Linux (\$1) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

Las siguientes opciones se pueden configurar mediante configuraciones o AWS CLI `--emrfs` argumentos. Para obtener información sobre estos argumentos, consulte [Referencia de comandos de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/).


**Propiedades `emrfs-site.xml` para vista coherente**  

| Propiedad  | Predeterminado | Description (Descripción)  | 
| --- | --- | --- | 
| fs.s3.consistent | false |  Cuando se establece en **true**, esta propiedad configura EMRFS para utilizar DynamoDB para proporcionar consistencia.  | 
| fs.s3.consistent.retryPolicyType | exponential | Esta propiedad identifica la política que utilizar a la hora de volver a intentar los problemas de consistencia. Las opciones incluyen: exponential, fixed o none. | 
| fs.s3.consistent.retryPeriodSeconds | 1 | Esta propiedad establece la duración que esperar entre la reintentos de consistencia. | 
| fs.s3.consistent.retryCount | 10 | Esta propiedad establece el número máximo de reintentos cuando se detecta inconsistencia. | 
| fs.s3.consistent.throwExceptionOnInconsistency | true | Esta propiedad determina si lanzar o registrar una excepción de consistencia. Cuando se establece en true, se lanza una ConsistencyException. | 
| fs.s3.consistent.metadata.autoCreate | true | Cuando se establece en true, esta propiedad habilita la creación automática de tablas de metadatos. | 
| fs.s3.consistent.metadata.etag.verification.enabled | true | Con Amazon EMR 5.29.0, esta propiedad está habilitada de forma predeterminada. Cuando está activado, EMRFS utiliza S3 ETags para comprobar que los objetos que se están leyendo son de la última versión disponible. Esta función resulta útil para los casos de read-after-update uso en los que los archivos de S3 se sobrescriben y conservan el mismo nombre. Esta capacidad de ETag verificación no funciona actualmente con S3 Select. | 
| fs.s3.consistent.metadata.tableName | EmrFSMetadata | Esta propiedad especifica el nombre de la tabla de metadatos en DynamoDB. | 
| fs.s3.consistent.metadata.read.capacity | 500 | Esta propiedad especifica la capacidad de lectura de DynamoDB para aprovisionar cuando se crea la tabla de metadatos. | 
| fs.s3.consistent.metadata.write.capacity | 100 | Esta propiedad especifica la capacidad de escritura de DynamoDB para aprovisionar cuando se crea la tabla de metadatos. | 
| fs.s3.consistent.fastList | true | Cuando se establece en true, esta propiedad utiliza varios subprocesos para mostrar un directorio (cuando sea necesario). La consistencia debe estar habilitada para utilizar esta propiedad. | 
| fs.s3.consistent.fastList.prefetchMetadata | false | Cuando se establece en true, esta propiedad habilita la captura previa de metadatos para los directorios que contengan más de 20 000 elementos. | 
| fs.s3.consistent.notification.CloudWatch | false | Cuando se establece entrue, CloudWatch las métricas se habilitan para las llamadas a la FileSystem API que fallan debido a posibles problemas de coherencia de Amazon S3. | 
| fs.s3.consistent.notification.SQS | false | Cuando se establece en true, las notificaciones de consistencia final se envían a una cola de Amazon SQS. | 
| fs.s3.consistent.notification.SQS.queueName | EMRFS-Inconsistency-<jobFlowId> | Cambiar esta propiedad le permite especificar su propio nombre de cola de SQS para mensajes relativos a problemas de consistencia final de Amazon S3. | 
| fs.s3.consistent.notification.SQS.customMsg | none | Esta propiedad le permite especificar información personalizada incluida en mensajes de SQS relativos a problemas de consistencia final de Amazon S3. Si no se especifica ningún valor para esta propiedad, el campo correspondiente en el mensaje está vacío.  | 
| fs.s3.consistent.dynamodb.endpoint | none | Esta propiedad le permite especificar un punto de enlace de DynamoDB personalizado para sus metadatos de vista consistente. | 
| fs.s3.useRequesterPaysHeader | false | Si se establece en true, esta propiedad permite que Amazon S3 envíe solicitudes a buckets con la opción de pagador de solicitudes habilitada.  | 

# La Referencia de los comandos de la CLI de EMRFS
<a name="emrfs-cli-reference"></a>

La CLI de EMRFS se instala de forma predeterminada en todos los nodos principales del clúster creados con la versión 3.2.1 o posterior de Amazon EMR. Puede utilizar la CLI de EMRFS para administrar los metadatos de la vista consistente. 

**nota**  
El **emrfs** comando solo se admite con la emulación de VT100 terminal. Sin embargo, podría funcionar con otros modos de emulador del terminal.

## comando de nivel superior emrfs
<a name="emrfs-top-level"></a>

El comando de nivel superior **emrfs** admite la siguiente estructura.

```
emrfs [describe-metadata | set-metadata-capacity | delete-metadata | create-metadata | \
list-metadata-stores | diff | delete | sync | import ] [options] [arguments]
```

Especifique [opciones], con o sin [argumentos] tal y como se describe en la siguiente tabla. Para [opciones] específicas de subcomandos (`describe-metadata`, `set-metadata-capacity`, etc.), consulte cada subcomando a continuación.


**[Opciones] para emrfs**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-a AWS_ACCESS_KEY_ID \| --access-key AWS_ACCESS_KEY_ID`  |  La clave de AWS acceso que utiliza para escribir objetos en Amazon S3 y para crear o acceder a un almacén de metadatos en DynamoDB. De forma predeterminada, *AWS\$1ACCESS\$1KEY\$1ID* se establece en la clave de acceso utilizada para crear el clúster.  |  No  | 
|  `-s AWS_SECRET_ACCESS_KEY \| --secret-key AWS_SECRET_ACCESS_KEY`  |  La clave AWS secreta asociada a la clave de acceso que utiliza para escribir objetos en Amazon S3 y para crear o acceder a un almacén de metadatos en DynamoDB. De forma predeterminada, *AWS\$1SECRET\$1ACCESS\$1KEY* se establece en la clave secreta asociada a la clave de acceso utilizada para crear el clúster.  |  No  | 
|  `-v \| --verbose`  |  Hace que la salida sea detallada.  |  No  | 
|  `-h \| --help`  |  Muestra el mensaje de ayuda para el comando `emrfs` con una declaración de uso.  |  No  | 

## subcomando emrfs describe-metadata
<a name="emrfs-describe-metadata"></a>


**[Opciones] para emrfs describe-metadata**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 

**Example ejemplo de emrfs describe-metadata**  <a name="emrfs-describe-metadata"></a>
En el siguiente ejemplo se describe la tabla de metadatos predeterminados.  

```
$ emrfs describe-metadata
EmrFSMetadata
  read-capacity: 400
  write-capacity: 100
  status: ACTIVE
  approximate-item-count (6 hour delay): 12
```

## subcomando emrfs set-metadata-capacity
<a name="emrfs-set-metadata-capacity"></a>


**[Opciones] para emrfs set-metadata-capacity**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  La capacidad de rendimiento de lectura solicitada para la tabla de metadatos. Si no se proporciona el *READ\$1CAPACITY* argumento, el valor predeterminado es`400`.  |  No  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  La capacidad de rendimiento de escritura solicitada para la tabla de metadatos. Si no se proporciona el *WRITE\$1CAPACITY* argumento, el valor predeterminado es`100`.  |  No  | 

**Example ejemplo de emrfs set-metadata-capacity**  
El siguiente ejemplo establece la capacidad de rendimiento de lectura en `600` y la capacidad de escritura en `150` para una tabla de metadatos denominada `EmrMetadataAlt`.  

```
$ emrfs set-metadata-capacity --metadata-name EmrMetadataAlt  --read-capacity 600 --write-capacity 150
  read-capacity: 400
  write-capacity: 100
  status: UPDATING
  approximate-item-count (6 hour delay): 0
```

## subcomando emrfs delete-metadata
<a name="emrfs-delete-metadata"></a>


**[Opciones] para emrfs delete-metadata**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 

**Example ejemplo de emrfs delete-metadata**  
En el siguiente ejemplo se elimina la tabla de metadatos predeterminados.  

```
$ emrfs delete-metadata
```

## subcomando emrfs create-metadata
<a name="emrfs-create-metadata"></a>


**[Opciones] para emrfs create-metadata**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  La capacidad de rendimiento de lectura solicitada para la tabla de metadatos. Si no se proporciona el *READ\$1CAPACITY* argumento, el valor predeterminado es`400`.  |  No  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  La capacidad de rendimiento de escritura solicitada para la tabla de metadatos. Si no se proporciona el *WRITE\$1CAPACITY* argumento, el valor predeterminado es`100`.  |  No  | 

**Example ejemplo de emrfs create-metadata**  
El siguiente ejemplo crea una tabla de metadatos denominada `EmrFSMetadataAlt`.  

```
$ emrfs create-metadata -m EmrFSMetadataAlt
Creating metadata: EmrFSMetadataAlt
EmrFSMetadataAlt
  read-capacity: 400
  write-capacity: 100
  status: ACTIVE
  approximate-item-count (6 hour delay): 0
```

## subcomando emrfs list-metadata-stores
<a name="emrfs-list-metadata-stores"></a>

El subcomando **emrfs list-metadata-stores** no tiene opciones. 

**Example List-metadata-stores ejemplo**  
El siguiente ejemplo muestra las tablas de metadatos.  

```
$ emrfs list-metadata-stores
  EmrFSMetadata
```

## subcomando emrfs diff
<a name="emrfs-diff"></a>


**[Opciones] para emrfs diff**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 
|  *s3://s3Path*  |  La ruta del bucket de Amazon S3 que se debe comparar con la tabla de metadatos. Los buckets se sincronizan de forma recursiva.  |  Sí  | 

**Example ejemplo de emrfs diff**  
En el siguiente ejemplo se compara la tabla de metadatos predeterminados con un bucket de Amazon S3.  

```
$ emrfs diff s3://elasticmapreduce/samples/cloudfront
BOTH | MANIFEST ONLY | S3 ONLY
DIR elasticmapreduce/samples/cloudfront
DIR elasticmapreduce/samples/cloudfront/code/
DIR elasticmapreduce/samples/cloudfront/input/
DIR elasticmapreduce/samples/cloudfront/logprocessor.jar
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-14.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-15.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-16.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-17.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-18.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-19.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-20.WxYz1234
DIR elasticmapreduce/samples/cloudfront/code/cloudfront-loganalyzer.tgz
```

## subcomando emrfs delete
<a name="emrfs-delete"></a>


**[Opciones] para emrfs delete**  

|  Opción  |  Description (Descripción)  |  Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 
|  *s3://s3Path*  |  La ruta al bucket de Amazon S3 que está siguiendo para una vista coherente. Los buckets se sincronizan de forma recursiva.  |  Sí  | 
| -t TIME \$1 --time TIME |  La fecha de vencimiento (interpretada con el argumento de unidad de tiempo). Todas las entradas de metadatos anteriores al *TIME* argumento se eliminan del depósito especificado.  |  | 
|  `-u UNIT \| --time-unit UNIT`  |  La medida utilizada para interpretar el argumento de tiempo (nanosegundos, microsegundos, milisegundos, segundos, minutos, horas o días). Si no se especifica ningún argumento, el valor predeterminado es `days`.  |  | 
|  `--read-consumption READ_CONSUMPTION`  |  La cantidad solicitada de rendimiento de lectura disponible utilizada para la operación **delete**. Si no se especifica el *READ\$1CONSUMPTION* argumento, el valor predeterminado es`400`.  |  No   | 
|  `--write-consumption WRITE_CONSUMPTION`  |  La cantidad solicitada de rendimiento de escritura disponible utilizada para la operación **delete**. Si no se especifica el *WRITE\$1CONSUMPTION* argumento, el valor predeterminado es`100`.  |  No  | 

**Example ejemplo de emrfs delete**  
El siguiente ejemplo elimina todos los objetos en un bucket de Amazon S3 desde los metadatos de seguimiento para una vista consistente.  

```
$ emrfs delete s3://elasticmapreduce/samples/cloudfront
entries deleted: 11
```

## subcomando emrfs import
<a name="emrfs-import"></a>


**[Opciones] para emrfs import**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 
|  *s3://s3Path*  |  La ruta al bucket de Amazon S3 que está siguiendo para una vista coherente. Los buckets se sincronizan de forma recursiva.  |  Sí  | 
|  `--read-consumption READ_CONSUMPTION`  |  La cantidad solicitada de rendimiento de lectura disponible utilizada para la operación **delete**. Si no se especifica el *READ\$1CONSUMPTION* argumento, el valor predeterminado es`400`.  |  No  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  La cantidad solicitada de rendimiento de escritura disponible utilizada para la operación **delete**. Si no se especifica el *WRITE\$1CONSUMPTION* argumento, el valor predeterminado es`100`.  |  No  | 

**Example ejemplo de emrfs import**  
El siguiente ejemplo importa todos los objetos en un bucket de Amazon S3 con los metadatos de seguimiento para una vista consistente. Todas las claves desconocidas se omiten.  

```
$ emrfs import s3://elasticmapreduce/samples/cloudfront
```

## subcomando emrfs sync
<a name="emrfs-sync"></a>


**[Opciones] para emrfs sync**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*es el nombre de la tabla de metadatos de DynamoDB. Si no se proporciona el *METADATA\$1NAME* argumento, el valor predeterminado es. `EmrFSMetadata`  |  No  | 
|  *s3://s3Path*  |  La ruta al bucket de Amazon S3 que está siguiendo para una vista coherente. Los buckets se sincronizan de forma recursiva.  |  Sí  | 
|  `--read-consumption READ_CONSUMPTION`  |  La cantidad solicitada de rendimiento de lectura disponible utilizada para la operación **delete**. Si no se especifica el *READ\$1CONSUMPTION* argumento, el valor predeterminado es`400`.  |  No  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  La cantidad solicitada de rendimiento de escritura disponible utilizada para la operación **delete**. Si no se especifica el *WRITE\$1CONSUMPTION* argumento, el valor predeterminado es`100`.  |  No  | 

**Example ejemplo de comando emrfs sync**  
El siguiente ejemplo importa todos los objetos en un bucket de Amazon S3 con los metadatos de seguimiento para una vista consistente. Todas las claves desconocidas se eliminan.   

```
$ emrfs sync s3://elasticmapreduce/samples/cloudfront
Synching samples/cloudfront                                       0 added | 0 updated | 0 removed | 0 unchanged
Synching samples/cloudfront/code/                                 1 added | 0 updated | 0 removed | 0 unchanged
Synching samples/cloudfront/                                      2 added | 0 updated | 0 removed | 0 unchanged
Synching samples/cloudfront/input/                                9 added | 0 updated | 0 removed | 0 unchanged
Done synching s3://elasticmapreduce/samples/cloudfront            9 added | 0 updated | 1 removed | 0 unchanged
creating 3 folder key(s)
folders written: 3
```

## subcomando emrfs read-sqs
<a name="emrfs-read-sqs"></a>


**[Opciones] para emrfs read-sqs**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*es el nombre de la cola de Amazon SQS configurada en. `emrfs-site.xml` El valor predeterminado es **EMRFS-Inconsistency-<jobFlowId>**.  |  Sí  | 
|  `-o OUTPUT_FILE \| --output-file OUTPUT_FILE`  |  *OUTPUT\$1FILE*es la ruta al archivo de salida en el sistema de archivos local del nodo maestro. Los mensajes leídos desde la cola se escriben en este archivo.   |  Sí  | 

## subcomando emrfs delete-sqs
<a name="emrfs-delete-sqs"></a>


**[Opciones] para emrfs delete-sqs**  

| Opción  | Description (Descripción)  | Obligatorio  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*es el nombre de la cola de Amazon SQS configurada en. `emrfs-site.xml` El valor predeterminado es **EMRFS-Inconsistency-<jobFlowId>**.  |  Sí  | 

## Envío de comandos de CLI EMRFS CLI como pasos
<a name="emrfs-submit-steps-as-cli"></a>

El siguiente ejemplo muestra cómo utilizar la `emrfs` utilidad en el nodo principal aprovechando la API AWS CLI o y la `command-runner.jar` para ejecutar el `emrfs` comando paso a paso. En el ejemplo, se utiliza AWS SDK para Python (Boto3) para añadir un paso a un clúster que añade objetos de un bucket de Amazon S3 a la tabla de metadatos EMRFS predeterminada.

```
import boto3
from botocore.exceptions import ClientError


def add_emrfs_step(command, bucket_url, cluster_id, emr_client):
    """
    Add an EMRFS command as a job flow step to an existing cluster.

    :param command: The EMRFS command to run.
    :param bucket_url: The URL of a bucket that contains tracking metadata.
    :param cluster_id: The ID of the cluster to update.
    :param emr_client: The Boto3 Amazon EMR client object.
    :return: The ID of the added job flow step. Status can be tracked by calling
             the emr_client.describe_step() function.
    """
    job_flow_step = {
        "Name": "Example EMRFS Command Step",
        "ActionOnFailure": "CONTINUE",
        "HadoopJarStep": {
            "Jar": "command-runner.jar",
            "Args": ["/usr/bin/emrfs", command, bucket_url],
        },
    }

    try:
        response = emr_client.add_job_flow_steps(
            JobFlowId=cluster_id, Steps=[job_flow_step]
        )
        step_id = response["StepIds"][0]
        print(f"Added step {step_id} to cluster {cluster_id}.")
    except ClientError:
        print(f"Couldn't add a step to cluster {cluster_id}.")
        raise
    else:
        return step_id


def usage_demo():
    emr_client = boto3.client("emr")
    # Assumes the first waiting cluster has EMRFS enabled and has created metadata
    # with the default name of 'EmrFSMetadata'.
    cluster = emr_client.list_clusters(ClusterStates=["WAITING"])["Clusters"][0]
    add_emrfs_step(
        "sync", "s3://elasticmapreduce/samples/cloudfront", cluster["Id"], emr_client
    )


if __name__ == "__main__":
    usage_demo()
```

Puede utilizar el valor devuelto `step_id` para comprobar los registros para el resultado de la operación.