我们希望使用Docker容器在集群环境中运行批处理作业。 我们正在评估使用AWS ECS Container Service / Chronos / Mesos。 据我所知,Apache Mesos具有EC2所具有的一些重叠特性/目的,如集群管理。 Chronos是一个分布式调度程序。
我很难将所有这些技术联系起来以创建一个架构!
EC2服务取代Mesos?调度程序怎么样?
我们是一个小团队,在集群开发方面几乎没有经验。哪个堆栈更适合我们的批处理?
修改 我进行了大量编辑,现在我想我了解架构:
这是一张样本图片,其中两个群集由Mesos管理。
阅读ECS容器服务文档(http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html),AWS正在整合ECS与Mesos Apache Framework。所以我想在将来使用mesos框架来管理ECS集群中的资源。因此,可以使用Chronos(用于批量调度)和Marathon(用于长时间运行的应用程序。)
修改 在这个时刻,我们没有分布式工作,如hadoop工作或火花工作。我们的工作要简单得多,在EC2的单个实例上运行。我们计划使用Docker来运行批量运行的作业。
答案 0 :(得分:5)
我认为这取决于批处理作业的类型,但Apache Mesos生态系统肯定比ECS更灵活,以满足您的需求。灵活性来自Mesos使用所谓的两级调度模型这一事实,这是一个奇特的名称,它将调度决策外包到框架中(而不是试图在其核心中实现每个现有和未来的工作负载调度策略,本身)。
你已经提到了一个这样的框架,Chronos,这是一个很好的工作马,也许不会使用依赖项来完成工作,好吗?然后是另一个名为Cook的优秀批处理框架。根据您的需要(例如,基于SQL的批处理报告生成),您可以使用Apache Spark。依此类推。
BTW,我是否已经提到过Mesos你不会冒着供应商锁定的风险,同时能够根据你的需要,在一个云(例如AWS),混合云中部署它(说AWS和GCP / Azure)或内部部署?更新:澄清,当然Mesos拥有一流的Docker支持。