Sru*_*ule 7 airflow google-cloud-composer
在我的本地机器上,我创建了一个 virtualenv 并安装了 Airflow。当 dag 或插件需要 python 库时,我将它安装到同一个 virtualenv 中。
如何跟踪哪些库属于 dag,哪些库用于气流本身?我最近删除了一个 dag 并想删除它正在使用的库。这非常耗时,我交叉手指我没有删除另一个 dag 正在使用的东西!
airflow.operators.python_operator.PythonVirtualenvOperator您可能会看到有关Dag在使用 的地方使用 in 的内容PythonOperator。
使用VirtualenvOperatorin 代替隔离 a到 aPythonOperator的依赖关系,并且您可以保留单独的需求文件。DagVirtualenv
您可以在需求文件中使用注释来标记例如的依赖Dag 关系
package-one # Dag1.
Run Code Online (Sandbox Code Playgroud)
...当您删除Dag带有 DAG 名称的 , grep 要求时,卸载然后删除这些行。
通过这种方式,当您安装 DAG 的包时,您需要一个过程来注释Dag需求文件中的名称。您可以编写一个脚本来执行此操作。
特别是对于较大的 Airflow 用例,我建议使用 Airflow 作为在不同抽象层上编排任务的一种方式,这样您就不会从 Airflow 端管理依赖项。
我建议您查看 DockerOperator 或 KubernetesPodOperator。有了这些,您可以将 Python 任务构建到 Docker 容器中,并让 Airflow 运行这些任务。这样你就不需要在 Airflow 中管理 Python 依赖,也不会遇到两个 DAG 依赖冲突的灾难场景。但是,这确实需要您了解管理 Kubernetes 集群。
| 归档时间: |
|
| 查看次数: |
6277 次 |
| 最近记录: |