zoukankan      html  css  js  c++  java
  • 第四章 Airflow-2.1.0安装常见报错

    一、 SQLite版本过低

    #1.报错信息:
    [root@stg-airflow001 ~]$ airflow db init
    Traceback (most recent call last):
      File "/usr/local/python3/bin/airflow", line 5, in <module>
        from airflow.__main__ import main
      File "/usr/local/python3.8.6/lib/python3.8/site-packages/airflow/__init__.py", line 34, in <module>
        from airflow import settings
      File "/usr/local/python3.8.6/lib/python3.8/site-packages/airflow/settings.py", line 35, in <module>
        from airflow.configuration import AIRFLOW_HOME, WEBSERVER_CONFIG, conf  # NOQA F401
      File "/usr/local/python3.8.6/lib/python3.8/site-packages/airflow/configuration.py", line 1115, in <module>
        conf = initialize_config()
      File "/usr/local/python3.8.6/lib/python3.8/site-packages/airflow/configuration.py", line 877, in initialize_config
        conf.validate()
      File "/usr/local/python3.8.6/lib/python3.8/site-packages/airflow/configuration.py", line 202, in validate
        self._validate_config_dependencies()
      File "/usr/local/python3.8.6/lib/python3.8/site-packages/airflow/configuration.py", line 242, in _validate_config_dependencies
        raise AirflowConfigException(
    airflow.exceptions.AirflowConfigException: error: sqlite C library version too old (< 3.15.0). See https://airflow.apache.org/docs/apache-airflow/2.1.0/howto/set-up-database.rst#setting-up-a-sqlite-database
    
    #2.升级SQLite
    从https://sqlite.org/下载源代码,在本地制作并安装。
    1)下载源码
    [root@stg-airflow001 ~]$ wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
    
    2) 编译
    [root@stg-airflow001 ~]$ tar zxvf sqlite-autoconf-3290000.tar.gz 
    [root@stg-airflow001 ~]$ cd sqlite-autoconf-3290000/
    [root@stg-airflow001 ~/sqlite-autoconf-3290000]$ ./configure --prefix=/usr/local
    [root@stg-airflow001 ~/sqlite-autoconf-3290000]$ make && make install
    
    3)替换系统低版本 sqlite3
    [root@stg-airflow001 ~/sqlite-autoconf-3290000]$ cd 
    [root@stg-airflow001 ~]$ mv /usr/bin/sqlite3  /usr/bin/sqlite3_old
    [root@stg-airflow001 ~]$ ln -s /usr/local/bin/sqlite3   /usr/bin/sqlite3
    [root@stg-airflow001 ~$ echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
    [root@stg-airflow001 ~]$ ldconfig
    [root@stg-airflow001 ~]$ sqlite3 -version
    3.29.0 2019-07-10 17:32:03 fc82b73eaac8b36950e527f12c4b5dc1e147e6f4ad2217ae43ad82882a88bfa6
    
    #3.airflow官网升级SQLite方案
    先决条件:您将需要wget, tar, gzip,``gcc`` make, 和expect来使升级过程正常工作。
    yum -y install wget tar gzip gcc make expect
    
    从https://sqlite.org/下载源代码,在本地制作并安装。
    wget https://www.sqlite.org/src/tarball/sqlite.tar.gz
    tar xzf sqlite.tar.gz
    cd sqlite/
    export CFLAGS="-DSQLITE_ENABLE_FTS3 
        -DSQLITE_ENABLE_FTS3_PARENTHESIS 
        -DSQLITE_ENABLE_FTS4 
        -DSQLITE_ENABLE_FTS5 
        -DSQLITE_ENABLE_JSON1 
        -DSQLITE_ENABLE_LOAD_EXTENSION 
        -DSQLITE_ENABLE_RTREE 
        -DSQLITE_ENABLE_STAT4 
        -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT 
        -DSQLITE_SOUNDEX 
        -DSQLITE_TEMP_STORE=3 
        -DSQLITE_USE_URI 
        -O2 
        -fPIC"
    export PREFIX="/usr/local"
    LIBS="-lm" ./configure --disable-tcl --enable-shared --enable-tempstore=always --prefix="$PREFIX"
    make
    make install
    
    安装后添加/usr/local/lib到库路径
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    

    二、mysqlclient找不到

    #1.报错信息:
    [root@stg-airflow001 ~]$ airflow db init
    Traceback (most recent call last):
      File "/usr/local/python-3.8.6b/python3.8/site-packages/MySQLdb/__init__.py", line 18, in <module>
        from . import _mysql
    ImportError: libmysqlclient.so.21: cannot open shared object file: No such file or directory
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/python3/bin/airflow", line 5, in <module>
        from airflow.__main__ import main
      File "/usr/local/python-3.8.6b/python3.8/site-packages/airflow/__init__.py", line 46, in <module>
        settings.initialize()
      File "/usr/local/python-3.8.6b/python3.8/site-packages/airflowttings.py", line 447, in initialize
        configure_adapters()
      File "/usr/local/python-3.8.6b/python3.8/site-packages/airflowttings.py", line 327, in configure_adapters
        import MySQLdb.converters
      File "/usr/local/python-3.8.6b/python3.8/site-packages/MySQLdb/__init__.py", line 24, in <module>
        version_info, _mysql.version_info, _mysql.__file__
    NameError: name '_mysql' is not defined
    
    #2.报错解决
    1)查看libmysqlclient位置
    [root@stg-airflow001 ~]$ find / -name "libmysqlclient.so.*"
    /root/mysql-8.0.24dbrary_output_directorybmysqlclient.so.21
    /usr/local/mysql/lib/libmysqlclient.so.21
    或者
    /usr/local/mysql/lib/libmysqlclient.so.18
    
    [root@stg-airflow001 ~]$ ls -ld /usr/lib64/
    dr-xr-xr-x. 50 root root 36864 Dec 23 03:40 /usr/lib64/
    
    2)做软连接
    [root@stg-airflow001 ~]$ ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /usr/lib64/libmysqlclient.so.21
    或者
    [root@stg-airflow001 ~]$ ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18 
    
    3)导入模块
    [root@m01 ~]# python3
    Python 3.8.6 (default, Jun 23 2021, 18:48:14) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import MySQLdb 
    >>> exit()
    

    三、模块pymysql未找到

    #1.报错信息
    Broken DAG: [/root/airflow/dags/aiinsight_sdata_job.py] Traceback (most recent call last):
      File "/root/airflow/dags/utils/getFiles.py", line 5, in <module>
        from conf.mysql_client import get_db
      File "/root/airflow/dags/conf/mysql_client.py", line 6, in <module>
        import pymysql
    ModuleNotFoundError: No module named 'pymysql'
    
    #2.报错解决
    root@stg-airflow001 ~]$ pip3 install  pymysql
    Collecting pymysql
      Using cached PyMySQL-1.0.2-py3-none-any.whl (43 kB)
    Installing collected packages: pymysql
    Successfully installed pymysql-1.0.2
    WARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv
    
    

    四、模块sshtunnel未找到

    #1.报错信息
    Broken DAG: [/root/airflow/dags/lebel_crm_table_etl.py] Traceback (most recent call last):
      File "/root/airflow/dags/lebel/CRM_WECHAT_FANS_BASIC_INFO.py", line 8, in <module>
        from conf import config
      File "/root/airflow/dags/conf/config.py", line 7, in <module>
        from sshtunnel import SSHTunnelForwarder
    ModuleNotFoundError: No module named 'sshtunnel'
    
    #2.报错解决
    [root@stg-airflow001 ~]$ pip3 install  sshtunnel
    Collecting sshtunnel
      Downloading sshtunnel-0.4.0-py2.py3-none-any.whl (24 kB)
    Collecting paramiko>=2.7.2
      Using cached paramiko-2.7.2-py2.py3-none-any.whl (206 kB)
    Collecting pynacl>=1.0.1
      Downloading PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl (961 kB)
         |████████████████████████████████| 961 kB 46 kB/s 
    Collecting bcrypt>=3.1.3
      Using cached bcrypt-3.2.0-cp36-abi3-manylinux2010_x86_64.whl (63 kB)
    Requirement already satisfied: cryptography>=2.5 in /usr/local/python3.8.6/lib/python3.8/site-packages (from paramiko>=2.7.2->sshtunnel) (3.4.7)
    Requirement already satisfied: cffi>=1.1 in /usr/local/python3.8.6/lib/python3.8/site-packages (from bcrypt>=3.1.3->paramiko>=2.7.2->sshtunnel) (1.14.5)
    Requirement already satisfied: six>=1.4.1 in /usr/local/python3.8.6/lib/python3.8/site-packages (from bcrypt>=3.1.3->paramiko>=2.7.2->sshtunnel) (1.16.0)
    Requirement already satisfied: pycparser in /usr/local/python3.8.6/lib/python3.8/site-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko>=2.7.2->sshtunnel) (2.20)
    Installing collected packages: pynacl, bcrypt, paramiko, sshtunnel
    Successfully installed bcrypt-3.2.0 paramiko-2.7.2 pynacl-1.4.0 sshtunnel-0.4.0
    WARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv
    

    五、模块gunicorn找不到

    #1.报错信息
    6月 28 11:06:50 stg-airflow001 airflow[24153]: FileNotFoundError: [Errno 2] No such file or directory: 'gunicorn'
    
    #2.报错解决
    [root@stg-airflow001 ~/airflow]$ which  gunicorn
    /usr/local/python3/bin/gunicorn
    
    [root@stg-airflow001 ~/airflow]$ ln -fs /usr/local/python3.8.6/bin/gunicorn /bin/gunicorn
    
  • 相关阅读:
    java后台读取配置文件
    冒泡排序
    均分火柴
    Dos 批处理 Shutdown
    时间复杂度分析
    Python冒泡排序
    Python装饰器
    获取状态栏高度
    利用zxing生成二维码
    Android下利用zxing类库实现扫一扫
  • 原文地址:https://www.cnblogs.com/jhno1/p/14980599.html
Copyright © 2011-2022 走看看