

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.

# 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.