选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

EMRFS CLI 命令参考 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EMRFS CLI 命令参考

默认情况下,EMRFS CLI 安装在使用 Amazon EMR 发行版 3.2.1 或更高版本创建的所有集群主节点上。您可以使用 EMRFS CLI 管理一致视图的元数据。

注意

只有 VT1 00 终端仿真支持该emrfs命令。但是,它可能适用于其它终端仿真器模式。

emrfs 顶级命令

emrfs 顶级命令支持以下结构。

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

指定 [选项],根据需要使用或不使用下表中描述的 [参数]。有关特定于子命令 (describe-metadataset-metadata-capacity 等) 的 [选项],请参阅下面的每个子命令。

emrfs 的 [选项]
选项 描述 必填

-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 子命令

emrfs describe-metadata 的 [选项]
选项 描述 必填

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME是 DynamoDB 元数据表的名称。如果未提供METADATA_NAME参数,则默认值为EmrFSMetadata

例 emrfs describe-metadata 示例

以下示例描述默认元数据表。

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

emrfs set-metadata-capacity 子命令

emrfs 的 [选项] set-metadata-capacity
选项 描述 必填

-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

例 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 子命令

emrfs delete-metadata 的 [选项]
选项 描述 必填

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME是 DynamoDB 元数据表的名称。如果未提供METADATA_NAME参数,则默认值为EmrFSMetadata

例 emrfs delete-metadata 示例

以下示例删除默认元数据表。

$ emrfs delete-metadata

emrfs create-metadata 子命令

emrfs create-metadata 的 [选项]
选项 描述 必填

-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

例 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 子命令

emrfs list-metadata-stores 子命令没有任何 [选项]。

例 List-metadata-stores 示例

以下示例列出您的元数据表。

$ emrfs list-metadata-stores EmrFSMetadata

emrfs diff 子命令

emrfs diff 的 [选项]
选项 描述 必填

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME是 DynamoDB 元数据表的名称。如果未提供METADATA_NAME参数,则默认值为EmrFSMetadata

s3://s3Path

与元数据表进行比较的 Amazon S3 存储桶的路径。存储桶以递归方式同步。

例 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 子命令

emrfs delete 的 [选项]

选项

描述

必填

-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

例 emrfs delete 示例

以下示例从一致视图的跟踪元数据中删除一个 Amazon S3 存储桶中的所有对象。

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

emrfs import 子命令

for emrfs import 的 [选项]
选项 描述 必填

-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

例 emrfs import 示例

以下示例随一致视图的跟踪元数据导入一个 Amazon S3 存储桶中的所有对象。忽略所有未知键。

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

emrfs sync 子命令

emrfs sync 的 [选项]
选项 描述 必填

-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

例 emrfs sync 命令示例

以下示例随一致视图的跟踪元数据导入一个 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 子命令

emrfs read-sqs 的 [选项]
选项 描述 必填

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME是在中配置的 Amazon SQS 队列的名称。emrfs-site.xml默认值为 EMRFS-Inconsistency-<jobFlowId>

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE是主节点本地文件系统上输出文件的路径。从队列读取的消息会写入此文件。

emrfs delete-sqs 子命令

emrfs delete-sqs 的 [选项]
选项 描述 必填

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME是在中配置的 Amazon SQS 队列的名称。emrfs-site.xml默认值为 EMRFS-Inconsistency-<jobFlowId>

以步骤形式提交 EMRFS CLI 命令

以下示例说明如何在主节点上使用该emrfs实用程序,方法是利用 AWS CLI 或 API 和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 值检查日志以了解操作结果。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。