我对气流有问题,DAG中的第一个作业始终会启动并成功结束,但是第二个作业永远不会自动启动。
我尝试清除UI中的作业,但是它没有启动,如果我想查看它正在运行,则需要删除数据库中正在运行的作业,
delete from job where state='running'
但是我没有很多处于运行状态的作业,我只有1个Job SchedulerJob,并且最新的Heartbeat正常,还有16个外部任务传感器正在等待此DAG
该池有150个插槽,有16个正在运行,已调度1个。
这是气流中的代码
default_args = {
'owner': 'airgia',
'depends_on_past': False,
'retries': 2,
'start_date': datetime(2018, 12, 1, 0, 0),
'email': ['xxxx@yyyy.net'],
'email_on_failure': False,
'email_on_retry': False
}
dag = DAG('trigger_snapshot',
default_args=default_args,
dagrun_timeout= timedelta(hours=22),
schedule_interval="0 0 * * 1,2,3,4,5,7",
max_active_runs=1,
catchup=False
)
set_exec_dt = PythonOperator(
task_id='set_exec_dt',
python_callable=set_exec_dt_variable,
dag=dag,
pool='capser')
lanza_crawler = PythonOperator(
task_id='lanza_crawler',
op_kwargs={"crawler_name": crawler_name},
python_callable=start_crawler,
dag=dag,
pool='capser')
copy_as_processed = PythonOperator(
task_id='copy_as_processed',
op_kwargs={"source_bucket": Variable.get("bucket"),
"source_key": snapshot_key,
"dest_bucket": Variable.get("bucket"),
"dest_key": "{0}_processed".format(snapshot_key)},
python_callable=s3move,
dag=dag,
pool='capser')
airflow_snapshot = S3KeySensor(
task_id='airflow_snapshot',
bucket_key=snapshot_key,
wildcard_match=True,
bucket_name=Variable.get("bucket"),
timeout=8*60*60,
poke_interval=120,
dag=dag,
pool='capser')
Fin_DAG_TC = DummyOperator(
task_id='Fin_DAG_TC',
dag=dag,
pool='capser')
airflow_snapshot >> lanza_crawler >> set_exec_dt >> copy_as_processed >> Fin_DAG_TC
这是每天早晨连接到Web ui时看到的内容
[编辑]
这是调度程序的最后一个日志
在这里我们可以看到第二项工作的要求(lanza_crawler),但没有开始。
[2018-12-11 03:50:54,209] {{jobs.py:1109}}信息-执行任务:
[2018-12-11 03:50:54,240] {{jobs.py:1180}}信息-DAG trigger_snapshot具有0/16正在运行和排队的任务
[2018-12-11 03:50:54,240] {{jobs.py:1218}}信息-将关注任务设置为排队状态:
[2018-12-11 03:50:54,254] {{jobs.py:1301}}信息-将关注任务设置为排队状态:
[2018-12-11 03:50:54,255] {{jobs.py:1343}}信息-发送('trigger_snapshot','lanza_crawler',datetime.datetime(2018,12,10,0,0, tzinfo =),1)优先级为4且默认执行队列的执行器
[2018-12-11 03:50:54,255] {{base_executor.py:56}}信息-添加到队列中:气流运行trigger_snapshot lanza_crawler 2018-12-10T00:00:00 + 00:00 --local --pool capser -sd /usr/local/airflow/dags/capser/trigger_snapshot.py
[2018-12-11 03:50:54,262] {{celery_executor.py:83}}信息-[芹菜]排队('trigger_snapshot','lanza_crawler',datetime.datetime(2018,12,10,0 ,0,tzinfo =),1)通过celery,queue = default
[2018-12-11 03:50:54,749] {{jobs.py:1447}}信息-执行器报告trigger_snapshot.airflow_snapshotexecution_date = 2018-12-10 00:00:00 + 00:00为成功try_number 1
/usr/local/airflow/dags/capser/trigger_snapshot.py 1.53s 2018-12-11T03:50:54
...
/usr/local/airflow/dags/capser/trigger_snapshot.py 6866 0.68s 1.54s 2018-12-11T03:56:50
这是工作者的最后一个日志
[2018-12-11 03:50:52,718:INFO / ForkPoolWorker-11]任务airflow.executors.celery_executor.execute_command [9a2e1ae7-9264-47d8-85ff-cac32a542708]在13847.525094523095s中成功完成:无
[2018-12-11 03:50:54,505:INFO / MainProcess]收到的任务:airflow.executors.celery_executor.execute_command [9ff70fc8-45ef-4751-b274-71e242553128]
[2018-12-11 03:50:54,983] {{settings.py:174}}信息-setting.configure_orm():使用池设置。 pool_size = 5,pool_recycle = 1800
[2018-12-11 03:50:55,422] {{_ _init__.py:51}}信息-使用执行程序CeleryExecutor
[2018-12-11 03:50:55,611] {{models.py:271}}信息-从/usr/local/airflow/dags/capser/DAG_AURORA/DAG_AURORA.py
[2018-12-11 03:50:55,970] {{cli.py:484}}信息-在主机ip- - -上运行 -* .eu-west-1.compute.internal
答案 0 :(得分:0)
在aws图形中,我们看到工人的80%的内存被占用,我们决定增加工人的数量,问题得以解决。