我们正在寻求使用Docker容器在集群环境中运行批处理作业。
我们正在评估使用AWS ECS Container Service / Chronos / Mesos。
据我所知,Apache Mesos具有EC2具有的一些重叠功能/目的,例如集群管理。 Chronos是一个分布式调度程序。

我很难将所有这些技术关联起来以创建架构!

EC2服务取代Mesos吗?调度程序呢?

我们是一个很小的团队,几乎没有集群开发经验。哪个堆栈更适合我们的批处理?

编辑
我进行了巨大的编辑,我想我现在了解架构:

amazon-ec2 - EC2容器服务与Apache Mesos-LMLPHP

这是由Mesos管理的两个群集的示例图片。

在阅读ECS容器服务文档(http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)时,AWS正在使用Mesos Apache Framework集成ECS。因此,我想在将来使用时,我们可以使用mesos框架来管理ECS集群中的资源。因此,可以使用Chronos(用于批处理计划)和Marathon(用于长期运行的应用程序)。

编辑
目前,我们还没有分布式运行的作业,例如hadoop作业或sparks作业。我们的工作要简单得多,可以在单个EC2实例上运行。我们计划使用Docker运行我们的批处理作业。

最佳答案

我认为这取决于批处理作业的类型,但是Apache Mesos生态系统肯定比ECS更灵活,可以满足您的需求。灵活性来自于以下事实:Mesos使用了所谓的两级调度模型,这是一个好名字,因为它将调度决策外包到框架中(而不是尝试在其核心中实施每个现有的和将来的工作负载调度策略,本身)。

您已经提到了一个这样的框架Chronos,这是一个很好的选择,只是也许不要将依赖项用于作业,好吗?然后是另一个名为Cook的批处理框架。根据您的需求(例如,基于SQL的批处理报告生成),您可以使用Apache Spark。等等等等。

顺便说一句,我是否已经提到过,使用Mesos,您不必冒供应商锁定的风险,而能够根据需要将其完全部署在一个云(例如AWS),混合云(例如AWS和GCP / Azure)还是本地?

更新:为澄清起见,Mesos当然具有一流的Docker支持。

关于amazon-ec2 - EC2容器服务与Apache Mesos,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33180776/

10-16 04:02