在群集上运行大量任务

时间:2015-10-14 11:00:01

标签: task cluster-computing mesos aurora

我正在寻找运行大量任务并监控群集状态的解决方案。

详细信息:每个任务由3-4个进程组成,这些进程包含docker(每个进程都是docker run命令)。所有进程都必须在同一台服务器上运行。

我们所谈论的任务数量一次是数百个任务的爆发。

我已根据Mesos查看了所有这些解决方案:

  • Chronos - 似乎它会在高负荷下蹒跚而行,在任何情况下都更倾向于重复(cron)工作。虽然我需要一次性(沉重)的工作。
  • 自定义Mesos FW - 对于我的需求来说似乎是低级别需要我编写计划和重试机制,我将此保存为最后的手段。
  • Aurora - 这似乎很有希望,因为每个任务都在同一个节点上运行,并由多个进程组成。我在这里错过了几个:Aurora似乎无法作为单个作业的一部分运行多个任务。由于我的任务与不同的输入都相似,我可以使用一个具有许多(比如说400个)实例的作业,每个任务的第一个进程(其作用是从S3下载输入)可以根据实例ID下载不同的集合。这让我想到另一个问题:我找不到在.aurora文件中使用{{mesos.instance}}的工作示例,任何人都可以给我一个例子吗?

感谢所有鱼人

2 个答案:

答案 0 :(得分:2)

您还可以查看Kubernetes(也可以framework in Mesos运行)。 Kubernetes具有Pods的概念,它基本上是一组共同定位的容器。所以在你的情况下,一个pod将由你的3-4个进程/容器组成,然后这些pod可以按比例放大/缩小。

关于您提到的其他解决方案的简短评论:

  • Chronos:并非真正针对您的用例
  • 自定义FW:实际上并不是那么困难,但是最好还是保留这个作为最后的手段。
  • Aurora:非常强大但也很复杂的框架
  • Marathon(您没有提到):针对长时间运行的应用程序,可以轻松扩展和缩小。

答案 1 :(得分:1)

除了优秀的其他答案之外,您还可以查看他们最近刚开源的两西格玛Cook,但已经在大规模生产中使用了一段时间。