当前位置: 首页 > 知识库问答 >
问题:

如何使用Apache Airflow中的DockerOperator

詹亮
2023-03-14

这个问题与理解有关Docker操作器和Apache气流的概念有关,因此我不确定此站点是否是正确的位置。如果没有,请让我知道我可以在哪里发布它。

情况如下:我正在使用Windows笔记本电脑,我有一个开发的非常基本的ETL管道,可以从某些服务器提取数据,并使用Apache Airflow定期将未处理的数据写入MongoDB。我有一个docker-compose。yml文件包含三个服务:MongoDB的mongo服务、mongo express服务作为MongoDB管理工具、Apache Airflow的Web服务器服务和Apache Air的postgres服务作为数据库后端。

到目前为止,我已经在函数中开发了一些Python代码,这些函数是由气流实例使用Python操作器调用的。由于使用 Python 操作器进行调试非常困难,因此我现在想尝试使用 Docker 操作器。我一直在关注本教程,它声称使用DockerOperator,您可以独立于操作系统开发源代码,由于Docker的概念“构建一次,随处运行”,代码稍后将在其上执行。

我的问题是,我没有完全理解使用DockerOperator运行代码所需的所有必要步骤。在本教程中,我有以下关于任务开发和部署的问题:

感谢您抽出宝贵时间,我非常感谢!

共有1个答案

长孙修远
2023-03-14

通常,您将有一个Docker映像来处理一种类型的任务。因此,对于任何一个管道,您可能会使用各种不同的Docker图像,每个步骤使用一个不同的图像。

对于您的问题,这里有一些注意事项,特别是围绕部署的问题。

  1. 您需要创建一个Docker图像。您可能需要为此添加一个标记,因为您需要对图像进行版本控制。DockerOperator默认为图像上的最新tag
  2. 该映像需要可用于已部署的Airflow实例。如果你想在本地运行Airflow,它们可以构建在你正在运行的机器上。如果您在网上某处部署了Airflow,则更常见的做法是将其推送到云服务。您可以使用许多提供商(Docker Hub、Amazon ECR等)

从容器中公开一个入口点,以使用Dockeroperator调用和参数化任务。==

如果您已经构建了映像,并且可用于气流,则只需使用 Docker 操作器创建一个任务,如下所示:

dag = DAG(**kwargs)
task_1 = DockerOperator(
    dag=dag,
    task_id='docker_task',
    image='dummyorg/dummy_api_tools:v1',
    auto_remove=True,
    docker_url='unix://var/run/docker.sock',
    command='python extract_from_api_or_something.py'
)

我建议花一些时间来理解 Docker。一开始有点困难,但这是一个非常有价值的工具,特别是对于像Airflow这样的系统。

 类似资料:
  • 问题内容: 在Java / Eclipse应用程序的上下文中,我想将Prolog用于特定任务。有哪些可用的解决方案和工具以及相关的利弊? 我可以启动一个外部Prolog解释器,在文件中生成结果吗?我可以使用完整的Prolog Java库(用Java实现的Prolog解释器)吗?我可以使用专用于与外部Prolog解释器进行通信的Java库吗? 在此先感谢您的帮助, 马努 问题答案: 我会尝试Java

  • 我在ViewModel类中使用这个函数来创建LiveData包装的ArrayList: 提前感谢!

  • 问题内容: 如何在编写SQL查询的Linq中使用左联接? 问题答案: 使用Join关键字而不是Left join,并且必须使用“ INTO”关键字和“ DefaultIfEmpty()”方法,因为右表将返回空值。

  • 问题内容: 如何使用node.js中的C ++库? 问题答案: 看一下node-ffi。 node-ffi是一个Node.js插件,用于使用纯JavaScript加载和调用动态库。它可用于创建与本机库的绑定,而无需编写任何C ++代码。

  • 了解“基本”和“高级”工具栏,以及如何自定义工具栏、创建新工具栏及管理多个工具栏。 启动 Illustrator 后,屏幕左侧会出现一个工具栏,其中包含处理文档时需要使用的各种工具。您可以使用工具栏中的工具执行各种任务,例如创建、选择和处理对象以及选择、文字、上色、绘制、采样、编辑和移动图像。 工具栏类型 Illustrator 提供以下类型的工具栏: 基本:启动 Illustrator 后,默认

  • 了解“基本”和“高级”工具栏,以及如何自定义工具栏、创建新工具栏及管理多个工具栏。 启动 Illustrator 后,屏幕左侧会出现一个工具栏,其中包含处理文档时需要使用的各种工具。您可以使用工具栏中的工具执行各种任务,例如创建、选择和处理对象以及选择、文字、上色、绘制、采样、编辑和移动图像。 工具栏类型 Illustrator 提供以下类型的工具栏: 基本:启动 Illustrator 后,默认