试图理解使用docker(调度程序、队列、工作人员)与docker(气流)之间的区别
请原谅,如果我问了一个非常业余的问题,但在阅读了多条线索、帖子、参考资料等之后。。。我仍然不理解其中的区别 我目前的理解是: 第1种方法) 一名传统码头工人将由3名码头工人组成:试图理解使用docker(调度程序、队列、工作人员)与docker(气流)之间的区别,docker,docker-compose,airflow,Docker,Docker Compose,Airflow,请原谅,如果我问了一个非常业余的问题,但在阅读了多条线索、帖子、参考资料等之后。。。我仍然不理解其中的区别 我目前的理解是: 第1种方法) 一名传统码头工人将由3名码头工人组成: 管理作业计划的计划程序 管理多个作业队列的队列 管理每个队列的工作的工作人员 我从这个来源读到: Docker+Apache Airflow将组成一个Docker,其功能与上述3个Docker相同: 第二种方法) Worker(Airflow:因为在Airflow中,我们可以设置调度程序和队列) 我观看了本教程: 我首
谢谢。我想你指的是
多节点气流
与单节点气流
的比较。多节点airflow将为您的Apache airflow实例提供更多的计算能力和更高的可用性。您可以在一台机器/docker实例上运行所有东西(Web服务器、调度程序和工作程序),但如果您的项目不断增长,您可以创建一个集群并扩展您的管道
实际上,一个Airflow实例可以有多个守护进程
工作者一起工作,以提供Airflow的全部功能
使用多个gunicorn Worker,您可以并行/并发地从队列中执行更多任务。在一台机器上(取决于您的用例/机器的核心),您可以在{afflow_HOME}/afflow.cfg(例如workers=6
)中定义它
现在,由于守护进程并不相互独立,人们将它们分布在多个节点/实例(在您的案例中是Docker容器)上。所以,也许,这就是你所看到的
更新:
要运行调度程序,只需执行
气流调度程序
,它将开始拾取DAG,并在成功运行后开始执行它们。对于第一次运行,它将看到start\u date
,对于后续运行,它将使用您在DAG中定义的schedule\u interval
来调度它们(这就是为什么它是scheduler)非常感谢您的解释,但很抱歉,我对您的示例有点困惑。根据您的解释,1)多节点气流意味着构建一个具有多个docker的气流环境(但我们如何构建它,我目前基于教程的方法是我们可以构建多个节点(docker;Web服务器、调度器、工作器),然后将所有这些与docker compose链接)?2) 我应该使用多节点气流,因为它更适合超时增长的项目。很抱歉,你有一些例子吗?很抱歉给你添麻烦,但我真的想了解更多关于码头工人和气流的情况。我在youtube上遵循的当前教程不是多节点气流,而是单节点气流>我可以再次确认吗。例如,如果我构建了两个Docker,它是多节点的(main:Webserver+Scheduler,Worker)。主docker,如何执行调度程序以及它的实际用途(这是我最困惑的部分,因为在airflow中,我们可以使用docker compose来设置调度程序,那么有什么区别呢?)?工人将被分配DAG(这意味着我的所有任务都将在此工人docker中执行)。但是Web服务器和调度器呢?调度器是用来做什么的?谢谢。所以我所要做的就是创建多个节点(worker),每个节点都有自己的调度器?然后当我运行airflow scheduler时,它将获得所有这些工作程序(使用计划定义),然后它将相应地排队,对吗?不,就像我说的,您将有一个计划程序和多个工作程序,您需要使用一个db和一个队列,以便它们正常工作