我最近将我的 Airflow 集群从 1.7.1.3 升级到 1.10.2,使用 mysql 作为后端,使用rabbitmq 进行消息传递。升级后,我在我的一些任务中看到了这个问题 -
WARNING - State of this instance has been externally set to success. Taking the poison pill.
Run Code Online (Sandbox Code Playgroud)
这会在任何任务中偶尔出现。我没有在外部标记此任务成功,但我仍然收到此错误。有没有其他人遇到过这种情况?如何解决这个问题?
我有一个dag运行4个都是bash运算符的任务。最近,我移至气流版本1.10.2。我经常看到以下错误-
ERROR - Scheduler heartbeat got an exception: (MySQLdb._exceptions.OperationalError) (1213, 'Deadlock found when trying to get lock; try restarting transaction') (Background on this error at: http://sqlalche.me/e/e3q8)
Run Code Online (Sandbox Code Playgroud)
我正在使用mysql作为元数据的后端。我在mysql中检查变量innodb_lock_wait_timeout的值-
mysql> show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50 |
Run Code Online (Sandbox Code Playgroud)
得到这个问题不是很高。有谁知道为什么会这样吗?
我最近将气流升级到了1.10.2。dag中的某些任务运行良好,而某些任务重试的次数超过了指定的重试次数。任务日志之一显示-启动尝试26,共2次。为什么调度程序即使在两次失败后仍对其进行调度?任何人都面临类似的问题吗?
示例Dag-
args = {
'owner': airflow,
'depends_on_past': False,
'start_date': datetime(2019, 03, 10, 0, 0, 0),
'retries':1,
'retry_delay': timedelta(minutes=2),
'email': ['my@myorg.com'],
'email_on_failure': True,
'email_on_retry': True
}
dag = DAG(dag_id='dag1',
default_args=args,
schedule_interval='0 12 * * *',
max_active_runs=1)
data_processor1 = BashOperator(
task_id='data_processor1',
bash_command="sh processor1.sh {{ ds }} ",
dag=dag)
data_processor2 = BashOperator(
task_id='data_processor2',
bash_command="ssh processor2.sh {{ ds }} ",
dag=dag)
data_processor1.set_downstream(data_processor2)
Run Code Online (Sandbox Code Playgroud) 我将气流集群从 1.7.1.3 升级到 1.10.1。升级后airflow主页面UI加载非常缓慢。我尝试减小页面大小并增加网络服务器的工作人员,但这没有帮助。我正在使用以下配置 -
page_size = 15
workers = 4
web_server_master_timeout = 120
web_server_worker_timeout = 120
log_fetch_timeout_sec = 5
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这里发生的事情吗?