【问题标题】:Chronos + Mesosphere. How to execute tasks in parallel?计时 + 中间层。如何并行执行任务?
【发布时间】:2014-10-01 15:32:23
【问题描述】:

大家好。 我有一个用于 Chronos、Mesos 和 Zookeeper 的服务器,我想使用 Chronos 作为某种东西,它将每天运行我的脚本。今天一些脚本,一些明天等等.. 问题是当我尝试一个接一个地启动任务时,只有第一个正确执行,另一个在某处丢失。如果我先启动,然后暂停 3-4 秒并启动另一个 - 它们都被启动,但按顺序启动。 我需要并行运行它们。 有人可以提供一个提示吗?也许我必须更改一些设置?

【问题讨论】:

  • UPD:谢谢大家的建议,但是我们应用程序的架构已经改变,Chronos 和朋友们变得不必要了。

标签: apache-zookeeper mesosphere


【解决方案1】:

您应该以 UTC 时间为两个任务的启动时间设置一个 24 小时的重复周期。在这种情况下,您的任务没有理由不应该并行执行。检查 mesos 沙箱中的 chronos 日志和任务日志是否有错误。

【讨论】:

  • 当我在第一个任务仍在运行时尝试运行第二个任务时,Chronos 不会启动第二个任务并将其标记为“失败”。这是日志的一部分:com.airbnb.scheduler.mesos.MesosJobFramework statusUpdate WARNING: Task with id 'ct:1412178282735:0:2' LOST Oct 01, 2014 11:44:44 AM com.airbnb.scheduler.jobs.JobScheduler handleFailedTask WARNING: Task of job: 2 failed. Oct 01, 2014 11:44:44 AM
  • 能否查看slave内部的日志,看看第二个任务的executor在哪里中断?您的第二个任务似乎存在一些问题(需要某些资源或以某种方式依赖于其他任务等)。我没有遇到并行运行计划任务的问题。
  • user4103259 绝对正确!要检查配置或任务是否有问题,请将第二个任务替换为一些虚拟任务......只是看看它是否会阻止两个。
  • 如果我错了,请纠正我,但是必须在不同的机器上拥有主从,对吗?现在我在单机上有主从。
【解决方案2】:

您当然可以在同一台机器上运行所有这些组件(Chronos、master、slave 和 ZK),尽管一旦您拥有多个 master 的 HA,ZK 真的变得很有价值。

按照 user4103259 的建议,检查主从日志中是否存在丢失/失败的任务 ID,以了解它到底发生了什么。在任务启动/运行/完成过程中的任何地方,任务都可能因多种原因丢失/失败。

【讨论】:

    猜你喜欢
    • 2014-08-22
    • 2018-06-08
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    相关资源
    最近更新 更多