• 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.60-1.el7_5.x86_64
    [bigdata@bigdata ~]$ rpm -e --nodeps mariadb-libs-5.5.60-1.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.60-1.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 2019-08-20 11:49:49 CST; 3s ago
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
      Process: 4759 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
      Process: 4679 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
     Main PID: 4762 (mysqld)
        Tasks: 27
       CGroup: /system.slice/mysqld.service
               └─4762 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
    
    Aug 20 11:49:45 bigdata systemd[1]: Starting MySQL Server...
    Aug 20 11:49:49 bigdata systemd[1]: 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=3306/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 2
    Server version: 5.7.27 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, 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/ |
    +--------------------------+----------------------------+
    8 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, 1 row affected (0.00 sec)
    
    mysql> create user 'airflow'@'%' identified by 'AirFlow123!';
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> GRANT all privileges on airflow.* TO 'airflow'@'%'  IDENTIFIED BY 'AirFlow123!';
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 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=1

     重启mysql

     9、初始化airflow并启动web服务

    sudo airflow initdb
    sudo airflow webserver
    sudo airflow scheduler
    sudo airflow worker 

     

     在浏览器打开地址 192.168.189.11:8080

  • 相关阅读:
    Windows网络编程经验小结
    异步Socket服务器与客户端
    用C#实现C/S模式下软件自动在线升级
    Linux 安装字体
    word 生成目录
    Linux sar使用
    yum 使用说明
    HASH JOIN算法
    row cache lock
    cursor: pin S
  • 原文地址:https://www.cnblogs.com/braveym/p/11378851.html
Copyright © 2020-2023  润新知