【问题标题】:Mesos FrameworkMesos 框架
【发布时间】:2015-04-12 01:39:38
【问题描述】:

我想使用 java 在集群上分发 Docker 容器并定义依赖项,这样当一个容器完成时,我可以在我的 java 代码中解析生成的输出。有许多 mesos 框架可以实现这一点,我不确定该采用哪一个:Marathon、Singularity、Chronos、Aurora。

到目前为止我学到了什么:

Marathon 有一个非常好的 java 客户端 api,但用于长期任务(不知道这是否有问题,因为我的任务不会运行那么长时间)而且我认为我不能定义那种依赖.如果我要使用马拉松,我将不得不轮询应用程序的状态。 Chronos 没有 java api(至少我找不到)。 所以我可以在极光和奇点之间进行选择。

任何人都可以为我的用例提供帮助并向我推荐其中一个。

【问题讨论】:

    标签: java mesos marathon apache-aurora


    【解决方案1】:

    Chronos(如 Marathon)是用 Scala 编写的,因此它应该很容易与任何基于 JVM 的应用程序集成。更好的是,它们(实际上可能全部 4 个)都有 REST API,因此无论每个应用/服务的实现语言如何,您都可以卷曲您的操作/查询。

    对于您的用例,您可能更喜欢 Chronos 而不是 Marathon,因为您希望您的任务能够完成(而不是重新启动)。 Marathon 适用于长时间运行的(马拉松、跑步……明白了吗?)任务,因此它将重新启动失败/已完成的任务。 Chronos 就像一个具有依赖关系的分布式 cron,因此您可以安排您的作业,然后添加相关作业以在之前的作业完成后启动,从而构建作业的任意 DAG。

    关于极光和奇点,我会让其他人插嘴。我认为它们都支持类似 cron 的工作。

    【讨论】:

      【解决方案2】:

      Apache AuroraFebruary's 0.7.0 release 中添加了 Docker 支持,并且可以使用相同的调度程序管理长时间运行的服务和 cron。它也是用 Java 编写的。

      提供此功能的开发人员发表了关于how they schedule Docker containers using Aurora 的精彩技术演讲。尽管演讲中提供的示例是针对长期运行的服务,但您只需对作业配置进行细微更改即可指定服务与 cron。

      【讨论】:

        【解决方案3】:

        Chronos 对此很有用。您可以在 Chronos 中创建依赖项 DAG。但是,它没有为您提供将参数从一项作业传递到另一项作业的机制。您必须序列化和反序列化 DB 中的内容或跨集群的共享存储。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-07
          • 1970-01-01
          • 2017-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多