Airflow 如何缩短在GCP Composer上检测新Dag的时间?(气流)
我在GCP(Airflow)上创建了一个Composer集群,它工作得很好,但对于即时任务来说速度很慢。我在本地文件中创建了下一个DAG:Airflow 如何缩短在GCP Composer上检测新Dag的时间?(气流),airflow,google-cloud-composer,Airflow,Google Cloud Composer,我在GCP(Airflow)上创建了一个Composer集群,它工作得很好,但对于即时任务来说速度很慢。我在本地文件中创建了下一个DAG: import datetime from airflow import models from pprint import pprint as pp from airflow.contrib.kubernetes import secret from airflow.contrib.operators import kubernetes_pod_operat
import datetime
from airflow import models
from pprint import pprint as pp
from airflow.contrib.kubernetes import secret
from airflow.contrib.operators import kubernetes_pod_operator
import datetime as dt
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
from airflow.operators.bash_operator import BashOperator
YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)
def create_task_dag(dag_id, schedule, start_date, task_id):
dag = models.DAG(
dag_id=dag_id,
schedule_interval=schedule,
start_date=start_date
)
with dag:
_operator_name = KubernetesPodOperator(
task_id='#task_type#-#taskid#',
name='#task_type#-#taskid#',
cmds=['bash', '-cx'],
arguments=["command"],
env_vars=#env_vars#,
namespace='default',
image='image:latest',
image_pull_secrets="secret",
image_pull_policy='Always',
get_logs=True
)
_operator_name
return dag
task_id='#task_type#-#taskid#'
dag_id = 'dag-#task_type#-#taskid#'
schedule = '@once'
start_date = datetime.datetime.now()
globals()[dag_id] = create_task_dag(
dag_id=dag_id,
schedule=schedule,
start_date=start_date,
task_id=task_id)
当我上传该文件时,运行需要很长时间,因此,我添加了dag_dir_list_interval=1
,虽然有所改进,但在气流仪表板上显示需要20-30秒,在Kubernetes上启动需要40-60秒
这意味着我需要一分钟来运行Hello world
我可能弄错了吗
PS:我检查了调度程序,2-5秒后它出现在pod磁盘中
图像版本:composer-1.8.4-airflow-1.10.3
集群:Kubernetes上的3个节点
n1-standard-1
这通常按预期工作。如果要在本地进行测试,可能需要在本地安装气流并在那里测试DAG组件。这之所以能如期发挥作用,有几个原因
bash操作符的东西来创建hello world,它会快得多(只有地面军事系统延迟)