本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
重试逻辑
EMRFS 将尝试针对其元数据中跟踪的对象验证列表一致性,并重试特定次数。默认值为 5。如果超过重试次数,则发起任务会返回错误,除非 fs.s3.consistent.throwExceptionOnInconsistency
设置为 false
(此时仅将跟踪的对象记录为不一致)。EMRFS 默认使用指数退避重试策略,但您也可以将它设置为固定策略。用户还可能希望在重试特定一段时间之后继续任务的其余操作,而不是引发异常。可通过将 fs.s3.consistent.throwExceptionOnInconsistency
设置为 false
,将 fs.s3.consistent.retryPolicyType
设置为 fixed
,将 fs.s3.consistent.retryPeriodSeconds
设置为所需的值,来实现此目的。以下示例创建一个启用了一致性的集群,将记录不一致并设置 10 秒的固定重试间隔:
例 将重试期间设置为固定量
aws emr create-cluster --release-label
emr-7.7.0
\ --instance-typem5.xlarge
--instance-count 1 \ --emrfs Consistent=true
,Args=[fs.s3.consistent.throwExceptionOnInconsistency=false
, fs.s3.consistent.retryPolicyType=fixed
,fs.s3.consistent.retryPeriodSeconds=10
] --ec2-attributes KeyName=myKey
注意
为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号(^)。
有关更多信息,请参阅一致视图。
为 IMDS 的 EMRFS 配置获取区域调用
EMRFS 依靠 IMDS(实例元数据服务)来获取实例区域和 Amazon S3、DynamoDB 或终端节点。 AWS KMS 但是,IMDS 对可以处理的请求数量有限制,以及超过限制失败的请求。此 IMDS 限制可能会导致 EMRFS 初始化失败,查询或命令失败。您可以使用以下随机的指数回退重试机制和 emrfs-site.xml 中的回退区域配置属性来解决所有重试都失败的情况。
<property>
<name>fs.s3.region.retryCount</name>
<value>3</value>
<description>
Maximum retries that would be attempted to get AWS region.
</description>
</property>
<property>
<name>fs.s3.region.retryPeriodSeconds</name>
<value>3</value>
<description>
Base sleep time in second for each get-region retry.
</description>
</property>
<property>
<name>fs.s3.region.fallback</name>
<value>us-east-1</value>
<description>
Fallback to this region after maximum retries for getting AWS region have been reached.
</description>
</property>