在docker容器下安装airflow
本人的环境是基于centos7下来安装的
一、安装docker
下载docker安装包,下载地址:https://download.docker.com/linux/static/stable/x86_64/
下载到本地后解压
tar -zxf docker-18.09..tgz

将解压出来的docker文件内容移动到 /usr/bin/ 目录下
cp docker/* /usr/bin/
将docker注册为service
新建文件
vim /etc/systemd/system/docker.service
并添加以下内容
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target [Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd and above support this version.
#TasksMax=infinity
TimeoutStartSec=
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=
StartLimitInterval=60s [Install]
WantedBy=multi-user.target
添加文件权限
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
启动docker
systemctl start docker
验证
systemctl status docker #查看Docker状态
docker -v #查看Docker版本
二、安装airflow容器
先在宿主机安装mysql
上传mysql安装包

先卸载自带的mysql相关的包
rpm -qa|grep mariadb
mariadb-libs-5.5.-.el7_5.x86_64
$ 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)
$ sudo rpm -e --nodeps mariadb-libs-5.5.-.el7_5.x86_64
$ rpm -qa|grep mariadb
再依次安装
bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-common-5.7.-.el7.x86_64.rpm
warning: mysql-community-common-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-common-5.7.-.e################################# [%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-libs-5.7.-.el7.x86_64.rpm
warning: mysql-community-libs-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-libs-5.7.-.el7################################# [%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-libs-compat-5.7.-.el7.x86_64.rpm
warning: mysql-community-libs-compat-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-libs-compat-5.7.################################# [%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-embedded-compat-5.7.-.el7.x86_64.rpm
warning: mysql-community-embedded-compat-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-embedded-compat-################################# [%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-devel-5.7.-.el7.x86_64.rpm
warning: mysql-community-devel-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-devel-5.7.-.el################################# [%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-client-5.7.-.el7.x86_64.rpm
warning: mysql-community-client-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-client-5.7.-.e################################# [%]
[bigdata@bigdata mysql]$ sudo rpm -ivh mysql-community-server-5.7.-.el7.x86_64.rpm
warning: mysql-community-server-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [%]
Updating / installing...
:mysql-community-server-5.7.-.e################################# [%]
[bigdata@bigdata mysql]$
skip-grant-tables #添加这句话,这时候登入mysql就不需要密码

登录mysql,输入密码处直接回车就可以

配置msyql
mysql> flush privileges;
Query OK, rows affected (0.00 sec) mysql> set password for root@localhost = password('Admin123!');
Query OK, rows affected, warning (0.00 sec) mysql> create user 'airflow'@'localhost' identified by 'Airflow123!';
Query OK, rows affected (0.05 sec)
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> GRANT all privileges on airflow.* TO 'root'@'172.17.0.2' IDENTIFIED BY 'Admin123!';
Query OK, 0 rows affected, 1 warning (0.04 sec)
//172.17.0.2 是我的docker容器的地址
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置


character_set_server=utf8
init_connect='SET NAMES utf8'
vim /etc/my.cnf
添加这一句

explicit_defaults_for_timestamp=1
编辑保存完 重启mysql服务: sudo systemctl restart mysqld.service

三、docker上安装airflow
git clone https://github.com/puckel/docker-airflow.git /root/airflow //下载源码到airflow文件夹 docker run --name airflow6 -v /usr/local/airflow/dags:/usr/local/airflow/dags -v /usr/local/airflow/airflowSql:/usr/local/airflow/airflowSql -v /home/airflow/airflow.cfg:/usr/local/airflow/airflow.cfg -d -p 8086:8080 --privileged puckel/docker-airflow //运行容器 /* 我这里把本地的目录映射到容器里面去 通过 -v 参数进行映射**/
进入容器
docker exec -it -u root airflow6 bash
修改配置文件



自动扫描.py文件

修改scheduler线程数控制并发量(这个通常在性能调优方面)

修改检查新的dag的间隔

airflow initdb // 初始化数据库
出现错误:
airflow.exceptions.AirflowException: Could not create Fernet object: Incorrect padding
解决办法:
python -c "from cryptography.fernet import Fernet;
print(Fernet.generate_key().decode())"
export AIRFLOW__CORE__FERNET_KEY=oNu9XwewQNyx9mAJT2vZvtm3qzPRZIWRqwk9hSVch4A=
airflow initdb // 重新运行初始化数据库
打开浏览器

在docker容器下安装airflow的更多相关文章
- Centos7环境下Docker容器的安装与卸载
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal. ...
- Elasticsearch Docker环境下安装
Elasticsearch Docker环境下安装 Daemon镜像配置的是https://registry.docker-cn.com Linux:vi /etc/docker/daemon.jso ...
- 在Docker容器中安装jdk和spark
在Docker容器中安装jdk和spark 1.下载jdk和spark 可以使用迅雷等专业下载软件下载jdk和spark软件包,注意是linux版,这里直接给出下载地址: JDK下载地址 JDK进入后 ...
- Docker容器编译安装Redis
Docker容器编译安装Redis 1.创建容器 -i 交互模式 -d 后端运行 -h 容器的hostname --name 容器名 --network 网卡 --ip IP地址 -p 端口映射 -- ...
- Docker容器手动安装oracle19C
Docker容器手动安装oracle19C docker容器体积小,与宿主机共用内核参数,因此修改宿主机的内核参数即是修改容器的内核参数 1.修改宿主机内核参数 [root@localhost ~]# ...
- docker容器里面安装ssh
docker容器里面安装ssh https://blog.csdn.net/chengxuyuanyonghu/article/details/76619097
- docker容器下tomcat 不向catalina.out输出日志解决以及支持中文字符集
docker容器下tomcat 不向catalina.out输出日志解决 去掉 & 符号,直接 使用 ENTRYPOINT ["/data/tomcat/bin/startup.sh ...
- Docker容器的安装和使用
Docker容器的安装和使用 安装: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 或国内:curl -sSL ...
- Docker容器编译安装Nginx
Docker容器编译安装Nginx,最简单的Nginx配置. 创建容器&进入容器 宿主机2080映射容器的80端口 [root@localhost ~]# docker run -i -d - ...
随机推荐
- cookie与session的区别?
一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案.同时我们也看到,由于才服务器端保持状态的方 ...
- C#+Entity Frame work+MVC+Mysql+Apicloud共享汽车管理系统【论文】+Apicloud开发实例
摘要: 共享汽车管理系统主要分为后台管理PC端和手机App端,后台管理可以对指定停车点.车辆基本信息.用户注册信息.用户订单信息.推送消息进行管理和维护,而手机app用户可以通过手机号进行短信注册,根 ...
- [Luogu] 小凯的疑惑
https://www.luogu.org/problemnew/show/P3951 考场上打表找规律的我写出了这样一份代码(紧张到爆<已经爆>) 当时一出考场听说是O(1)做法,当时就 ...
- 【线性代数】Linear Algebra Big Picture
Abstract: 通过学习MIT 18.06课程,总结出的线性代数的知识点相互依赖关系,后续博客将会按照相应的依赖关系进行介绍.(2017-08-18 16:28:36) Keywords: Lin ...
- Leading and Trailing(LightOJ - 1282)
题解:求一个数的次幂,然后输出前三位和后三位,后三位注意有前导0的情况. 后三位直接用快速幂取模求解. 前三位求得时候只需要稍微变形一下,可以把乘过的结果拆成用科学计数法,那么小数部分只有由前面决定, ...
- c 判断一个字符是否为字母
#include <stdio.h> #include <wctype.h> int main () { ; wchar_t str[] = L"C++"; ...
- pydub音频处理库的使用
pydub音频处理库的使用 在使用pydub这个模块之前应确保你的libav或者FFmpeg Mac上安装libav或FFmpeg brew install libav --with-libvorbi ...
- UVA 10029 Edit Step Ladders ——(DAG求最长路)
题意:升序的给出一本若干个单词,每个单词都可删除一个字母,添加一个字母或者改变一个字母,如果任意一个操作以后能变成另外一个字典中的单词,那么就连一条有向边,求最长的长度. 分析:DAG的最长路和最短路 ...
- java实现自定义同步组件的过程
实现同步组件twinsLock:可以允许两个线程同时获取到锁,多出的其它线程将被阻塞. 以下是自定义的同步组件类,一般我们将自定义同步器Sync定义为同步组件TwinsLock的静态内部类. 实现同步 ...
- mysql与Oracle的区别:
1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大 ...