airflow db init 报错

报错一:

[2022-08-01 11:34:38,224] {manager.py:763} WARNING - No user yet created, use flask fab command to do it.
INFO  [alembic.runtime.migration] Running upgrade a13f7613ad25 -> 97cdd93827b8, Add queued_at column to dagrun table
INFO  [alembic.runtime.migration] Running upgrade 97cdd93827b8 -> 092435bf5d12, Add max_active_runs column to dagmodel table
INFO  [alembic.runtime.migration] Running upgrade 092435bf5d12 -> ccde3e26fe78, Add index on state, dag_id for queued dagrun
INFO  [alembic.runtime.migration] Running upgrade ccde3e26fe78 -> 83f031fd9f1c, improve mssql compatibility
INFO  [alembic.runtime.migration] Running upgrade 83f031fd9f1c -> e9304a3141f0, make xcom pkey columns non-nullable
INFO  [alembic.runtime.migration] Running upgrade e9304a3141f0 -> 30867afad44a, Rename concurrency column in dag table to max_active_tasks
INFO  [alembic.runtime.migration] Running upgrade 30867afad44a -> 54bebd308c5f, Add trigger table and task info
INFO  [alembic.runtime.migration] Running upgrade 54bebd308c5f -> 142555e44c17, Add data_interval_[start|end] to DagModel and DagRun.
INFO  [alembic.runtime.migration] Running upgrade 142555e44c17 -> 7b2661a43ba3, TaskInstance keyed to DagRun
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/airflow/models/crypto.py", line 86, in get_fernet
    [Fernet(fernet_part.encode('utf-8')) for fernet_part in fernet_key.split(',')]
  File "/usr/local/lib/python3.6/site-packages/airflow/models/crypto.py", line 86, in <listcomp>
    [Fernet(fernet_part.encode('utf-8')) for fernet_part in fernet_key.split(',')]
  File "/usr/local/lib64/python3.6/site-packages/cryptography/fernet.py", line 35, in __init__
    "Fernet key must be 32 url-safe base64-encoded bytes."
ValueError: Fernet key must be 32 url-safe base64-encoded bytes.

报错二:

File "/usr/local/lib/python3.6/site-packages/airflow/utils/db.py", line 112, in create_default_connections
  extra='''{"account_url": "<ACCOUNT_URL>"}''',
File "<string>", line 4, in __init__
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/state.py", line 433, in _initialize_instance
  manager.dispatch.init_failure(self, args, kwargs)
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
  with_traceback=exc_tb,
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
  raise exception
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/state.py", line 430, in _initialize_instance
  return manager.original_init(*mixed[1:], **kwargs)
File "/usr/local/lib/python3.6/site-packages/airflow/models/connection.py", line 146, in __init__
  self.extra = extra
File "<string>", line 1, in __set__
File "/usr/local/lib/python3.6/site-packages/airflow/models/connection.py", line 272, in set_extra
  fernet = get_fernet()
File "/usr/local/lib/python3.6/site-packages/airflow/models/crypto.py", line 90, in get_fernet
  raise AirflowException(f"Could not create Fernet object: {value_error}")
airflow.exceptions.AirflowException: Could not create Fernet object: Incorrect padding

原因是airflow.cfg缺少了fernet_key没填写导致
# Secret key to save connection passwords in the db
fernet_key = 

具体操作如下:
1 把airflow的数据库表清空

2 生成一个fernet_key,用于airflow db init阶段使用(确保有cryptography的包)
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

3 填入上面生成的key,保存
fernet_key = xxxxx

4 重新运行airflow db init,报错解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Airflow是一个开源的数据管道(data pipeline)工具,用于管理、监控和调度数据流程。下面是Airflow的使用教程: 1. 安装和配置Airflow: - 首先,确保你已经安装了Python和pip工具。 - 使用pip安装Airflow:`pip install apache-airflow`。 - 创建一个Airflow工作目录:`mkdir airflow_home`。 - 初始化Airflow数据库:`airflow db init`。 - 配置Airflow:编辑"airflow_home/airflow.cfg"文件,根据需要进行相应配置。 2. 通过Airflow UI监控和故障排除数据管道: - 启动Airflow Web服务器:`airflow webserver -p 8080`。 - 打开浏览器,访问"http://localhost:8080",进入Airflow UI。 - 在UI中,你可以查看和监控已定义的任务、DAG(Directed Acyclic Graph)和任务实例。 - 如果需要排除故障,可以检查任务日志、任务状态和依赖关系。 3. Airflow Platform的概念和用途: - Airflow Platform是一个用于构建、管理和监控数据管道的完整平台。 - 它提供了一个可扩展的架构,可以在分布式环境中运行和调度大型数据流程。 - Airflow Platform支持以代码的方式定义和编排任务,提供了灵活的计划和调度功能,以及丰富的监控和管理工具。 4. Airflow的数据分析和数据追踪功能: - Airflow提供了一种简单而强大的方式来定义和执行数据分析任务。 - 通过Airflow,你可以使用Python编写任务代码,使用Airflow提供的操作符和传感器执行各种数据操作和数据分析任务。 - Airflow还提供了丰富的日志和监控功能,用于追踪任务的执行情况和任务之间的依赖关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值