ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 使用 Mesos 扩展(社区贡献) > 贡献者:[@ImPerat0R\_](https://github.com/tssujt)、[@ThinkingChen](https://github.com/cdmikechen) 有两种方法可以将 Airflow 作为 mesos 框架运行: 1. 想要直接在 mesos slaves 上运行 Airflow 任务,要求每个 mesos slave 安装和配置 Airflow。 2. 在安装了 Airflow 的 docker 容器内运行 Airflow 任务,该容器在 mesos slave 上运行。 ## 任务直接在 mesos slave 上执行 `MesosExecutor`允许您在 Mesos 群集上调度 Airflow 任务。为此,您需要一个正在运行的 mesos 集群,并且必须执行以下步骤 - 1. 在可以运行 web server 和 scheduler 的 mesos slave 上安装 Airflow,让我们将其称为“Airflow server”。 2. 在 Airflow server 上,从[mesos 下载](http://open.mesosphere.com/downloads/mesos/)安装 mesos python eggs。 3. 在 Airflow server 上,使用可以被所有 mesos slave 访问的数据库(例如 mysql),并在`airflow.cfg`添加配置。 4. 将您的`airflow.cfg`里 executor 的参数指定为*MesosExecutor*,并提供相关的 Mesos 设置。 5. 在所有 mesos slave 上,安装 Airflow。 从 Airflow 服务器复制`airflow.cfg` (以便它使用相同的 sqlalchemy 连接)。 6. 在所有 mesos slave 上,运行以下服务日志: ```py airflow serve_logs ``` 7. 在 Airflow server 上,如果想要开始在 mesos 上处理/调度 DAG,请运行: ```py airflow scheduler -p ``` 注意:我们需要-p 参数来挑选 DAG。 您现在可以在 mesos UI 中查看 Airflow 框架和相应的任务。Airflow 任务的日志可以像往常一样在 Airflow UI 中查看。 有关 mesos 的更多信息,请参阅[mesos 文档](http://mesos.apache.org/documentation/latest/)。 有关 MesosExecutor 的任何疑问/错误,请联系[@kapil-malik](https://github.com/kapil-malik)。 ## 在 mesos slave 上的容器中执行的任务 [此 gist](https://gist.github.com/sebradloff/f158874e615bda0005c6f4577b20036e)包含实现以下所需的所有文件和配置更改: 1. 使用安装了 mesos python eggs 的软件环境创建一个 dockerized 版本的 Airflow。 > 我们建议利用 docker 的多阶段构建来实现这一目标。我们有一个 Dockerfile 定义从源(Dockerfile-mesos)构建特定版本的 mesos,以便创建 python eggs。在 Airflow Dockerfile(Dockerfile-airflow)中,我们从 mesos 镜像中复制 python eggs。 2. 在`airflow.cfg`创建一个 mesos 配置块。 > 配置块保持与默认 Airflow 配置(default_airflow.cfg)相同,但添加了一个选项`docker_image_slave`。 这应该设置为您希望 mesos 在运行 Airflow 任务时使用的镜像的名称。确保您具有适用于您的 mesos 主服务器的 DNS 记录的正确配置以及任何类型的授权(如果存在)。 3. 更改`airflow.cfg`以将执行程序参数指向 MesosExecutor(executor = SequentialExecutor)。 4. 确保您的 mesos slave 可以访问您`docker_image_slave`的 docker 存储库。 > [mesos 文档中提供了相关说明。](https://mesos.readthedocs.io/en/latest/docker-containerizer/) 其余部分取决于您以及您希望如何使用 dockerized Airflow 配置。