

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EMRFS CLI コマンドリファレンス
<a name="emrfs-cli-reference"></a>

EMRFS CLI は、Amazon EMR リリースバージョン 3.2.1 以降を使用して作成されたすべてのクラスターマスターノードにデフォルトでインストールされます。EMRFS CLI を使用して、整合性のあるビューのメタデータを管理できます。

**注記**  
**emrfs** コマンドは、VT100 ターミナルエミュレーションでのみサポートされます。ただし、他のターミナルエミュレータモードでも動作する場合があります。

## emrfs 最上位コマンド
<a name="emrfs-top-level"></a>

**emrfs** 最上位コマンドは、次の構造をサポートしています。

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

次の表に示すように、[引数] の有無にかかわらず、[options] を指定します。サブコマンド (`describe-metadata`、`set-metadata-capacity` など) に固有の [options] については、以下の各サブコマンドを参照してください。


**emrfs の [Options]**  

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-a {{AWS_ACCESS_KEY_ID}} \| --access-key {{AWS_ACCESS_KEY_ID}}` | Amazon S3 にオブジェクトを書き込み、DynamoDB でメタデータストアを作成またはアクセスするために使用する AWS アクセスキー。デフォルトでは、{{AWS\_ACCESS\_KEY\_ID}} は、クラスターの作成に使用されたアクセスキーに設定されます。 | いいえ | 
| `-s {{AWS_SECRET_ACCESS_KEY}} \| --secret-key {{AWS_SECRET_ACCESS_KEY}}` | Amazon S3 にオブジェクトを書き込み、DynamoDB でメタデータストアを作成またはアクセスするために使用するアクセスキーに関連付けられた AWS シークレットキー。デフォルトでは、{{AWS\_SECRET\_ACCESS\_KEY}} は、クラスターの作成に使用されたアクセスキーに関連付けられたシークレットキーに設定されます。 | いいえ | 
| `-v \| --verbose` | 詳細な出力を作成します。 | いいえ | 
| `-h \| --help` | `emrfs` コマンドのヘルプメッセージと使用方法の説明を表示します。 | いいえ | 

## emrfs describe-metadata サブコマンド
<a name="emrfs-describe-metadata"></a>


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 

**Example emrfs describe-metadata の例**  <a name="emrfs-describe-metadata"></a>
次の例では、デフォルトのメタデータテーブルを記述します。  

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

## emrfs set-metadata-capacity サブコマンド
<a name="emrfs-set-metadata-capacity"></a>


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 
| `-r {{READ_CAPACITY}} \| --read-capacity {{READ_CAPACITY}}` | メタデータテーブルのリクエストされた読み込みスループット容量。{{READ\_CAPACITY}} 引数が指定されていない場合、デフォルト値は `400` です。 | いいえ | 
| `-w {{WRITE_CAPACITY}} \| --write-capacity {{WRITE_CAPACITY}}` | メタデータテーブルのリクエストされた書き込みスループット容量。{{WRITE\_CAPACITY}} 引数が指定されていない場合、デフォルト値は `100` です。 | いいえ | 

**Example emrfs set-metadata-capacity の例**  
次の例では、`600` という名前のメタデータテーブルの読み込みスループット容量を `150`、書き込みスループット容量を `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
```

## emrfs delete-metadata サブコマンド
<a name="emrfs-delete-metadata"></a>


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 

**Example emrfs delete-metadata の例**  
次の例では、デフォルトのメタデータテーブルを削除します。  

```
$ emrfs delete-metadata
```

## emrfs create-metadata サブコマンド
<a name="emrfs-create-metadata"></a>


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 
| `-r {{READ_CAPACITY}} \| --read-capacity {{READ_CAPACITY}}` | メタデータテーブルのリクエストされた読み込みスループット容量。{{READ\_CAPACITY}} 引数が指定されていない場合、デフォルト値は `400` です。 | いいえ | 
| `-w {{WRITE_CAPACITY}} \| --write-capacity {{WRITE_CAPACITY}}` | メタデータテーブルのリクエストされた書き込みスループット容量。{{WRITE\_CAPACITY}} 引数が指定されていない場合、デフォルト値は `100` です。 | いいえ | 

**Example emrfs create-metadata の例**  
次の例では、`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
```

## emrfs list-metadata-stores サブコマンド
<a name="emrfs-list-metadata-stores"></a>

**emrfs list-metadata-stores** サブコマンドには、[options] がありません。

**Example list-metadata-stores の例**  
次の例では、メタデータテーブルを表示します。  

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

## emrfs diff サブコマンド
<a name="emrfs-diff"></a>


**emrfs diff の [Options]**  

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 
| {{s3://s3Path}} | メタデータテーブルと比較する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。 | はい | 

**Example emrfs diff の例**  
次の例では、デフォルトのメタデータテーブルを 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
```

## emrfs delete サブコマンド
<a name="emrfs-delete"></a>


**emrfs delete の [Options]**  

|  オプション  |  説明  |  必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 
| {{s3://s3Path}} | 整合性のあるビューのために追跡する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。 | はい | 
| -t {{TIME}} \| --time {{TIME}} | 有効期限（時間単位引数を使用して解釈されます）。指定されたバケットの {{TIME}} 引数より古いすべてのメタデータエントリが削除されます。 |  | 
| `-u {{UNIT}} \| --time-unit {{UNIT}}` | 時間の引数（ナノ秒、マイクロ秒、ミリ秒、秒、分、時間、日数）を解釈するために使用される基準。引数が指定されていない場合、デフォルト値は `days` です。 |  | 
| `--read-consumption {{READ_CONSUMPTION}}` | **delete** オペレーションに使用される、リクエストされた利用可能な読み取りスループットの量。{{READ\_CONSUMPTION}} 引数が指定されていない場合、デフォルト値は `400` です。 | いいえ  | 
| `--write-consumption {{WRITE_CONSUMPTION}}` | **delete** オペレーションに使用される、リクエストされた利用可能な書き込みスループットの量。{{WRITE\_CONSUMPTION}} 引数が指定されていない場合、デフォルト値は `100` です。 | いいえ | 

**Example emrfs delete の例**  
次の例では、整合性のあるビューの追跡メタデータから Amazon S3 バケットのすべてのオブジェクトを削除します。  

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

## emrfs import サブコマンド
<a name="emrfs-import"></a>


**emrfs import の [Options]**  

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 
| {{s3://s3Path}} | 整合性のあるビューのために追跡する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。 | はい | 
| `--read-consumption {{READ_CONSUMPTION}}` | **delete** オペレーションに使用される、リクエストされた利用可能な読み取りスループットの量。{{READ\_CONSUMPTION}} 引数が指定されていない場合、デフォルト値は `400` です。 | いいえ | 
| `--write-consumption {{WRITE_CONSUMPTION}}` | **delete** オペレーションに使用される、リクエストされた利用可能な書き込みスループットの量。{{WRITE\_CONSUMPTION}} 引数が指定されていない場合、デフォルト値は `100` です。 | いいえ | 

**Example emrfs import の例**  
次の例では、Amazon S3 バケット内のすべてのオブジェクトを、整合性のあるビューの追跡メタデータとともにインポートします。不明なキーはすべて無視されます。  

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

## emrfs sync サブコマンド
<a name="emrfs-sync"></a>


**emrfs sync の [Options]**  

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-m {{METADATA_NAME}} \| --metadata-name {{METADATA_NAME}}` | {{METADATA\_NAME}} は DynamoDB メタデータテーブルの名前です。{{METADATA\_NAME}} 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。 | いいえ | 
| {{s3://s3Path}} | 整合性のあるビューのために追跡する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。 | はい | 
| `--read-consumption {{READ_CONSUMPTION}}` | **delete** オペレーションに使用される、リクエストされた利用可能な読み取りスループットの量。{{READ\_CONSUMPTION}} 引数が指定されていない場合、デフォルト値は `400` です。 | いいえ | 
| `--write-consumption {{WRITE_CONSUMPTION}}` | **delete** オペレーションに使用される、リクエストされた利用可能な書き込みスループットの量。{{WRITE\_CONSUMPTION}} 引数が指定されていない場合、デフォルト値は `100` です。 | いいえ | 

**Example emrfs sync command の例**  
次の例では、Amazon S3 バケット内のすべてのオブジェクトを、整合性のあるビューの追跡メタデータとともにインポートします。不明なキーがすべて削除されます。  

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

## emrfs read-sqs サブコマンド
<a name="emrfs-read-sqs"></a>


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-q {{QUEUE_NAME}} \| --queue-name {{QUEUE_NAME}}` | {{QUEUE\_NAME}} は、`emrfs-site.xml` で設定した Amazon SQS キューの名前です。デフォルト値は **EMRFS-Inconsistency-<jobFlowId>** です。 | はい | 
| `-o {{OUTPUT_FILE}} \| --output-file {{OUTPUT_FILE}}` | {{OUTPUT\_FILE}} は、マスターノードのローカルファイルシステムにある出力ファイルへのパスです。キューから読み取ったメッセージはこのファイルに書き込まれます。 | はい | 

## emrfs delete-sqs サブコマンド
<a name="emrfs-delete-sqs"></a>


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
| `-q {{QUEUE_NAME}} \| --queue-name {{QUEUE_NAME}}` | {{QUEUE\_NAME}} は、`emrfs-site.xml` で設定した Amazon SQS キューの名前です。デフォルト値は **EMRFS-Inconsistency-<jobFlowId>** です。 | はい | 

## ステップとして EMRFS CLI コマンドを送信する
<a name="emrfs-submit-steps-as-cli"></a>

次の例は、 AWS CLI または API と を活用して `emrfs` コマンド`command-runner.jar`をステップとして実行することで、マスターノードで `emrfs`ユーティリティを使用する方法を示しています。この例では、 を使用してクラスターにステップ AWS SDK for Python (Boto3) を追加し、Amazon S3 バケット内のオブジェクトをデフォルトの EMRFS メタデータテーブルに追加します。

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

返された `step_id` 値を使用して、ログで操作の結果を確認できます。