

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Riferimento ai comandi CLI di EMRFS
<a name="emrfs-cli-reference"></a>

Per impostazione predefinita, la CLI di EMRFS è installata su tutti i nodi master del cluster creati utilizzando Amazon EMR versione 3.2.1 o versioni successive. Puoi utilizzare la CLI di EMRFS per gestire i metadati per la visualizzazione coerente. 

**Nota**  
Il **emrfs** comando è supportato solo con VT100 l'emulazione di terminale. Tuttavia, può funzionare anche con altre modalità emulatore di terminale.

## Commando di livello superiore emrfs
<a name="emrfs-top-level"></a>

Il comando di livello superiore **emrfs** supporta la struttura seguente.

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

Specifica [opzioni], con o senza [argomenti] come descritto nella tabella seguente. Per [opzioni] specifiche a sottocomandi (`describe-metadata`, `set-metadata-capacity`, ecc.), consulta ogni sottocomando elencato di seguito.


**[Opzioni] per emrfs**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-a {{AWS_ACCESS_KEY_ID}} \| --access-key {{AWS_ACCESS_KEY_ID}}` | La chiave di AWS accesso che usi per scrivere oggetti su Amazon S3 e per creare o accedere a un archivio di metadati in DynamoDB. Per impostazione predefinita, {{AWS\_ACCESS\_KEY\_ID}} è impostata sulla chiave di accesso utilizzata per creare il cluster. | No | 
| `-s {{AWS_SECRET_ACCESS_KEY}} \| --secret-key {{AWS_SECRET_ACCESS_KEY}}` | La chiave AWS segreta associata alla chiave di accesso utilizzata per scrivere oggetti su Amazon S3 e per creare o accedere a un archivio di metadati in DynamoDB. Per impostazione predefinita, {{AWS\_SECRET\_ACCESS\_KEY}} è impostata sulla chiave segreta associata alla chiave di accesso utilizzata per creare il cluster. | No | 
| `-v \| --verbose` | Fornisce un output dettagliato. | No | 
| `-h \| --help` | Visualizza il messaggio di aiuto per il comando `emrfs` con un'istruzione di utilizzo. | No | 

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


**[Opzioni] per emrfs describe-metadata**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 

**Example Esempio di emrfs describe-metadata**  <a name="emrfs-describe-metadata"></a>
L'esempio seguente descrive la tabella di metadati di default.  

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

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


**[Opzioni] per emrfs set-metadata-capacity**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 
| `-r {{READ_CAPACITY}} \| --read-capacity {{READ_CAPACITY}}` | La capacità di throughput di lettura necessaria per la tabella di metadati. Se l'{{READ\_CAPACITY}}argomento non viene fornito, il valore predefinito è`400`. | No | 
| `-w {{WRITE_CAPACITY}} \| --write-capacity {{WRITE_CAPACITY}}` | La capacità di throughput di scrittura necessaria per la tabella di metadati. Se l'{{WRITE\_CAPACITY}}argomento non viene fornito, il valore predefinito è`100`. | No | 

**Example esempio emrfs set-metadata-capacity**  
L'esempio seguente imposta la capacità di throughput di lettura su `600` e la capacità di scrittura su `150` per una tabella di metadati denominata `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
```

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


**[Opzioni] per emrfs delete-metadata**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 

**Example Esempio di emrfs delete-metadata**  
L'esempio seguente elimina la tabella di metadati di default.  

```
$ emrfs delete-metadata
```

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


**[Opzioni] per emrfs create-metadata**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 
| `-r {{READ_CAPACITY}} \| --read-capacity {{READ_CAPACITY}}` | La capacità di throughput di lettura necessaria per la tabella di metadati. Se l'{{READ\_CAPACITY}}argomento non viene fornito, il valore predefinito è`400`. | No | 
| `-w {{WRITE_CAPACITY}} \| --write-capacity {{WRITE_CAPACITY}}` | La capacità di throughput di scrittura necessaria per la tabella di metadati. Se l'{{WRITE\_CAPACITY}}argomento non viene fornito, il valore predefinito è`100`. | No | 

**Example Esempio di emrfs create-metadata**  
L'esempio seguente crea una tabella di metadati denominata `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
```

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

Il sottocomando **emrfs list-metadata-stores** non ha [opzioni]. 

**Example List-metadata-stores esempio**  
L'esempio seguente elenca le tabelle di metadati.  

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

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


**[Opzioni] per emrfs diff**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 
| {{s3://s3Path}} | Il percorso al bucket Amazon S3 da comparare alla tabella di metadati. Sincronizzazione ricorsiva dei bucket. | Sì | 

**Example Esempio di emrfs diff**  
L'esempio seguente compara la tabella di metadati di default a un bucket 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
```

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


**[Opzioni] per emrfs delete**  

|  Opzione  |  Description  |  Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 
| {{s3://s3Path}} | Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket. | Sì | 
| -t {{TIME}} \| --time {{TIME}} | La data di scadenza (interpretata utilizzando l'argomento dell'unità di tempo). Tutte le voci di metadati precedenti all'{{TIME}}argomento vengono eliminate per il bucket specificato. |  | 
| `-u {{UNIT}} \| --time-unit {{UNIT}}` | La misura utilizzata per interpretare l'argomento di tempo (nanosecondi, microsecondi, millisecondi, secondi, minuti, ore o giorni). Se nessun argomento è specificato, il valore di default è `days`. |  | 
| `--read-consumption {{READ_CONSUMPTION}}` | La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione **delete**. Se l'{{READ\_CONSUMPTION}}argomento non è specificato, il valore predefinito è. `400` | No  | 
| `--write-consumption {{WRITE_CONSUMPTION}}` | La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione **delete**. Se l'{{WRITE\_CONSUMPTION}}argomento non è specificato, il valore predefinito è`100`. | No | 

**Example Esempio di emrfs delete**  
L'esempio seguente rimuove tutti gli oggetti in un bucket Amazon S3 dai metadati di monitoraggio per la visualizzazione coerente.  

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

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


**[Opzioni] per emrfs import**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 
| {{s3://s3Path}} | Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket. | Sì | 
| `--read-consumption {{READ_CONSUMPTION}}` | La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione **delete**. Se l'{{READ\_CONSUMPTION}}argomento non è specificato, il valore predefinito è`400`. | No | 
| `--write-consumption {{WRITE_CONSUMPTION}}` | La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione **delete**. Se l'{{WRITE\_CONSUMPTION}}argomento non è specificato, il valore predefinito è`100`. | No | 

**Example Esempio di emrfs import**  
L'esempio seguente importa tutti gli oggetti in un bucket Amazon S3 con i metadati di monitoraggio per la visualizzazione coerente. Tutte le chiavi sconosciute vengono ignorate.  

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

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


**[Opzioni] per emrfs sync**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}}è il nome della tabella di metadati DynamoDB. Se l'{{METADATA\_NAME}}argomento non viene fornito, il valore predefinito è. `EmrFSMetadata` | No | 
| {{s3://s3Path}} | Il percorso al bucket Amazon S3 monitorato per la visualizzazione coerente. Sincronizzazione ricorsiva dei bucket. | Sì | 
| `--read-consumption {{READ_CONSUMPTION}}` | La quantità richiesta di throughput di lettura disponibile utilizzata per l'operazione **delete**. Se l'{{READ\_CONSUMPTION}}argomento non è specificato, il valore predefinito è`400`. | No | 
| `--write-consumption {{WRITE_CONSUMPTION}}` | La quantità richiesta di throughput di scrittura disponibile utilizzata per l'operazione **delete**. Se l'{{WRITE\_CONSUMPTION}}argomento non è specificato, il valore predefinito è`100`. | No | 

**Example Esempio di comando emrfs sync**  
L'esempio seguente importa tutti gli oggetti in un bucket Amazon S3 con i metadati di monitoraggio per la visualizzazione coerente. Tutte le chiavi sconosciute vengono eliminate.   

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

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


**[Opzioni] per emrfs read-sqs**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-q {{QUEUE_NAME}} \| --queue-name {{QUEUE_NAME}}` | {{QUEUE\_NAME}}è il nome della coda Amazon SQS configurata in. `emrfs-site.xml` Il valore predefinito è **EMRFS-Inconsistency-<jobFlowId>**. | Sì | 
| `-o {{OUTPUT_FILE}} \| --output-file {{OUTPUT_FILE}}` | {{OUTPUT\_FILE}}è il percorso del file di output sul file system locale del nodo master. I messaggi letti dalla coda sono scritti su questo file.  | Sì | 

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


**[Opzioni] per emrfs delete-sqs**  

| Opzione  | Description  | Richiesto  | 
| --- | --- | --- | 
| `-q {{QUEUE_NAME}} \| --queue-name {{QUEUE_NAME}}` | {{QUEUE\_NAME}}è il nome della coda Amazon SQS configurata in. `emrfs-site.xml` Il valore predefinito è **EMRFS-Inconsistency-<jobFlowId>**. | Sì | 

## Invio di comandi della CLI di EMRFS come fasi
<a name="emrfs-submit-steps-as-cli"></a>

L'esempio seguente mostra come utilizzare l'`emrfs`utilità sul nodo master sfruttando l'API AWS CLI or e come `command-runner.jar` eseguire il `emrfs` comando in un unico passaggio. L'esempio utilizza AWS SDK per Python (Boto3) per aggiungere un passaggio a un cluster che aggiunge oggetti in un bucket Amazon S3 alla tabella di metadati EMRFS predefinita.

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

Puoi utilizzare il valore `step_id` restituito per verificare il risultato dell'operazione nei log.