amazon-web-services - com.amazonaws.services.gluejobexecutor.model.VersionMismatchException

标签 amazon-web-services apache-spark aws-glue

就像在这个 AWS forum question我同时运行 2 个作业。作业配置为 Max concurrency: 10但是在执行 job.commit() 时我收到此错误消息:

py4j.protocol.Py4JJavaError: An error occurred while calling z:com.amazonaws.services.glue.util.Job.commit.
: com.amazonaws.services.gluejobexecutor.model.VersionMismatchException: 
Continuation update failed due to version mismatch. Expected version 6 but found version 7
(Service: AWSGlueJobExecutor; Status Code: 400; Error Code: VersionMismatchException; Request ID: 123)

这两个作业读取不同部分的数据。

但我不明白这里有什么问题以及如何处理它。任何人都可以帮忙吗?

最佳答案

在另一个 AWS forum question 中报告@bgiannini 的回答,看起来“版本”指的是作业书签。

如果同一作业的多个实例同时运行(即最大并发 > 1)并使用书签,则当作业运行 1 运行 job.init() 时,它会获得一个版本,而 job.commit() 似乎期望某个值(+1我猜每个 job.commit 执行的版本?)。如果作业运行 2 同时启动并从 job.init() 获得相同的初始版本,则在作业 1 执行之前提交 job.commit(),作业 1 不会增加到它预期的版本。

实际上,我正在使用 Job bookmark: Enable 运行 2 个作业.确实当禁用书签 ,看起来对我有用。

我知道这可能不是最好的解决方案,但它可以是一个很好的折衷方案。

关于amazon-web-services - com.amazonaws.services.gluejobexecutor.model.VersionMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62148656/

相关文章:

scala - 用于在云中托管 Java PLAY 应用程序的服务器架构

amazon-web-services - 检索AWS SM secret 并导出到容器环境变量

scala - Spark MapReduce 中的意外结果

scala - 如何在 spark sql(Scala) 中解析 url

amazon-web-services - AWS Glue 使用 Cli 安排作业

amazon-web-services - AWS cloudformation 粘合表可重用模板

linux - 如何将 Graylog2 升级到更新版本?

Java AWS S3 PutObject 多部分文件

java - Java 中的 Spark Hive Context hql 问题 - 在 yarn 中运行 spark 作业时

aws-glue - 使用来自外部 REST API 的数据的 AWS Glue 作业