本文主要介绍关于linux,python,airflow的知识点,对【宿主机搭建Airflow环境指引】和【小孩可以住吗】有兴趣的朋友可以看下由【TFATS】投稿的技术文章,希望该技术和经验能帮到 本文主要
本文主要介绍关于linux,python,airflow的知识点,对【宿主机搭建 Airflow 环境指引】和【小孩可以住吗】有兴趣的朋友可以看下由【TFATS】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的airlfow,Docker,python环境相关技术问题。
小孩可以住吗
一、查看主机环境本分享以 CentOS 为例
cat /etc/redhat-release# ----output----CentOS Linux release 7.9.2009 (Core) 二、安装 Python3 环境查看是否已存在 Python3 环境,若不存在则安装
# 若不存在则使用如下命令安装which python3# python --version 1、CentOS 安装依赖 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc gcc-c++ wget make pcre pcre-devel openssl vim dos2unix crontab mysql-devel 2、创建对应文件夹 # 创建编译的安装目录mkdir /usr/local/Python3.7.2 #创建编译安装目录(命名为版本比较好)# 进入源码包解压后的文件夹cd /usr/local/Python3.7.2 3、下载 Python 源码 # 从 Python 官网下载源码包wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz# 解压源码包, 准备编译tar -xJf Python-3.7.2.tar.xz 4、安装下载的 Python 源码 # 进入源码包解压后的文件夹cd /usr/local/Python3.7.2/Python-3.7.2# 开始编译, 等待生成安装文件./configure --prefix=/usr/local/Python3.7.2# 开始安装 (如果存在 _ctypes 报错, 则安装 yum -y install libffi-devel)make create user 'airflow'@'localhost' identified by 'airflow';# —— 创建数据库create database airflow character set utf8mb4;# —— 将数据库airflow的所有权限授权airflow用户grant all on airflow.* to 'airflow'@'%';grant all on airflow.* to 'root'@'%';# —— 刷新权限flush privileges; 五、执行 airflow 安装命令 1、执行 airflow 安装命令 # 安装airflow echo "export AIRFLOW_HOME=/data/airflow" >> /root/.bashrcsource /root/.bashrcpip3 install apache-airflow==2.3.3 --no-cache-dir 2、解决目录 /data/airflow 未生成 问题若执行 airflow 报错:“-bash: airflow: 未找到命令” 则执行如下指令:
vim ~/.bash_profile# 加入下行PATH=$PATH:$HOME/bin:/usr/local/Python3.7.2/bin# 使之生效source ~/.bash_profile# 执行 airflow airflow 3、若报错 sqlite 版本过低(若使用 PostgreSQL 、Mysql 则跳过)Airflow 默认带有一个SQLite后端。这允许用户在没有任何外部数据库的情况下运行 Airflow。但是,这样的设置仅用于测试目的;在生产中运行默认设置可能会导致多种情况下的数据丢失。如果要运行生产级 Airflow,请确保将后端配置为外部数据库,例如 PostgreSQL 或 MySQL。
若执行 airflow 报错: airflow.exceptions.AirflowConfigException: error: sqlite C library version too old (<3.15.0)
# 查看 sqlite3 版本sqlite3 -version# 若无 sqlite3,则安装 sqlite3sudo yum install sqlite-devel# 升级 sqlite3 版本wget https://www.sqlite.org/2022/sqlite-autoconf-3390100.tar.gz# 解压、编译tar zxvf sqlite-autoconf-3390100.tar.gzcd sqlite-autoconf-3390100./configure --prefix=/usr/localmake && make install# 删除旧版,替换新版mv /usr/bin/sqlite3 /usr/bin/sqlite3_oldln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.confldconfig# 最后查看sqlite3的版本是否符合报错要求sqlite3 -version 4、修改airflow配置 # 修改配置airflow.cfgcd /data/airflow && vim airflow.cfg# 配置数据库,这里使用了 mysqlexecutor = LocalExecutor# sql_alchemy_cOnn= mysql+pymysql:// : @ : /airflow sql_alchemy_conn = sql_alchemy_conn = mysql+pymysql://:@:/airflow?charset=utf8# 修改 webserver 地址[webserver]#base_url = http://{IP}:{PORT}base_url = http://{ IP}:{ PORT}# 刷新数据库配置airflow db init/upgrade# 创建管理员用户airflow users create \--username xxx \--password xxx \--firstname xxx \--lastname xxx \--role xxx \--email xxx.com 六、安装 python 依赖包 vim requirements.txtpymysqlpandasredisredis-py-clusterclickhouse-driverapache-airflow-providers-dingdingapache-airflow-providers-ssh# 安装 python 依赖包pip install -r requirements.txt 七、运行 airflow dags 1、 修改 airflow.cfg 文件 # 存放 dag 路径dags_folder = xxxload_examples = Falseairflow db upgrade 2、重启 airflow # 停止服务ps -ef | grep airflow | cut -c 9-15 | xargs kill -9# 启动 Airflow webserver和scheduler#启动web服务,默认端口8080nohup airflow webserver >>werserver.log 2>&1 & #启动定时任务 nohup airflow scheduler >>scheduler.log 2>&1 & nohup airflow webserver >>werserver.log 2>&1 &nohup airflow scheduler >>scheduler.log 2>&1 &本文《宿主机搭建 Airflow 环境指引》版权归TFATS所有,引用宿主机搭建 Airflow 环境指引需遵循CC 4.0 BY-SA版权协议。