问题标签 [mesos-chronos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
31 浏览

mesos - Mesos/Chronos 任务如何更新为已完成任务状态?

我是 Mesos 的新手,并试图了解任务成功完成时的流程以及如何使用 Chronos 将其更新到 Mesos。

(在 2.4.0 版中)当我有一个任务完成异步运行并成功完成的工作时,我的应用程序会将结果发送到“/scheduler/task/{id}”(在 Chronos TaskManagementResource.scala 中),然后它增加作业成功计数器,并更新作业的最后成功运行时间。然后它调用 jobsObserver.apply(JobFinished(job, taskStatus, attempt)) 我有点困惑。工作观察者做什么?

https://github.com/mesos/chronos/blob/c1348ddfd80eb8f888418805005066c230fc6ad2/src/main/scala/org/apache/mesos/chronos/scheduler/jobs/JobScheduler.scala#L216

https://github.com/apache/mesos/blob/c28fd3a93e0d9d9a868aec2380abd1dd338304ef/src/java/src/org/apache/mesos/Scheduler.java#L131

0 投票
1 回答
110 浏览

mesos - Apache Mesos/Chronos 任务状态未更新并卡在 RUNNING 状态

我在本地使用 Mesos 1.3.1 和 Chronos。我目前每 30 分钟安排 100 个作业进行测试。

有时任务会永远卡在 RUNNING 状态,直到我重新启动任务卡住的 Mesos 代理。在此期间没有重新启动代理。

我试图 KILL 任务,但它的状态永远不会更新为 KILLED 而 Chronos 中的日志说成功收到了请求。我已经在 Chronos 中检查它确实将任务更新为成功并且结束时间也是正确的,但持续时间正在进行中并且任务仍处于 RUNNING 状态。

此外,执行程序容器会为卡住的任务永远运行。我有一个执行器容器,它将休眠 20 秒,并将 offer_timeout 设置为 30 秒,将 executor_registration_timeout 设置为 2 分钟。

我还每 10 分钟包含一次 Mesos 协调,但它每次都会将任务更新为 RUNNING。

我还尝试在协调之前强制任务状态再次更新为已完成,但仍未更新为已完成。似乎 Mesos 领导者没有为卡住的任务选择正确的状态。

我尝试使用不同的任务资源分配(cpu:0.5,0.75,1...)运行,但没有解决问题。我将作业数量更改为每 30 分钟 70 个,但仍在发生。这个问题每天出现一次,这是非常随机的,可能发生在任何工作中。

如何在不重新启动 Mesos 代理的情况下从活动任务中移除这个卡住的任务?有没有办法防止这个问题发生?