

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Référence des commandes CLI EMRFS
<a name="emrfs-cli-reference"></a>

L'interface de ligne de commande EMRFS est installée par défaut sur tous les nœuds principaux du cluster créé à l'aide de Amazon EMR 3.2.1 ou version supérieure. Vous pouvez utiliser l'interface de ligne de commande EMRFS pour gérer les métadonnées pour la vue cohérente. 

**Note**  
La **emrfs** commande n'est prise en charge qu'avec l'émulation de VT100 terminal. Cependant, elle peut fonctionner avec les autres modes d'émulateur de terminal.

## Commande emrfs de niveau supérieur
<a name="emrfs-top-level"></a>

La commande **emrfs** de niveau supérieur prend en charge la structure suivante.

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

Spécifiez des [options], avec ou sans arguments, comme décrit dans le tableau suivant. Pour les [options] spécifiques à des sous-commandes (`describe-metadata`, `set-metadata-capacity`, etc.), consultez chaque sous-commande ci-dessous.


**[Options] pour emrfs**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-a AWS_ACCESS_KEY_ID \| --access-key AWS_ACCESS_KEY_ID`  |  La clé AWS d'accès que vous utilisez pour écrire des objets sur Amazon S3 et pour créer ou accéder à un magasin de métadonnées dans DynamoDB. Par défaut, *AWS\$1ACCESS\$1KEY\$1ID* est défini sur la clé d'accès utilisée pour créer le cluster.  |  Non  | 
|  `-s AWS_SECRET_ACCESS_KEY \| --secret-key AWS_SECRET_ACCESS_KEY`  |  La clé AWS secrète associée à la clé d'accès que vous utilisez pour écrire des objets sur Amazon S3 et pour créer ou accéder à un magasin de métadonnées dans DynamoDB. Par défaut, *AWS\$1SECRET\$1ACCESS\$1KEY* est défini sur la clé secrète associée à la clé d'accès utilisée pour créer le cluster.  |  Non  | 
|  `-v \| --verbose`  |  Détaillez le résultat.  |  Non  | 
|  `-h \| --help`  |  Affiche le message d'aide pour la commande `emrfs` avec une instruction d'utilisation.  |  Non  | 

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


**[Options] pour emrfs describe-metadata**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 

**Example Exemple describe-metadata emrfs**  <a name="emrfs-describe-metadata"></a>
L'exemple suivant décrit la table de métadonnées par défaut.  

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

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


**[Options] pour emrfs set-metadata-capacity**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  La capacité de débit de lecture demandée pour la table de métadonnées. Si l'*READ\$1CAPACITY*argument n'est pas fourni, la valeur par défaut est`400`.  |  Non  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  La capacité de débit d'écriture demandée pour la table de métadonnées. Si l'*WRITE\$1CAPACITY*argument n'est pas fourni, la valeur par défaut est`100`.  |  Non  | 

**Example exemple d'emrfs set-metadata-capacity**  
L'exemple suivant définit la capacité de débit de lecture sur `600` et la capacité d'écriture sur `150` pour une table de métadonnées nommée `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
```

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


**[Options] pour emrfs delete-metadata**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 

**Example Exemple delete-metadata emrfs**  
L'exemple suivant supprime la table de métadonnées par défaut.  

```
$ emrfs delete-metadata
```

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


**[Options] pour emrfs create-metadata**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  La capacité de débit de lecture demandée pour la table de métadonnées. Si l'*READ\$1CAPACITY*argument n'est pas fourni, la valeur par défaut est`400`.  |  Non  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  La capacité de débit d'écriture demandée pour la table de métadonnées. Si l'*WRITE\$1CAPACITY*argument n'est pas fourni, la valeur par défaut est`100`.  |  Non  | 

**Example Exemple create-metadata emrfs**  
L'exemple suivant crée une table de métadonnée nommée `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
```

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

La sous-commande **emrfs list-metadata-stores** n'a aucune [option]. 

**Example List-metadata-stores exemple**  
L'exemple suivant répertorie vos tables de métadonnées.  

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

## Sous-commande diff emrfs
<a name="emrfs-diff"></a>


**[Options] pour emrfs diff**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 
|  *s3://s3Path*  |  Le chemin d'accès au compartiment Amazon S3 à comparer à la table des métadonnées. Synchronisation de compartiments de façon récursive.  |  Oui  | 

**Example Exemple diff emrfs**  
L'exemple suivant compare la table de métadonnées par défaut dans un compartiment 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
```

## Sous commande delete emrfs
<a name="emrfs-delete"></a>


**[Options] pour emrfs delete**  

|  Option  |  Description  |  Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 
|  *s3://s3Path*  |  Le chemin d'accès au compartiment Amazon S3 que vous suivez pour une vue cohérente. Synchronisation de compartiments de façon récursive.  |  Oui  | 
| -t TIME \$1 --time TIME |  L'heure d'expiration (interprétée à l'aide de l'argument d'unité de temps). Toutes les entrées de métadonnées antérieures à l'*TIME*argument sont supprimées pour le compartiment spécifié.  |  | 
|  `-u UNIT \| --time-unit UNIT`  |  La mesure utilisée pour interpréter l'argument temps (nanosecondes, microsecondes, millisecondes, secondes, minutes, heures ou jours). Si aucun argument n'est spécifié, la valeur par défaut est `days`.  |  | 
|  `--read-consumption READ_CONSUMPTION`  |  Le montant requis de débit de lecture disponible utilisé pour l'opération **delete**. Si l'*READ\$1CONSUMPTION*argument n'est pas spécifié, la valeur par défaut est`400`.  |  Non   | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Le montant requis de débit d'écriture disponible utilisé pour l'opération **delete**. Si l'*WRITE\$1CONSUMPTION*argument n'est pas spécifié, la valeur par défaut est`100`.  |  Non  | 

**Example Exemple delete emrfs**  
L'exemple suivant supprime tous les objets dans un compartiment Amazon S3 depuis les métadonnées de suivi pour une vue cohérente.  

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

## Sous commande import emrfs
<a name="emrfs-import"></a>


**[Options] pour emrfs import**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 
|  *s3://s3Path*  |  Le chemin d'accès au compartiment Amazon S3 que vous suivez pour une vue cohérente. Synchronisation de compartiments de façon récursive.  |  Oui  | 
|  `--read-consumption READ_CONSUMPTION`  |  Le montant requis de débit de lecture disponible utilisé pour l'opération **delete**. Si l'*READ\$1CONSUMPTION*argument n'est pas spécifié, la valeur par défaut est`400`.  |  Non  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Le montant requis de débit d'écriture disponible utilisé pour l'opération **delete**. Si l'*WRITE\$1CONSUMPTION*argument n'est pas spécifié, la valeur par défaut est`100`.  |  Non  | 

**Example Exemple import emrfs**  
L'exemple suivant importe tous les objets dans un compartiment Amazon S3 avec les métadonnées de suivi pour une vue cohérente. Toutes les clés inconnus sont ignorées.  

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

## Sous-commande sync emrfs
<a name="emrfs-sync"></a>


**[Options] pour emrfs sync**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*est le nom de la table de métadonnées DynamoDB. Si l'*METADATA\$1NAME*argument n'est pas fourni, la valeur par défaut est`EmrFSMetadata`.  |  Non  | 
|  *s3://s3Path*  |  Le chemin d'accès au compartiment Amazon S3 que vous suivez pour une vue cohérente. Synchronisation de compartiments de façon récursive.  |  Oui  | 
|  `--read-consumption READ_CONSUMPTION`  |  Le montant requis de débit de lecture disponible utilisé pour l'opération **delete**. Si l'*READ\$1CONSUMPTION*argument n'est pas spécifié, la valeur par défaut est`400`.  |  Non  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Le montant requis de débit d'écriture disponible utilisé pour l'opération **delete**. Si l'*WRITE\$1CONSUMPTION*argument n'est pas spécifié, la valeur par défaut est`100`.  |  Non  | 

**Example Exemple commande sync emrfs**  
L'exemple suivant importe tous les objets dans un compartiment Amazon S3 avec les métadonnées de suivi pour une vue cohérente. Toutes les clés inconnues sont supprimées.   

```
$ 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
```

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


**[Options] pour emrfs read-sqs**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*est le nom de la file d'attente Amazon SQS configurée dans. `emrfs-site.xml` La valeur par défaut est **EMRFS-Inconsistency-<jobFlowId>**.  |  Oui  | 
|  `-o OUTPUT_FILE \| --output-file OUTPUT_FILE`  |  *OUTPUT\$1FILE*est le chemin d'accès au fichier de sortie sur le système de fichiers local du nœud maître. Les messages lus depuis la file d'attente sont écrits dans ce fichier.   |  Oui  | 

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


**[Options] pour emrfs delete-sqs**  

| Option  | Description  | Obligatoire  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*est le nom de la file d'attente Amazon SQS configurée dans. `emrfs-site.xml` La valeur par défaut est **EMRFS-Inconsistency-<jobFlowId>**.  |  Oui  | 

## Soumission de commandes CLI EMRFS comme étapes
<a name="emrfs-submit-steps-as-cli"></a>

L'exemple suivant montre comment utiliser l'`emrfs`utilitaire sur le nœud principal en tirant parti de l'API AWS CLI or et en exécutant la `command-runner.jar` `emrfs` commande en tant qu'étape par étape. L'exemple utilise l'étape AWS SDK pour Python (Boto3) pour ajouter une étape à un cluster qui ajoute des objets d'un compartiment Amazon S3 à la table de métadonnées EMRFS par défaut.

```
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()
```

Vous pouvez utiliser la valeur `step_id` pour vérifier les journaux concernant le résultat de l'opération.