2015-10-16 65 views
2

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

我很难将所有这些技术相关联来创建一个架构!

EC2服务替换Mesos?调度器怎么样?

我们是一个小团队,在集群开发方面经验不足。哪个堆栈更适合我们的批处理?

编辑 我作出巨大的编辑,我想现在我明白了架构:

enter image description here

这是一个示例图片有两个集群由Mesos进行管理。

阅读ECS容器服务文档(http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html),AWS正在整合ECS与Mesos Apache Framework。所以我想在未来使用我们可以使用mesos框架来管理ECS群集中的资源。因此,将是可以使用的Chronos(批处理调度)和马拉松(长时间运行的应用程序。)

编辑 在这个时刻,我们没有运行,像Hadoop作业或火花的作业分配工作。我们的工作非常简单,运行在EC2的单个实例上。我们计划使用Docker来运行批处理运行作业。

+0

佩德罗,感谢您在这里花时间了解问题空间,然而,它很难回答一个问题,它是一个不断移动的目标。你已经多次更新了你的问题,实质上改变了它,并且让我的回答看起来完全脱离主题。我建议你或者创建一个新问题,或者以某种方式指出你对我的答案的看法(或者在评论中指出缺少的东西)。 –

+0

顺便说一句,这个架构迄今为止错误,Hadoop运行在Mesos上(而不是其他方式),请参阅https://github.com/mesos/hadoop和https://github.com/mesosphere/hdfs –

+0

!我会打开另一个帖子。图片只说Mesos可以控制异构集群类型的工作节点。 –

回答

4

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

你刚才提到了一个这样的框架,Chronos,这是一个很好的工作马,也许不使用工作的依赖关系,好吗?然后是另一个很好的批处理框架,称为Cook。根据您的需要(例如基于SQL的批生成报告),您可以使用Apache Spark。等等等等。

顺便提一下,我是否已经提到过,使用Mesos,您不会冒着供应商锁定的风险,同时能够根据您的需求部署它,完全在一个云(如AWS),混合云AWS和GCP/Azure)还是本地?

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