Tag: airflow

在专用的Docker环境中使用分布式Airflow工作者

我们有一个执行Java代码的提取作业,我们封装在Dockerfile中以保持主机清洁。 现在我们正在考虑引入Airflow来实现这个和其他任务的自动化。 我们的任务运行在不同的机器上,并且应该是可扩展的,所以我们想在docker容器中执行所有的东西。 我们使用RabbitMQ作为队列, MySQL使用元数据库。 直觉上,我认为安装一个专用于处理CeleryExecutor部件的最小Airflow python包就足够了,但是似乎任何Airflow实例都必须与数据库保持连接,所以看起来最终我不得不使用与Airflow服务器/调度程序相似的(Docker)环境。 现在我想知道是否需要inheritance我想要pipe理的每一项工作的基本Airflow图像? 在我们的情况下,这意味着,我必须通过在inheritance的Airflow环境之上安装Java部件来得到一些混乱。 我是否真的必须编写自定义的Dockerfile部件来包含Java或其他我通常只从一个专用Docker镜像inheritance的环境,或者还有另一个我没有看到的选项? 在我看来,在docker内部启动docker不是一种select。

docker-compose未知的MySQL服务器主机'mysql'(气stream)

我尝试创build我的Airflow服务。 当我分别运行三个docker(没有docker-compose )时,一切正常,但是当我尝试使用docker-compose来做同样的事情时,我得到这个错误。 看来,气stream看不到数据库。 docker-compose.yml version: '2' services: mysql: image: "someregisty/mysql" environment: – MYSQL_ROOT_PASSWORD=somepassword redis: image: "someregisty/redis" airflow: image: "someregisty/airflow" volumes: – ./dags:/home/airflow/dags – ./logs:/home/airflow/logs – ./config/airflow.cfg:/home/airflow/airflow.cfg – ./config/resolv.conf:/etc/resolv.conf – ./config/somekeytab.keytab:/home/airflow/airflow.keytab ports: – "8484:8080" environment: – AIRFLOW__CELERY__BROKER_URL=redis://redis:6379/0 – AIRFLOW__CELERY__CELERY_RESULT_BACKEND=db+mysql://root:somepassword@mysql/airflow – AIRFLOW__CORE__SQL_ALCHEMY_CONN=mysql://root:somepassword@mysql/airflow – AIRFLOW__CORE__AIRFLOW_HOME=/home/airflow – AIRFLOW__CORE__DAGS_FOLDER=/home/airflow/dags/ – AIRFLOW__CORE__PLUGINS_FOLDER=/home/airflow/plugins/ – AIRFLOW_SCHEDULER=true – AIRFLOW_WEBSERVER=true – AIRFLOW_WORKER=true – AIRFLOW_KERBEROS=true […]