问题标签 [airflow-scheduler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
airflow - 气流:日志文件不是本地的,不受支持的远程日志位置
airflow.cfg 文件中的日志相关设置为:
remote_base_log_folder =
base_log_folder = /home/my_projects/ksaprice_project/airflow/logs
worker_log_server_port = 8793
child_process_log_directory = /home/my_projects/ksaprice_project/airflow/logs/scheduler
虽然我正在设置 remote_base_log_folter 它试图从中获取日志http://:8793/log/tutorial/print_date/2017-08-02T00:00:00
- 我不明白这种行为。根据设置,工作人员应该将日志存储在,/home/my_projects/ksaprice_project/airflow/logs
并且应该从同一位置而不是远程获取日志。
airflow - 部署如何与 Airflow 配合使用?
我正在使用 Celery Executor 和来自这个dockerfile的设置。
我正在将我的 dag 部署/usr/local/airflow/dags
到调度程序容器的目录中。
我可以使用以下命令运行我的 dag:
我的 dag 包含一个简单的 bash 运算符:
操作员运行test.sh
脚本。
但是,如果test.sh
引用其他文件,例如callme.sh
,那么我会收到“找不到文件”错误。
运行 myworkflow 时,调用 test.sh 的任务被调用,但因找不到 callme.sh 而失败。
我觉得这很混乱。与工人共享代码资源文件是我的责任还是气流的责任?如果是我的,那么推荐的方法是什么?我正在考虑使用 EFS 并将其安装在所有容器上,但对我来说它看起来非常昂贵。
python - Airflow:如何从 PostgreOperator 推送 xcom 价值?
我正在使用 Airflow 1.8.1,我想从 PostgreOperator 推送 sql 请求的结果。
这是我的任务:
这是我的 sql 脚本:
当我从中检查 xcom 值时,check_task
它会检索none
值。
airflow - 气流任务卡在“排队”状态并且永远不会运行
我正在使用 Airflow v1.8.1 并在 kubernetes 和 Docker 上运行所有组件(worker、web、flower、scheduler)。我将 Celery Executor 与 Redis 一起使用,我的任务如下所示:
所以start
任务有多个下游。我设置并发相关配置如下:
然后当我手动运行这个 DAG 时(不确定它是否永远不会发生在计划任务上),一些下游被执行,但另一些则停留在“排队”状态。
如果我从管理 UI 中清除任务,它就会被执行。没有工作日志(在处理了一些第一个下游之后,它只是不输出任何日志)。
Web 服务器的日志(不确定worker exiting
是否相关)
调度程序也没有错误日志。每当我尝试此操作时,许多卡住的任务都会发生变化。
因为我也使用 Docker,所以我想知道这是否相关: https ://github.com/puckel/docker-airflow/issues/94 但到目前为止,还没有任何线索。
有没有人遇到过类似的问题或知道我可以针对这个问题调查什么......?
python - 如何使用 Airflow 高效管理单台机器上的资源
我在 2015 年初配备 3.1 GHz Intel Core i7 处理器和 16GB 或 RAM 的 MacBook Pro 上运行具有 +400 个任务的 Airflow 进程。
我正在运行的脚本看起来很像这样,不同之处在于我将 DAG 定义为
尽量避免并行触发太多任务。以下是我做这件事的一系列截图。我的问题是:
- 此操作会生成大量 python 进程。是否有必要以这种方式在 RAM 中定义整个任务队列,或者气流可以采取“随手生成任务”的方法来避免启动这么多进程。
- 我认为
max_active_runs
控制在任何给定时间实际有多少进程正在工作。不过,回顾我的任务,我将有几十个任务占用 CPU 资源,而其余任务则处于空闲状态。这真是低效,我该如何控制这种行为?
以下是一些屏幕截图:
事情有了一个足够好的开始,并行运行的进程比我预期的要多得多:
该过程基本上循环通过这些阶段,直到完成。最终的任务分解如下所示:
有什么想法吗?
airflow - 如何在气流中使用 --conf 选项
我正在尝试运行气流 DAG,并且需要为任务传递一些参数。
如何trigger_dag
在 python DAG 文件中读取在命令行命令中作为 --conf 参数传递的 JSON 字符串。
前任:airflow trigger_dag 'dag_name' -r 'run_id' --conf '{"key":"value"}'
python - 气流拾取排队的任务非常慢
我在 AWS t2-medium 上的 docker 中有气流,任务正在排队,但似乎有时要等很长时间才能被接走。
它可能长达几分钟,也可能会卡住(下班后不会被捡起)。
我的配置中有以下内容:
有什么建议么?
谢谢!
airflow - Apache Airflow:DAG 在 start_date 之前执行了两次
。嗨,大家好,
从 Airflow UI 中,我们试图了解如何在未来的特定时间启动 DAG 运行,但我们总是在追赶模式下获得 2 次额外的运行(即使追赶被禁用)
例子
使用以下参数创建 DAG 运行
- 开始日期:10:30
- execution_date:未定义
- 间隔 = 3 分钟(来自 .py 文件)
- catchup_by_default = False
在当前时间打开ON 开关:10:28。我们得到的是 Airflow 触发了 2 个 DAG 运行,execution_date 位于:
- 10:24
- 10:27
并且这 2 次 DAG 运行一个接一个地以追赶模式运行,这不是我们想要的 :-(
我们做错了什么?我们可能理解 10:27 的运行(ETL 概念),但我们没有得到 10:24 的运行 :-(
感谢您的帮助 :-)
细节:
操作系统:红帽 7
蟒蛇:2.7
气流:v1.8.0
DAG python 文件:
hadoop - Apache Airflow 分布式处理
我对 Apache Airflow 的架构感到困惑。
如果我知道,当您在 oozie 中执行 hql 或 sqoop 语句时,oozie 会将请求定向到数据节点。
我想在 Apache Airflow 中实现同样的目标。我想执行一个 shell 脚本、hql 或 sqoop 命令,并且我想确保我的命令正在由数据节点分布式执行。Airflow 有不同的执行器类型。我应该怎么做才能同时在不同的数据节点中运行命令?
airflow - Apache Airflow 多租户
我正在尝试弄清楚 Airflow 如何在多租户环境中工作。具体来说,要求应如下所示:
- 两个团队 TeamA 和 TeamB 正在使用一个 Airflow 实例。
- 团队的 A 和 B 每个都有自己的服务用户帐户:serviceUserA 和 ServiceUserB,他们应该在其下运行他们的工作。
- 出于安全原因,团队 A 不应创建在 ServiceUserB 下运行的作业,反之亦然。
在这一点上,我不清楚要求 3. 是否可以通过 Airflow 来满足,除非给每个团队一个单独的 Airflow 实例。有什么方法可以实现吗?