重试逻辑 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

重试逻辑

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-5.33.1 \ --instance-type m5.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 或Amazon 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 Amazon 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 Amazon region have been reached. </description> </property>