hello,大家好,我是阿周,上周我们讲解了AirFlow的一些基本概念,请看文章:学会AirFlow调度工作流平台,让你告别加班,老板还会升值加薪,但是只知道理论知识是不行的,所以接下来我将带领大家一块安装部署,通过实战学会airflow。
由于Airflow2.1.2版本依赖于python3高阶版本,但是服务器中一般默认python2.7.5版本,如下图:
所以,我们直接通过部署miniconda,创建虚拟python3环境就可以满足airflow的要求。
yum install -y wget
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.s
直接在服务器中安装下载的miniconda
sh Miniconda3-latest-Linux-x86_64.sh
1.4.1 配置conda环境变量
vi /etc/profile
#刷新配置
source /etc/profile
conda config --set show_channel_urls yes
vi ~/.condarc
##添加下面内容
channels:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- defaults
show_channel_urls: true
pip install jupyter
""" 第一步 生成配置文件 """
jupyter notebook --generate-config --allow-root //配置文件生成在:/root/.jupyter/jupyter_notebook_config.py
""" 第二步 生成密码 """
jupyter notebook password //密码设置的是 123456 自己设置 文件生成在 /root/.jupyter/jupyter_notebook_config.json
""" 第三步 编辑/root/.jupyter/jupyter_notebook_config.py文件 """
vim /root/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip = '192.168.244.161'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$Z4FzhnirRGrPwhwg2oWa9A$b5KuKRMr9l+zyK2I0W6KCA'
//该密码在上面有生成
systemctl stop firewall
在上面文章讲过,AirFlow只是一个调度平台,他的存储需要依赖于外部系统,官网建议使用Mysql作为存储,所以下面在服务器中安装mysql。
依赖包提取方式:关注微信公众号:3分钟秒懂大数据,回复:数据库rpm包,即可免费获取下面截图的6个rpm包
上传集群截图如下:
rpm -qa | grep mysql
这个命令就会查看该操作系统上是否已经安装了mysql数据库
yum -y remove mysql
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm --nodeps --force
systemctl start mysqld
systemctl enable mysqld
vi /etc/my.cnf
添加 skip-grant-tables 可保证为无密码状态(题外话 如果想要左边有行号 输入 :set nu 就可以显示 )
skip-grant-tables
systemctl restart mysqld
mysql -u root -p
use mysql;
update user set authentication_string=password("123456") where user='root';
flush privileges;
quit;
mysql -u root -p 密码123456
use mysql;
use mysql; 会报错, 说让你重新设置密码.执行下面这一步,设置密码:
set password = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
quit;
mysql -u root -p 123456
use mysql;
create database airflow default character set = 'utf8';
select host from user where user = 'root';
update user set host='%' where user = 'root';
set global explicit_defaults_for_timestamp =1;
flush privileges;
quit;
2.16.1 上面安装数据库前关闭了防火墙,需要先打开防火墙
systemctl start firewalld
systemctl status firewalld
2.16.2 目前防火墙是否对外开发了3306端口
firewall-cmd --list-all
2.16.3 查看3306端口是否开放
firewall-cmd --query-port=3306/tcp
no 表示没有开放
2.16.4 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
2.16.5 重启防火墙
service firewalld restart
2.16.6 再次.查看3306端口是否开放
firewall-cmd --query-port=3306/tcp
2.16.7 查看目前防火墙
firewall-cmd --list-all
mkdir /usr/share/java
链接:
https://pan.baidu.com/s/1kbZ04-Ts6npSpCLCwiqrFA
提取码:c4hk
将mysql-connector-java-5.1.39.jar 上传到 /usr/share/java 目录下
mv mysql-connector-java-5.1.39.jar mysql-connector-java.jar
由于上面我们已经安装好Miniconda,所以现在可以创建任意python版本的项目
# 新建项目
conda create -n airflow python==3.7.5
#进入创建的airflow项目中
source activate airflow
pip install apache-airflow
pip install apache-airflow[mysql]
airflow -h
#配置连接mysql 30行
sql_alchemy_conn = mysql://root:[email protected]:3306/airflow
#配置登录ip和端口号 460行
web_server_host = 192.168.244.182
#设置airflow用户名和密码
#在[webserver]下面配置 447行
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth
#用户名:admin
#邮箱 [email protected]
#密码:admin
airflow users create --lastname user --firstname admin --username admin --email [email protected] --role Admin --password admin
airflow db init
systemctl stop firewalld
systemctl disable firewalld
airflow webserver --port 8080
为回馈广大计算机爱好者,本博主专门整理了关于Java、大数据、算法、前端、人工智能、操作系统、网络等所学知识的书籍,如果看到此博文的小伙伴们,觉得对你有帮助,请关注微信公众号:3分钟秒懂大数据,回复:福利。就快速领取吧!