CentOS7 上安装airflow以及postgres数据库作为airflow的指定数据库

首先我安装的Python是3.5.2版本的,接下来就是安装的一些步骤:

1、安装python3.5.2

1.0  安装python3.5可能使用的依赖

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel lrzsz zlib-devel gcc 

1.1  使用rz命令上传本地的安装包到服务器上,这是我之前下好的,大家也可以自己安装,

 wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

1.2  解压

1.3  进入Python文件夹,然后执行configure文件设置你要安装的路径,我的安装路径是/opt/python35

1.4  增加python3的环境变量

增加一行

export PATH="$PATH:/opt/python35/bin/"


[root@instance-1lm0ywqy Python-3.5.2]# source ~/.bashrc 
1.5  验证Python

2、安装airflow

2.1  先测试自己的环境是否有wget命令,没有的话需要进行安装:

sudo yum -y install wget

2.2  看看是否有gcc,没有的话需要进行安装:

yum install gcc  (后续安装airflow如果不成功,可以再次执行,它会更新包)

2.3  想安装airflow,需先安装pip3,而安装pip3,需先安装setuptools(如果有,跳过)

以下链接地址皆是python官网https://www.python.org/里的。也可以根据自己的需要安装所需的版本

(1)下载setuptools:

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

解压:tar -zxvf setuptools-19.6.tar.gz

           cd setuptools-19.6

编译:python3 setup.py build
安装:python3 setup.py install

(2)  如果没有pip3,需安装pip3

wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb

tar -zxvf pip-8.0.2.tar.gz

cd pip-8.0.2

python3 setup.py build

python3 setup.py install

(3)pip3 install paramiko

(4)安装airflow前,还需要安装依赖的环境:

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

安装airflow:
pip3 install apache-airflow

出现下面错误,按照提示,是环境变量的问题,所以执行命令

export SLUGIFY_USES_TEXT_UNIDECODE=yes再次执行pip3 install apache-airflow(需要等上一段时间)

2.4  设置变量,初始化数据库

export AIRFLOW_HOME=/opt/airflow

airflow initdb

会在/opt/airflow 目录下生成配置文件

(如果想设置成永久变量,可以在/etc/profile里添加,添加后记得source /etc/profile)

2.5  启动服务

airflow webserver

在浏览器中输入: IP:8080端口进行访问

如果浏览器访问不了,可能你的防火墙端口没看,执行下面命令

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp

sudo firewall-cmd --reload

6.修改数据库配置

可以在/opt/airflow 目录下,修改airflow.cfg配置文件,数据库连接改为本地postgres的URL

先在postgres数据库里新建airflow数据库

然后修改airflow.cfg配置文件:

executor = LocalExecutor

sql_alchemy_conn = postgresql://postgres:[email protected]:5432/airflow

接着重新初始化数据库:

airflow initdb

最后还需在airflow目录下建一个dags包,用来存储使用者编写的脚步

mkdir /opt/airflow/dags

参考:https://blog.csdn.net/yonjarluo/article/details/78422755

2、安装postgres数据库

本文只讲PostgreSQL在CentOS 7.x 下的安装,其他系统请查看:https://www.postgresql.org/download

PostgreSQL 所用版本为:PostgreSQL 10

1.安装存储库

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

2.安装客户端

yum install postgresql10

3.安装服务端

yum install postgresql10-server

4.验证是否安装成功

rpm -aq| grep postgres

输出如下:

4.初始化数据库

/usr/pgsql-10/bin/postgresql-10-setup initdb

5.启用开机自启动

systemctl enable postgresql-10
systemctl start postgresql-10

6.配置防火墙

firewall-cmd --permanent --add-port=5432/tcp  
firewall-cmd --permanent --add-port=80/tcp  
firewall-cmd --reload  

7.修改用户密码

    su - postgres  切换用户,执行后提示符会变为 '-bash-4.2$'
    psql -U postgres 登录数据库,执行后提示符变为 'postgres=#'
    ALTER USER postgres WITH PASSWORD 'postgres'  设置postgres用户密码为postgres
    \q  退出数据库

8.开启远程访问

     vim /var/lib/pgsql/10/data/postgresql.conf
    修改#listen_addresses = 'localhost'  为  listen_addresses='*'
    当然,此处‘*’也可以改为任何你想开放的服务器IP

9.信任远程连接

    vi /var/lib/pgsql/10/data/pg_hba.conf
    修改如下内容,信任指定服务器连接
    # IPv4 local connections:
    host    all            all      127.0.0.1/32      trust
    host    all            all      all(需要连接的服务器IP,我设置为所有ip)  trust

10.重启服务

systemctl restart postgresql-10

11.使用DBMS软件连接

这里使用的是Navicat

连接成功:

参考:http://www.cnblogs.com/stulzq/p/7766409.html

如果用Navicat链接不上,有可能防火墙没有开放端口:

请看我另一篇文章:https://mp.csdn.net/postedit/85169436

注:firewalld的基本使用

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld 

开机禁用  : systemctl disable firewalld

开机启用  : systemctl enable firewalld

其中在启动airflow时遇到个错误:

    return self.dbapi.connect(*cargs, **cparams)
  File "/opt/python35/lib/python3.5/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  Ident authentication failed for user "postgres"

这主要是由于用户密码认证方式引起的,Postgresql数据库安装好后默认采用md5密码加密认证方式。
解决方法:
1). 运行下面的命令编辑pg_hba.conf文件 sudo vim /var/lib/pgsql/10/data/pg_hba.conf

2). 将

# IPv4 local connections:
host    all             all             127.0.0.1/32           md5

更改为
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
3). 保存后重启postgres: systemctl restart postgresql-10

猜你喜欢

转载自blog.csdn.net/Gzigithub/article/details/85233667