gpt4 book ai didi

Kubernetes 执行器不会并行化 Airflow 中的子 DAG 执行

转载 作者:行者123 更新时间:2023-12-03 17:26:16 26 4
gpt4 key购买 nike

由于执行的一些限制,我们在 Airflow 1.10.0 中远离了 Celery Executor,现在我们正在使用 KubernetesExecutor .

现在,即使我们更改了 subdag_operator,我们也无法并行化某些 DAG 中的所有任务。直接在代码中:https://github.com/apache/incubator-airflow/blob/v1-10-stable/airflow/operators/subdag_operator.py#L38

我们的期望是,通过这些修改并使用 Kubernetes Executors,我们可以同时扇出所有任务的执行,但我们具有与 SequentialExecutor 相同的行为。 .

这是我们现在的行为:

enter image description here

我们想使用 KubernetesExecutor 同时执行所有这些。 .

最佳答案

Airflow 中的 Kubernetes Executor 将所有第一级任务转换为具有 Local Executor 的工作 Pod。
这意味着您将获得 Local Executor 来执行您的 SubDagOperator .
为了在生成工作 Pod 后运行 SubDagOperator 下的任务,您需要指定配置 parallelism对于工作人员 Pod。因此,如果您将 YAML 格式用于工作 Pod,则需要将其编辑为类似的内容。

apiVersion: v1
kind: Pod
metadata:
name: dummy-name
spec:
containers:
- args: []
command: []
env:
###################################
# This is the part you need to add
###################################
- name: AIRFLOW__CORE__PARALLELISM
value: 10
###################################
- name: AIRFLOW__CORE__EXECUTOR
value: LocalExecutor
# Hard Coded Airflow Envs
- name: AIRFLOW__CORE__FERNET_KEY
valueFrom:
secretKeyRef:
name: RELEASE-NAME-fernet-key
key: fernet-key
- name: AIRFLOW__CORE__SQL_ALCHEMY_CONN
valueFrom:
secretKeyRef:
name: RELEASE-NAME-airflow-metadata
key: connection
- name: AIRFLOW_CONN_AIRFLOW_DB
valueFrom:
secretKeyRef:
name: RELEASE-NAME-airflow-metadata
key: connection
envFrom: []
image: dummy_image
imagePullPolicy: IfNotPresent
name: base
ports: []
volumeMounts:
- mountPath: "/opt/airflow/logs"
name: airflow-logs
- mountPath: /opt/airflow/dags
name: airflow-dags
readOnly: false
- mountPath: /opt/airflow/dags
name: airflow-dags
readOnly: true
subPath: repo/tests/dags
hostNetwork: false
restartPolicy: Never
securityContext:
runAsUser: 50000
nodeSelector:
{}
affinity:
{}
tolerations:
[]
serviceAccountName: 'RELEASE-NAME-worker-serviceaccount'
volumes:
- name: dags
persistentVolumeClaim:
claimName: RELEASE-NAME-dags
- emptyDir: {}
name: airflow-logs
- configMap:
name: RELEASE-NAME-airflow-config
name: airflow-config
- configMap:
name: RELEASE-NAME-airflow-config
name: airflow-local-settings
然后, SubDagOperator将关注 parallelism指定并行运行任务。

关于Kubernetes 执行器不会并行化 Airflow 中的子 DAG 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52146954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com