Centos7 安装部署 Airflow
本人在centos7 的环境下部署,怎么在centos7 下配置静态 IP 关闭防火墙 以及安装jdk在这里不多赘述,
centos7 配置静态ip可以参考:https://www.cnblogs.com/braveym/p/8523100.html 和 https://www.cnblogs.com/braveym/p/9096402.html
Airflow 基础安装
1、默认自带python2环境,自行安装pip
sudo yum -y install epel-release
sudo yum -y install python-pip




2、进行pip的更新,否则很多安装会报错
sudo pip install --upgrade pip
sudo pip install --upgrade setuptools


3、安装开发库
sudo yum install python-devel
sudo yum install libevent-devel
sudo yum install mysql-devel



4、安装centos7下的mysql
在安装mysql前建议先更新一下源,不然下载老失败
打开centos的yum文件夹(需要root权限或者拥有该目录的操作权限才可以)
输入命令cd /etc/yum.repos.d

用wget下载repo文件
输入命令sudo wget http://mirrors.aliyun.com/repo/Centos-7.repo(如果wget命令不生效,说明还没有安装wget工具,输入sudo yum -y install wget 回车进行安装)

备份系统原来的repo文件
sudo mv CentOS-Base.repo CentOS-Base.repo.bak

替换系统原理的repo文件
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

在更新源之前先把自带的mariadb删除,会报类似这样的错误


[bigdata@bigdata ~]$ rpm -qa|grep mariadb
mariadb-libs-5.5.-.el7_5.x86_64
[bigdata@bigdata ~]$ rpm -e --nodeps mariadb-libs-5.5.-.el7_5.x86_64
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
[bigdata@bigdata ~]$ sudo rpm -e --nodeps mariadb-libs-5.5.-.el7_5.x86_64
[bigdata@bigdata ~]$ rpm -qa|grep mariadb
[bigdata@bigdata ~]$
执行yum源更新命令
sudo yum clean all sudo yum makecache sudo yum -y update (需要比较长的时间)

在https://dev.mysql.com/downloads/mysql/下载mysql的离线安装包

下载完之后把包上传到集群

解压

把以上解压包每一个都安装一遍,但是,安装的时候建议安装顺序来,不要随便拿起一个就安装,不然会报这样的错误

所以建议按照下面的顺序进行安装

bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-common-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-common-5.7.27-1.e################################# [100%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-libs-5.7.27-1.el7################################# [100%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-libs-compat-5.7.2################################# [100%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-embedded-compat-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-embedded-compat-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-embedded-compat-5################################# [100%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-devel-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-devel-5.7.27-1.el################################# [100%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-client-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-client-5.7.27-1.e################################# [100%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-server-5.7.27-1.e################################# [100%]
[bigdata@bigdata mysql]$
先关闭mysql服务

修改MySql配置

skip-grant-tables #添加这句话,这时候登入mysql就不需要密码

启动mysql

[bigdata@bigdata mysql]$ sudo systemctl start mysqld.service
[bigdata@bigdata mysql]$ sudo systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Tue -- :: CST; 3s ago
Docs: man:mysqld()
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=/SUCCESS)
Process: ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=/SUCCESS)
Main PID: (mysqld)
Tasks:
CGroup: /system.slice/mysqld.service
└─ /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid Aug :: bigdata systemd[]: Starting MySQL Server...
Aug :: bigdata systemd[]: Started MySQL Server.
登录mysql,输入密码处直接回车就可以

5、初始化配置mysql,可以设定允许root远程登录
先通过root登录mysql,密码是刚刚给root用户设置的密码我这里是:Admin123!

Mysql默认不允许远程登录,我们需要设置下,并且防火墙开放3306端口;(备注 mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位)


mysql> set password for root@localhost = password('Admin123!');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@localhost = password('Admin123!');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> create user 'airflow'@'localhost' identified by 'Airflow123!';
Query OK, 0 rows affected (0.05 sec)
mysql> grant all on airflow.* to 'airflow'@'%';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql> quit;
Bye
修改配置文件

设置MySql开机自启
sudo systemctl enable mysqld
对于防火墙开启的情况下,就需要开发3306端口,我这里是把防火墙关闭

[bigdata@bigdata mysql]$ sudo firewall-cmd --zone=public --add-port=/tcp --permanent
FirewallD is not running
[bigdata@bigdata mysql]$ sudo firewall-cmd --reload
FirewallD is not running
6、配置Mysql默认编码为UTF-8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置


character_set_server=utf8
init_connect='SET NAMES utf8'
编辑保存完 重启mysql服务: sudo systemctl restart mysqld.service

查看下编码:

[bigdata@bigdata mysql]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. MySQL Community Server (GPL) Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
rows in set (0.01 sec) mysql>
7、安装AirFlow
给airflow设置环境变量
sudo vim /etc/profile

#airflow
export AIRFLOW_HOME=/opt/modules/airflow
export SLUGIFY_USES_TEXT_UNIDECODE=yes
是环境变量生效

安装airflow

sudo pip install apache-airflow
可以看到出现以下错误

这样解决:
sudo pip install six --user -U
sudo pip install ipython --user -U
sudo pip install --ignore-installed dnspython
sudo yum install python-devel
sudo yum install openldap-devel
sudo pip install --ignore-installed python-ldap
sudo pip install --ignore-installed enum34
前面的问题解决了,又开始新的问题

这个问题这样解决:
sudo pip install --ignore-installed requests
最后再重新安装一次airflow,可以看到成功了

8、 设置mysql数据库连接
sudo pip install apache-airflow[mysql]


创建airflow用户,创建airflow数据库并给出所有权限给此用户(注意在设置密码的时候还是前面讲的问题,不能太简单,否则不能通过)

mysql> create database airflow;
Query OK, row affected (0.00 sec) mysql> create user 'airflow'@'%' identified by 'AirFlow123!';
Query OK, rows affected (0.02 sec) mysql> GRANT all privileges on airflow.* TO 'airflow'@'%' IDENTIFIED BY 'AirFlow123!';
Query OK, rows affected, warning (0.01 sec) mysql> FLUSH PRIVILEGES;
Query OK, rows affected (0.00 sec)
修改airflow配置文件,指向数据库mysql
airflow.cfg 文件通常在~/airflow目录下



executor = LocalExecutor
sql_alchemy_conn = mysql://airflow:AirFlow123!@192.168.189.11/airflow
对应字段解释如下: dialect+driver://username:password@host:port/database
修改mysql的配置文件
vim /etc/my.cnf
添加这一句

explicit_defaults_for_timestamp=
重启mysql

9、初始化airflow并启动web服务
sudo airflow initdb
sudo airflow webserver
sudo airflow scheduler
sudo airflow worker


在浏览器打开地址 192.168.189.11:8080

Centos7 安装部署 Airflow的更多相关文章
- CentOS7安装部署zabbix3.4操作记录
CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...
- centos7 安装部署运行 Redis5
原文:centos7 安装部署运行 Redis5 Redis5 下载与解压(官网: https://redis.io/download ) 下载命令:wget http://download.redi ...
- 容器centos7安装部署ansible
容器centos7安装部署ansible centos镜像版本及ansible版本 centos:centos7.5.1804 ansible:2.9.11 启动容器并进入容器 docker run ...
- Centos7安装部署搭建gitlab平台、汉化
Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...
- centos7安装部署opentsdb2.4.0
写在前面 安装HBase 在HBase中创建表结构 安装配置并启动opentsdb 写在前面 最近因为项目需要在读opentsdb的一部分源码,后面会做个小结分享出来.本人是不大喜欢写这种安装部署的文 ...
- centos7 安装部署 Jenkins
Jenkins 安装部署 1. 安装资源下载 Jenkin镜像地址: http://mirrors.jenkins-ci.org/status.html 选择清华大学镜像地址下载rpm https:/ ...
- centos7安装部署SVN
SVN介绍 SVN是个自由.开源的版本控制系统,绝大多数开源软件都使用SVN作为代码版本管理软件. SVN的官方网站http://subversion.apache.org/.目前SVN在开源社区 ...
- Centos7 安装部署Kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...
- jumpserverv0.5.0 基于 CentOS7安装部署
基于 CentOS 7 一步一步安装 Jumpserver 0.5.0 环境 系统: CentOS 7 IP: 192.168.244.144 关闭 selinux和防火墙 # CentOS 7 $ ...
随机推荐
- ueditor上粘贴从word中copy的图片和文字
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...
- 并发编程入门(二):分析Boost对 互斥量和条件变量的封装及实现生产者消费者问题
请阅读上篇文章<并发编程实战: POSIX 使用互斥量和条件变量实现生产者/消费者问题>.当然不阅读亦不影响本篇文章的阅读. Boost的互斥量,条件变量做了很好的封装,因此比" ...
- diff:二进制文件内容差异比较
在Ubuntu 18.04下验证,造冰箱的大熊猫@cnblogs 2019/7/29 假设我们需要以二进制格式比较两个文件file1.bin和file2.bin的差异,一个简单的方法是 1)先使用xx ...
- g++版本低于4.7使用C++11
编译时需要添加: 需要添加头文件#include<memory> g++ -std=gnu++0x share_ptr.cpp -o s 原文: C++11 features are av ...
- pydub音频处理库的使用
pydub音频处理库的使用 在使用pydub这个模块之前应确保你的libav或者FFmpeg Mac上安装libav或FFmpeg brew install libav --with-libvorbi ...
- nodejs的npm命令无反应的解决方案
这二天用npm下载模块的时候输入npm命令完全无反应,不是加载的那种状态而是下标不停地在哪里闪...之后找解决方案,说要删除npmrc文件.强调:不是nodejs安装目录npm模块下的那个npmrc文 ...
- 反省——关于csp-s模拟50
本人于搜索csp-s模拟49题解时,有意识地点开了一篇关于csp-s模拟50T2的题解,并知道了题解是二维前缀和以及四维偏序. 更重要的是,那篇博客说有解法二,叫二维莫队. 于是我上网搜索二维莫队,结 ...
- ndarray的axis问题
始终记不住np中axis是对应到哪个,还没系统地去学习下 先暂记两个常用的结果 1.[:,np.newaxis] 与 [np.newaxis, :] 注:这是ndarray才有的分片方法(np重写了[ ...
- 487-3279 字符串处理+MAP
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 300264 Accepted: 53757 Descr ...
- 在CentOS7阿里云服务器部署ThinkPHP5,并配置phpstrom实现同步开发(微信小程序及管理员后端)
小程序和后端同步开发 1.服务器安装tp5框架: 方法很多比如:github.linux命令直接手动下.composer 都可以,方法很多,百度一下,不再累述 2.这时你会发现怎么都访问出现不了这个令 ...