vee*_*til 8 airflow kubernetespodoperator
我有一个气流 DAG“example_ml.py”,它有一个任务“train_ml_model”,该任务正在调用/运行 python 脚本“training.py”。
-Dags/example_ml.py -Dags/training.py
DAG任务的代码片段:
train_model = PythonOperator(
task_id='train_model',
python_callable=training,
dag = dag
)
Run Code Online (Sandbox Code Playgroud)
PS:我使用的是k8s集群。Airflow运行在k8s集群中,executor设置为kubernetesExecutor。因此,当每个 DAG 被触发时,就会分配一个新的 pod 来完成任务。
小智 1
我在两个依赖项(praw 和 supabase)中遇到了同样的问题。
这是我的解决方案:
将依赖项添加到requirements.txt 文件:
为此,请使用 列出您的依赖项pip freeze。然后,选择要在 Airflow 中安装的目标依赖项。最后,复制依赖项及其版本。例如:supabase==2.3.3
通过添加以下内容来修改 Dockerfile 以复制要求并安装它们:
COPY requirements.txt /requirements.txt
RUN pip install --user --upgrade pip
RUN pip install --no-cache-dir --user -r /requirements.txt
Run Code Online (Sandbox Code Playgroud)
构建一个新的 Docker 镜像:
docker build . --tag extending_airflow:latest
最后,调出您的环境:
docker-compose up -d --no-deps --build airflow-webserver airflow-scheduler
我希望这可以帮助你!
| 归档时间: |
|
| 查看次数: |
4763 次 |
| 最近记录: |