

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Die EMRFS-CLI-Befehlsreferenz
<a name="emrfs-cli-reference"></a>

Die EMRFS-CLI ist standardmäßig auf allen Cluster-Hauptknoten installiert, die mit Amazon EMR Version 3.2.1 oder höher erstellt wurden. Sie können die EMRFS CLI zum Verwalten der Metadaten für die konsistente Ansicht verwenden. 

**Anmerkung**  
Der **emrfs** Befehl wird nur mit VT100 Terminalemulation unterstützt. Er funktioniert jedoch unter Umständen auch mit anderen Terminal-Emulator-Modi.

## Übergeordneter Befehl "emrfs"
<a name="emrfs-top-level"></a>

Der Top-Level-Befehl **emrfs** unterstützt die folgende Struktur.

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

Geben Sie [Optionen] mit oder ohne [Argumente] an, wie in der folgenden Tabelle beschrieben. Für [Optionen], die speziell für Unterbefehle (`describe-metadata`, `set-metadata-capacity` usw.) gelten, finden Sie nachstehend die jeweiligen Unterbefehle.


**[Optionen] für emrfs**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-a AWS_ACCESS_KEY_ID \| --access-key AWS_ACCESS_KEY_ID`  |  Der AWS Zugriffsschlüssel, den Sie verwenden, um Objekte in Amazon S3 zu schreiben und einen Metadatenspeicher in DynamoDB zu erstellen oder darauf zuzugreifen. Standardmäßig *AWS\$1ACCESS\$1KEY\$1ID* ist er auf den Zugriffsschlüssel festgelegt, der zur Erstellung des Clusters verwendet wurde.  |  Nein  | 
|  `-s AWS_SECRET_ACCESS_KEY \| --secret-key AWS_SECRET_ACCESS_KEY`  |  Der AWS geheime Schlüssel, der dem Zugriffsschlüssel zugeordnet ist, den Sie verwenden, um Objekte in Amazon S3 zu schreiben und einen Metadatenspeicher in DynamoDB zu erstellen oder darauf zuzugreifen. Standardmäßig *AWS\$1SECRET\$1ACCESS\$1KEY* ist dieser Wert auf den geheimen Schlüssel gesetzt, der dem Zugriffsschlüssel zugeordnet ist, der zur Erstellung des Clusters verwendet wurde.  |  Nein  | 
|  `-v \| --verbose`  |  Erzeugt eine ausführliche Ausgabe.  |  Nein  | 
|  `-h \| --help`  |  Zeigt die Hilfenachricht für den `emrfs`-Befehl mit einer Verwendungsanweisung an.  |  Nein  | 

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


**[Optionen] für emrfs describe-metadata**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 

**Example Beispiel für "emrfs describe-metadata"**  <a name="emrfs-describe-metadata"></a>
Das folgende Beispiel beschreibt die Standardmetadatentabelle.  

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

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


**[Optionen] für emrfs set-metadata-capacity**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  Die angeforderte Lesedurchsatzkapazität für die Metadatentabelle. Wenn das *READ\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`400`.  |  Nein  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  Die angeforderte Schreibdurchsatzkapazität für die Metadatentabelle. Wenn das *WRITE\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für emrfs set-metadata-capacity**  
Im folgenden Beispiel ist für die Metadatentabelle `600` die Lesedurchsatzkapazität auf `150` und die Schreibkapazität auf `EmrMetadataAlt` festgelegt.  

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

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


**[Optionen] für emrfs delete-metadata**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 

**Example Beispiel für "emrfs delete-metadata"**  
Das folgende Beispiel löscht die Standardmetadatentabelle.  

```
$ emrfs delete-metadata
```

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


**[Optionen] für emrfs create-metadata**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  Die angeforderte Lesedurchsatzkapazität für die Metadatentabelle. Wenn das *READ\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`400`.  |  Nein  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  Die angeforderte Schreibdurchsatzkapazität für die Metadatentabelle. Wenn das *WRITE\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs create-metadata"**  
Im folgenden Beispiel wird eine Metadatentabelle mit dem Namen `EmrFSMetadataAlt` erstellt.  

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

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

Der Unterbefehl **emrfs list-metadata-stores** hat keine [Optionen]. 

**Example List-metadata-stores Beispiel**  
Im folgenden Beispiel werden Ihre Metadatentabellen aufgelistet.  

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

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


**[Optionen] für emrfs diff**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zu dem Amazon-S3-Bucket für den Vergleich mit der Metadaten-Tabelle. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 

**Example Beispiel für "emrfs diff"**  
Im folgenden Beispiel wird die Standardmetadatentabelle mit einem Amazon-S3-Bucket verglichen.  

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

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


**[Optionen] für emrfs delete**  

|  Option  |  Description  |  Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zum Amazon-S3-Bucket, den Sie für die konsistente Ansicht verfolgen. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 
| -t TIME \$1 --time TIME |  Die Ablaufzeit (interpretiert mithilfe des Zeiteinheit-Arguments). Alle Metadateneinträge, die älter als das *TIME* Argument sind, werden für den angegebenen Bucket gelöscht.  |  | 
|  `-u UNIT \| --time-unit UNIT`  |  Die Maßeinheit für die Interpretation des Zeitarguments (Nanosekunden, Mikrosekunden, Millisekunden, Sekunden, Minuten, Stunden oder Tage). Wenn kein Argument angegeben ist, lautet der Standardwert `days`.  |  | 
|  `--read-consumption READ_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Lesedurchsatz für die Operation **delete**. Wenn das *READ\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`400`.  |  Nein   | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Schreibdurchsatz für die Operation **delete**. Wenn das *WRITE\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs delete"**  
Im folgenden Beispiel werden alle Objekte in einem Amazon-S3-Bucket aus den verfolgenden Metadaten für die konsistente Ansicht entfernt.  

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

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


**[Optionen] für emrfs import**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zum Amazon-S3-Bucket, den Sie für die konsistente Ansicht verfolgen. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 
|  `--read-consumption READ_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Lesedurchsatz für die Operation **delete**. Wenn das *READ\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`400`.  |  Nein  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Schreibdurchsatz für die Operation **delete**. Wenn das *WRITE\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs import"**  
Im folgenden Beispiel werden alle Objekte in einem Amazon-S3-Bucket mit den verfolgenden Metadaten für die konsistente Ansicht importiert. Alle unbekannten Schlüssel werden ignoriert.  

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

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


**[Optionen] für emrfs sync**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zum Amazon-S3-Bucket, den Sie für die konsistente Ansicht verfolgen. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 
|  `--read-consumption READ_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Lesedurchsatz für die Operation **delete**. Wenn das *READ\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`400`.  |  Nein  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Schreibdurchsatz für die Operation **delete**. Wenn das *WRITE\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs sync"**  
Im folgenden Beispiel werden alle Objekte in einem Amazon-S3-Bucket mit den verfolgenden Metadaten für die konsistente Ansicht importiert. Alle unbekannten Schlüssel werden gelöscht.   

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

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


**[Optionen] für emrfs read-sqs**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*ist der Name der Amazon SQS SQS-Warteschlange, in `emrfs-site.xml` der konfiguriert ist. Der Standardwert ist **EMRFS-Inconsistency-<jobFlowId>**.  |  Ja  | 
|  `-o OUTPUT_FILE \| --output-file OUTPUT_FILE`  |  *OUTPUT\$1FILE*ist der Pfad zur Ausgabedatei im lokalen Dateisystem des Master-Knotens. Nachrichten, die aus der Warteschlange gelesen werden, werden in diese Datei geschrieben.   |  Ja  | 

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


**[Optionen] für emrfs delete-sqs**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*ist der Name der Amazon SQS SQS-Warteschlange, in `emrfs-site.xml` der konfiguriert ist. Der Standardwert ist **EMRFS-Inconsistency-<jobFlowId>**.  |  Ja  | 

## Übermitteln von EMRFS-CLI-Befehlen als Schritte
<a name="emrfs-submit-steps-as-cli"></a>

Das folgende Beispiel zeigt, wie Sie das `emrfs` Hilfsprogramm auf dem Master-Knoten verwenden, indem Sie die AWS CLI OR-API nutzen und `command-runner.jar` den `emrfs` Befehl als Schritt ausführen. Das Beispiel verwendet den AWS SDK für Python (Boto3) , um einem Cluster einen Schritt hinzuzufügen, der Objekte in einem Amazon S3 S3-Bucket zur standardmäßigen EMRFS-Metadatentabelle hinzufügt.

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

Sie können den zurückgegebenen Wert `step_id` verwenden, um die Protokolle auf das Ergebnis der Operation zu prüfen.