Docker上的气流-路径问题

时间:2019-10-04 13:37:44

标签: python docker airflow airflow-operator

使用气流,我尝试简单的DAG工作。

我编写了自定义运算符和其他要导入到DAG逻辑所在的主文件中的文件。

这里是文件夹的结构:

├── airflow.cfg
├── dags
│   ├── __init__.py
│   ├── dag.py
│   └── sql_statements.sql
├── docker-compose.yaml
├── environment.yml
└── plugins
    ├── __init__.py
    └── operators
        ├── __init__.py
        ├── facts_calculator.py
        ├── has_rows.py
        └── s3_to_redshift.py

我在compose file中设置了卷,因为登录到容器的终端时可以看到它们。

我在线上关注了一些教程,并在其中添加了__init__.py

两个空无的__init__进入

  • /plugins/operators
from operators.facts_calculator import FactsCalculatorOperator
from operators.has_rows import HasRowsOperator
from operators.s3_to_redshift import S3ToRedshiftOperator

__all__ = [
    'FactsCalculatorOperator',
    'HasRowsOperator',
    'S3ToRedshiftOperator'
]
  • /plugins
from airflow.plugins_manager import AirflowPlugin

import operators

# Defining the plugin class
class CustomPlugin(AirflowPlugin):
    name = "custom_plugin"
    # A list of class(es) derived from BaseOperator
    operators = [
        operators.FactsCalculatorOperator,
        operators.HasRowsOperator,
        operators.S3ToRedshiftOperator
    ]
    # A list of class(es) derived from BaseHook
    hooks = []
    # A list of class(es) derived from BaseExecutor
    executors = []
    # A list of references to inject into the macros namespace
    macros = []
    # A list of objects created from a class derived
    # from flask_admin.BaseView
    admin_views = []
    # A list of Blueprint object created from flask.Blueprint
    flask_blueprints = []
    # A list of menu links (flask_admin.base.MenuLink)
    menu_links = []

但是我不断从我的IDE中收到错误消息(说No module named operators或操作符__init__中的未解析的引用操作符)。

由于一切都无法在网络服务器上启动。

任何想法如何进行设置?我哪里错了?

1 个答案:

答案 0 :(得分:0)

您在使用 puckel's 图像吗?

如果是,则需要取消注释 docker-compose 文件(本地或 Celery)中的 # - ./plugins:/usr/local/airflow/plugins 行(可能不止一行)。你的其他设置在我看来还不错。