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

无法启动Airflow worker/flower,需要澄清Airflow架构以确认安装是否正确

宣高朗
2023-03-14

在不同的计算机上运行工作线程会导致下面指定的错误。我已遵循配置说明,并已同步dags文件夹。

我还想确认一下RabbitMQ和PostgreSQL只需要安装在Airflow核心机器上,不需要安装在工人身上(工人只连接核心)。

设置的规格详述如下:

已安装以下组件:

    < li>Python 2.7与 < ul > < li >气流(AIRFLOW_HOME = ~/airflow) 芹菜 < li >心理认知2

airflow.cfg中的配置:

  • sql_alchemy_conn=postgresql psycopg2://用户名:password@192.168.1.2:5432/气流
  • executor=CeleryExecutor
  • broker_url=amqp://username:password@192.168.1.2:5672//
  • celery_result_backend=postgresql psycopg2://用户名:password@192.168.1.2:5432/气流

进行的测试:

    < li>RabbitMQ正在运行 < li >可以连接到PostgreSQL,并确认Airflow已创建了表 < li >可以启动并查看web服务器(包括自定义Dag)

.

.

已安装以下组件:

    < li>Python 2.7与 < ul > < li >气流(AIRFLOW_HOME = ~/airflow) 芹菜 < li >心理认知2

在气流.cfg中进行的配置与在服务器中所做的配置完全相同:

  • sql_alchemy_conn=postgresql psycopg2://用户名:password@192.168.1.2:5432/气流
  • executor=CeleryExecutor
  • broker_url=amqp://username:password@192.168.1.2:5672//
  • celery_result_backend=postgresql psycopg2://用户名:password@192.168.1.2:5432/气流

在工作计算机上运行的命令的输出:

运行< code >气流花时:

ubuntu@airflow_client:~/airflow$ airflow flower
[2016-06-13 04:19:42,814] {__init__.py:36} INFO - Using executor CeleryExecutor
Traceback (most recent call last):
  File "/home/ubuntu/anaconda2/bin/airflow", line 15, in <module>
    args.func(args)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/airflow/bin/cli.py", line 576, in flower
    os.execvp("flower", ['flower', '-b', broka, port, api])
  File "/home/ubuntu/anaconda2/lib/python2.7/os.py", line 346, in execvp
    _execvpe(file, args)
  File "/home/ubuntu/anaconda2/lib/python2.7/os.py", line 382, in _execvpe
    func(fullname, *argrest)
OSError: [Errno 2] No such file or directory

运行< code>airflow worker时:

ubuntu@airflow_client:~$ airflow worker
[2016-06-13 04:08:43,573] {__init__.py:36} INFO - Using executor CeleryExecutor
[2016-06-13 04:08:43,935: ERROR/MainProcess] Unrecoverable error: ImportError('No module named postgresql',)
Traceback (most recent call last):
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/worker/__init__.py", line 206, in start
    self.blueprint.start(self)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/bootsteps.py", line 119, in start
    self.on_start()
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/apps/worker.py", line 169, in on_start
    string(self.colored.cyan(' \n', self.startup_info())),
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/apps/worker.py", line 230, in startup_info
    results=self.app.backend.as_uri(),
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/kombu/utils/__init__.py", line 325, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/app/base.py", line 626, in backend
    return self._get_backend()
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/app/base.py", line 444, in _get_backend
    self.loader)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/backends/__init__.py", line 68, in get_backend_by_url
    return get_backend_cls(backend, loader), url
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/celery/backends/__init__.py", line 49, in get_backend_cls
    cls = symbol_by_name(backend, aliases)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/kombu/utils/__init__.py", line 96, in symbol_by_name
    module = imp(module_name, package=package, **kwargs)
  File "/home/ubuntu/anaconda2/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named postgresql

celery_result_backend更改为默认数据库时mysql://airflow:airflow@localhost:3306/airway,然后再次运行airway-worker,结果为:

ubuntu@airflow_client:~/airflow$ airflow worker                                                                             
[2016-06-13 04:17:32,387] {__init__.py:36} INFO - Using executor CeleryExecutor

 -------------- celery@airflow_client2 v3.1.23 (Cipater)
---- **** ----- 
--- * ***  * -- Linux-3.19.0-59-generic-x86_64-with-debian-jessie-sid
-- * - **** --- 
- ** ---------- [config]
- ** ---------- .> app:         airflow.executors.celery_executor:0x7f5cb65cb510
- ** ---------- .> transport:   amqp://username:**@192.168.1.2:5672//
- ** ---------- .> results:     mysql://airflow:**@localhost:3306/airflow
- *** --- * --- .> concurrency: 16 (prefork)
-- ******* ---- 
--- ***** ----- [queues]
 -------------- .> default          exchange=default(direct) key=celery


[2016-06-13 04:17:33,385] {__init__.py:36} INFO - Using executor CeleryExecutor
Starting flask
[2016-06-13 04:17:33,737] {_internal.py:87} INFO -  * Running on http://0.0.0.0:8793/ (Press CTRL+C to quit)
[2016-06-13 04:17:34,536: WARNING/MainProcess] celery@airflow_client2 ready.

我错过了什么?我如何进一步诊断?

共有2个答案

申查猛
2023-03-14

你需要确保安装芹菜花。也就是说,pip install花

郜振国
2023-03-14

导入错误:没有名为 postgresql 错误的模块是由于celery_result_backend中使用的无效前缀造成的。将数据库用作芹菜后端时,连接 URL 必须以 db 为前缀。查看 https://docs.celeryproject.org/en/stable/userguide/configuration.html#conf-database-result-backend

因此,更换:

celery_result_backend = postgresql+psycopg2://username:password@192.168.1.2:5432/airflow

类似于:

celery_result_backend = db+postgresql://username:password@192.168.1.2:5432/airflow
 类似资料:
  • 能否请你澄清以下几点? 当前的quartz 2.1是否支持RamJobStore的群集? 在群集环境中,是否有方法通过Quartz指定作业在所有节点中运行? 在群集环境中,是否有方法通过Quartz指定作业在特定节点中运行?

  • 我认为用A*算法应该是SAEFG,但答案是SBEFG。现在我的教授是一个无所事事的人。有人能解释为什么是SBEFG吗?

  • 来自 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#poison 当 Blob 触发器函数失败时... “失败”是什么意思?编译失败?引发未处理的异常? 如果有一些不起作用的示例代码,那就太好了。所有示例代码都显示了工作状态,因此无法演示 Azure 函数中的故障模式。

  • 我们有申报单 其中backlog被标识为传入连接的最大队列长度。如果连接指示在队列已满时到达,则会拒绝连接。 假设积压设置为10。 这是否意味着服务器套接字将接受不超过10个客户端? 然后: 只有当时,积压数才会下降。这是正确的吗? 有没有办法知道一个套接字当前正在处理多少个打开的连接(换句话说,它离放弃并开始拒绝新连接有多近)

  • 已从deb软件包安装docker1.6,但在运行时出现问题: sudo docker版本客户端版本: 1.6.2客户端API版本: 1.18 Go版本(客户端): go1.4.2 Git提交(客户端): 7c8fca2 OS/Arch(客户端): linux/amd64 FATA[0000]获取超文本传输协议:///var/run/docker.sock/v1.18/version:拨号unix

  • 无法完成安装,因为找不到一个或多个必需的项目。 正在安装的软件:M2E-Maven Integration for Eclipse(包括孵化组件)1.6.1.20150625-2338(org.Eclipse.m2e.feature.feature.group 1.6.1.20150625-2338)缺少要求:Maven Integration for Eclipse 1.6.0.20150526