简化的Airflow CLI工具,用于启动CeleryExecutor部署

airflow-run的Python项目详细描述


气流流动

用于部署气流多节点集群的Python工具。在

要求

  • Python>;=3.6(已测试)

目标

提供快速设置气流多节点群集的方法(也称为芹菜执行器设置)。

台阶

  1. 生成配置yaml文件。在
  2. 运行命令以启动webserver、scheduler、worker、(rabbitmq、postgres)。在
  3. 添加dag文件并运行initdb。在

生成配置文件:

afr--generate_config

在与配置文件相同的目录中运行该工具:

^{pr2}$

或者,运行指定配置路径的工具:

afr--runpostgresql--config/path/config.yaml

或者,使用此环境变量设置配置路径:

exportAIRFLOWRUN_CONFIG_PATH="/some_path/config.yaml"

运行webserver、scheduler和worker(postgres和rabbitmq,如果需要本地实例)之后,在配置文件中定义的目录中的dags子目录中添加dag文件。在

(*注意:确保您在dags,logs子目录中具有正确的用户权限。)

就这样!!在

默认配置文件:

private_registry:Falseregistry_url:registry.hub.docker.comusername:""password:""repository:pkuong/airflow-runimage:airflow-runtag:latestlocal_dir:{local directory where you want to mount /dags and /logs folder}webserver_port:8000flower_port:5555custom_mount_volumes:[]env:AIRFLOW__CORE__EXECUTOR:CeleryExecutorAIRFLOW__CORE__LOAD_EXAMPLES:"False"AIRFLOW__CORE__DAGS_FOLDER:/usr/local/airflow/airflow/dagsAIRFLOW__CORE__LOGS_FOLDER:/usr/local/airflow/airflow/logsAIRFLOW_HOME:/usr/local/airflowAIRFLOW__CORE__FERNET_KEY:""rabbitmq:name:rabbitmqusername:{username}password:{password}host:{IP}virtual_host:/image:rabbitmq:3-managementhome:/var/lib/rabbitmqui_port:15672port:5672env:RABBITMQ_DEFAULT_USER:{username}RABBITMQ_DEFAULT_PASS:{password}postgresql:name:postgresqlusername:{username}password:{password}host:{host}image:postgresdata:/var/lib/postgresql/dataport:5432env:PGDATA:/var/lib/postgresql/data/pgdataPOSTGRES_USER:{username}POSTGRES_PASSWORD:{password}

自定义装载卷

您可以在容器中指定自定义装载卷,例如:
custom_mount_volumes:-host_path:/Users/bob/.awscontainer_path:/usr/local/airflow/.aws

Docker图像

此工具默认使用以下公共docker映像。
https://hub.docker.com/repository/docker/pkuong/airflow-run

塑造形象:

如果要构建自己的映像,可以运行以下命令:
afd--build--config_path={absolutepathtoconfig.yaml}--dockerfile_path={absolutepathtodirectorywhichcontainsDockerfile}

贡献者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Spring引导应用程序中的java循环视图路径异常   java在PreferenceActivity中显示ProgressDialog   java RESTEasy如何将基本身份验证设置为ClientRequest   使用MongoDB进行java漏斗分析?   java JUnit系统日期   java创建一个集合,每个类有一个对象   java如何在子模块项目中测试Springbean   java Websocket服务器Android   javaitext:如何在新页面上重复表单元格内容?   java一旦spring mvc样板项目建立起来,python/RoR的开发速度会更快吗?   java为什么Maven Tycho不能在工具链中找到正确的JDK。xml?   Java Selenium获取用于单击的元素   java如何使用嵌套的if语句而不是系统阻止程序在blueprint类中运行。出口(0);?   java模板聚合匹配和投影一个没有id的字段   java您的内容必须有一个id属性为“安卓”的TabHost。安卓应用程序的R.id.tabhost错误   JavaEclipseLink 1.2和BatchFetch   java如何更改HttpClient中的超时值?   java在toString方法中将对象转换为特定数据类型   java正在跳过运行for循环