气流:何时使用CeleryExecutor以及何时使用MesosExecutor

时间:2016-04-17 18:58:12

标签: celery mesos airflow

我对Airflow很新,并试图了解我们应该如何在我们的环境中设置它(在aws上)。

我读过Airflow使用Celery和redis经纪人。 它与Mesos有什么不同?我之前没有使用Celery,但是我试图在我的开发机器上安装celery-redis并且它很容易使用。但添加新组件意味着,添加更多监控。

由于我们已经在我们的集群管理中使用了mesos,所以如果我不选择芹菜并使用MesosExecutor,我会想到我错过了什么?

4 个答案:

答案 0 :(得分:1)

目前使用Celery是中经过验证/更稳定的方法

对我们来说,使用容器管理依赖项比管理Mesos实例上的依赖项更方便,如果选择MesosExecutor就是这种情况。因此,我们发现Celery更加灵活。

我们目前正在使用Celery + RabbitMQ,但我们将来会切换到MesosExecutor,因为我们的代码库已经稳定。

答案 1 :(得分:0)

使用CeleryExecuter的气流并不一定需要使用Redis Broker。芹菜可以使用的任何经纪人都与气流兼容,但建议使用RabbitMQ经纪人或Redis经纪人。

芹菜与梅索斯截然不同。虽然气流也支持MesosExecutor,但如果您计划分发工作人员,建议使用CeleryExecutor。据我所知,Airbnb使用CeleryExecutor并积极维护它。

答案 2 :(得分:0)

MesosExecutor在此阶段仍处于试验阶段,并且不支持运行Docker容器,每个任务具有不同的资源限制以及可能的许多其他限制。

我计划在这方面努力,这是一项社区工作,并且花了一些精力来部署Mesos集群,我觉得添加Celery和另一个MQ代理是浪费资源。

答案 3 :(得分:0)

对我们来说,不能使用MesosExecutor。我们需要一个抽象级别来处理作业的依赖关系,我们不能(也不应该)依赖于安装在mesos slave上的任何依赖关系。当MesosExecutor支持Docker容器和/或Mesos容器时,我们可以转向它。另外,我喜欢看马拉松里面的分配工人。我正在研究如何使用Marathon自动调整工作人员。