0

我在链接AWS Batch作业时遇到问题。

  • 有 3 个计算环境CE_A, CE_B, CE_C),每个环境关联一个作业队列JQ_A, JQ_B, JQ_C)。

  • 有 6 个作业定义JD_1, JD_2, ..., JD_6)。

  • 假设<jqce>-<jd>-<name>是在作业队列(或计算环境)上启动的作业<jqce>,并带有作业定义<jd>。示例:A-1-a, C-6-z.

  • 我想按顺序执行大约 20 个作业(使用不同的环境变量启动):A-1-a, A-1-b, B-2-c, A-3-d, A-3-e, A-3-f, ...

  • 对于每个作业,我使用以下命令指定对先前作业的依赖: params.dependsOn = [{ "jobId": "xxxxx-xxxx-xxxx-xxxxxx"}]in Batch.submitJob(params)

  • 前两个作业在等待几分钟资源分配后成功执行A-1-aA-1-b

  • B-2-c在等待 Compute 环境启动几分钟后,第三个作业也成功执行CE_B

  • 同时,由于没有作业出现,计算环境CE_A被关闭。

这是问题:

  • 我预计在这一点上CE_B会下降和CE_A上升。CE_A没有上升。

  • 永远不会执行,A-3-d16 小时后它仍然处于PENDING状态。

    • 没关系,它的dependsOn依赖关系很久以前就结束了。
    • 没有dependsOn批处理运行正常,具有相同的环境变量和配置。

问题

  • 你遇到过类似的问题AWS BatchdependsOn
  • 是否可以链接来自不同作业队列的批次?
  • 是否可以链接来自不同计算环境的批次?
  • params.dependsOn = [{ "jobId": "xxx-xxx-xxx-xxx" }]觉得还可以吗?看来我不必设置type属性见数组作业
4

1 回答 1

2

params.dependsOn = [{ "jobId": "xxx-xxx-xxx-xxx" }] 你觉得没问题吗?看来我不必设置类型属性参见数组作业;

是的,类型仅在定义为数组作业时才需要。您提供的 JobID 是您提交特定作业时返回的内容?

是否可以链接来自不同作业队列的批次?是否可以链接来自不同计算环境的批次?你应该可以做到,但我从来没有这样做过。

同时,计算环境 CE_A 被关闭,因为没有作业出现。

所以 CE_A 已经在运行并且已经运行 A-1-a、A-1-b 了吗?

我记得 AWS 每 10 分钟检查一次某些状态,人们遇到过系统似乎卡住的情况。

您可以将 CE_A 设置为始终拥有至少 1 个 CPU,这样它就不会消失或难以获得某个版本。

你能简单地用于测试目的吗?更短的动作,减少队列等

考虑查看有关 Batch 的 AWS 论坛。那里没有太多的活动,但值得多看一眼。

于 2018-03-08T06:23:34.123 回答