

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

# 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\$1ACCESS\$1KEY\$1ID* は、クラスターの作成に使用されたアクセスキーに設定されます。  |  いいえ  | 
|  `-s AWS_SECRET_ACCESS_KEY \| --secret-key AWS_SECRET_ACCESS_KEY`  |  Amazon S3 にオブジェクトを書き込み、DynamoDB でメタデータストアを作成またはアクセスするために使用するアクセスキーに関連付けられた AWS シークレットキー。デフォルトでは、*AWS\$1SECRET\$1ACCESS\$1KEY* は、クラスターの作成に使用されたアクセスキーに関連付けられたシークレットキーに設定されます。  |  いいえ  | 
|  `-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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。  |  いいえ  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  メタデータテーブルのリクエストされた読み込みスループット容量。*READ\$1CAPACITY* 引数が指定されていない場合、デフォルト値は `400` です。  |  いいえ  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  メタデータテーブルのリクエストされた書き込みスループット容量。*WRITE\$1CAPACITY* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。  |  いいえ  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  メタデータテーブルのリクエストされた読み込みスループット容量。*READ\$1CAPACITY* 引数が指定されていない場合、デフォルト値は `400` です。  |  いいえ  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  メタデータテーブルのリクエストされた書き込みスループット容量。*WRITE\$1CAPACITY* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。  |  いいえ  | 
|  *s3://s3Path*  |  整合性のあるビューのために追跡する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。  |  はい  | 
| -t TIME \$1 --time TIME |  有効期限（時間単位引数を使用して解釈されます）。指定されたバケットの *TIME* 引数より古いすべてのメタデータエントリが削除されます。  |  | 
|  `-u UNIT \| --time-unit UNIT`  |  時間の引数（ナノ秒、マイクロ秒、ミリ秒、秒、分、時間、日数）を解釈するために使用される基準。引数が指定されていない場合、デフォルト値は `days` です。  |  | 
|  `--read-consumption READ_CONSUMPTION`  |  **delete** オペレーションに使用される、リクエストされた利用可能な読み取りスループットの量。*READ\$1CONSUMPTION* 引数が指定されていない場合、デフォルト値は `400` です。  |  いいえ   | 
|  `--write-consumption WRITE_CONSUMPTION`  |  **delete** オペレーションに使用される、リクエストされた利用可能な書き込みスループットの量。*WRITE\$1CONSUMPTION* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。  |  いいえ  | 
|  *s3://s3Path*  |  整合性のあるビューのために追跡する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。  |  はい  | 
|  `--read-consumption READ_CONSUMPTION`  |  **delete** オペレーションに使用される、リクエストされた利用可能な読み取りスループットの量。*READ\$1CONSUMPTION* 引数が指定されていない場合、デフォルト値は `400` です。  |  いいえ  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  **delete** オペレーションに使用される、リクエストされた利用可能な書き込みスループットの量。*WRITE\$1CONSUMPTION* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は DynamoDB メタデータテーブルの名前です。*METADATA\$1NAME* 引数が指定されていない場合、デフォルト値は `EmrFSMetadata` です。  |  いいえ  | 
|  *s3://s3Path*  |  整合性のあるビューのために追跡する Amazon S3 バケットへのパス。バケットは再帰的に同期されます。  |  はい  | 
|  `--read-consumption READ_CONSUMPTION`  |  **delete** オペレーションに使用される、リクエストされた利用可能な読み取りスループットの量。*READ\$1CONSUMPTION* 引数が指定されていない場合、デフォルト値は `400` です。  |  いいえ  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  **delete** オペレーションに使用される、リクエストされた利用可能な書き込みスループットの量。*WRITE\$1CONSUMPTION* 引数が指定されていない場合、デフォルト値は `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\$1NAME* は、`emrfs-site.xml` で設定した Amazon SQS キューの名前です。デフォルト値は **EMRFS-Inconsistency-<jobFlowId>** です。  |  はい  | 
|  `-o OUTPUT_FILE \| --output-file OUTPUT_FILE`  |  *OUTPUT\$1FILE* は、マスターノードのローカルファイルシステムにある出力ファイルへのパスです。キューから読み取ったメッセージはこのファイルに書き込まれます。  |  はい  | 

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


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

| オプション  | 説明  | 必須  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME* は、`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` 値を使用して、ログで操作の結果を確認できます。