一、环境:
CentOS 7.10
CDH 6.2.1(python 2.7)
二、前提
第一次接触Airflow,也没有python基础,需要在CDH中集成Airflow环境,准备阶段,查询发现需要redis支持,单独搭建了Redis5.0.4(注意配置远程访问),具体使用,尚在摸索中。
太小白了,好多大拿的文章写的比较省略,翻了好长时间的百度和必应,才搞出来,路漫漫其修远兮,我将继续努力!
三、参考链接
https://blog.csdn.net/qq_40593230/article/details/114840066
https://blog.csdn.net/weixin_39122545/article/details/108486246
https://blog.csdn.net/wang725/article/details/80071074
https://blog.csdn.net/qq_34759180/article/details/86370403
感恩各位大拿的无私奉献!
四、开始安装准备工作
1,下载Airflow的parcel:
下载地址 http://archive.clairvoyantsoft.com/airflow/parcels/latest/
2,放在目录 /OPT/CLOUDERA/CSD 下
3,重启 CLOUDERA-SCM-SERVER
service cloudera-scm-server restart
4,创建数据库,元数据mysql库
# 创建 cdh airflow 数据库
create database airflow default character Set utf8 collate utf8_general_ci;
# 授予权限
GRANT All ON airflow.* TO 'airflow'@'%' IDENTIFIED BY '123456';
# 刷入
FLUSH PRIVILEGES;
# airflow 报错及修改
# Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
show GLOBAL VARIABLES like '%TIMESTAMP';
SET GLOBAL explicit_defaults_for_timestamp =1;
五、CDH集成
1,进入 CLOUDERA MANAGER --> 主机 --> PARCEL
2,激活并分配AIRFLOW
3,cdh中添加Airflow服务
Cluster选择“添加服务”,选择airflow,选择主机
图仅供参考,因为只是搭建完成,还没有实际使用,也没有深入了解Airflow,分配有不合理的请指出:
然后,发现启动失败,worker都没启动成功。
六、异常修复
linux下setuptools 和 pip的安装
当前python版本为 python2.7
1,安装setuptools:
首先下载并安装setuptools:
cd usr/local/
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py --insecure
2,安装pip
到python官网下载pip安装包,解压到某个位置,我这里下载的是9.0.0版本,然后就可以安装了:
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
tar -xf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
3,python env中安装redis
之前安装redis的时候是下载的tar包,直接make完成安装的,应该没安装到env中,然后找到env中的pip再次安装
定位pip [root@bigdata00 local]# whereis pip pip: /usr/bin/pip /usr/bin/pip2.7 [root@bigdata00 local]# which pip /usr/bin/pip |
用此pip再次安装 [root@bigdata00 bin]# pwd /usr/bin [root@bigdata00 bin]#pip install redis
|
ImportError: Missing redis library (pip install redis)添加软链接:redis依赖包指向airflow对应文件目录 ln -s /usr/lib/python2.7/site-packages/redis /opt/cloudera/parcels/AIRFLOW-1.10.3-python2.7.15_b2/lib/python2.7/site-packages/ ln -s /usr/lib/python2.7/site-packages/redis-3.5.3.dist-info/ /opt/cloudera/parcels/AIRFLOW-1.10.3-python2.7.15_b2/lib/python2.7/site-packages/
把/usr/lib/python2.7/site-packages/redis和redis-3.5.3.dist-info发送到其他worker节点 scp -r redis/ root@bigdata01:/usr/lib/python2.7/site-packages scp -r redis-3.5.3.dist-info/ root@bigdata01:/usr/lib/python2.7/site-packages
重启worker |