问题 在 dags文件夹中创建了一个 demo_dag.py 后,没有正常显示在 web ui 上
可能原因
-
demo_dag.py文件内的代码有问题,此时在web ui上的首页可以看到有错误提示
-
没有重启 webserver,具体原因不明,在google上看到的解决方案就是把webserver和scheduler都关掉,然后重启
解决
-
排查错误代码,进行代码修复
-
重启webserver 和scheduler, 注意看scheduler是否有错误提示,如果出现了数据库写入失败相关的错误提示,那应该就无法正常显示在ui上
其他发现
- 执行 airflow dags list 可以看到 自定义的dag ,其pause值为none,而其他正常的dag的pause值为True,个人怀疑没有显示在ui的原因就是自定义的dag数据没有写入数据库,查看 scheduler相关报错信息,发现有数据库写入失败的信息:
File "/usr/local/python/lib/python3.8/encodings/cp1252.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-6: character maps to <undefined>
可能有效的解决方法:
- 代码内不能出现中文
- 初始化创建airflow数据库时,使用utf8编码
- 在配置文件中,关于数据库配置上增加编码设置:sql_alchemy_conn = mysql://{db_name}:{db_pwd}@{host}:{port}/airflow?charset=utf8