问题标签 [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.

0 投票
3 回答
12933 浏览

airflow - 气流:日志文件不是本地的,不受支持的远程日志位置

我无法从 Airflow UI 看到附加到任务的日志: 在此处输入图像描述

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并且应该从同一位置而不是远程获取日志。

更新 task_instance 表内容: 在此处输入图像描述

0 投票
1 回答
614 浏览

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 并将其安装在所有容器上,但对我来说它看起来非常昂贵。

0 投票
2 回答
8945 浏览

python - Airflow:如何从 PostgreOperator 推送 xcom 价值?

我正在使用 Airflow 1.8.1,我想从 PostgreOperator 推送 sql 请求的结果。

这是我的任务:

这是我的 sql 脚本:

当我从中检查 xcom 值时,check_task它会检索none值。

0 投票
5 回答
41022 浏览

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 但到目前为止,还没有任何线索。

有没有人遇到过类似的问题或知道我可以针对这个问题调查什么......?

0 投票
1 回答
753 浏览

python - 如何使用 Airflow 高效管理单台机器上的资源

我在 2015 年初配备 3.1 GHz Intel Core i7 处理器和 16GB 或 RAM 的 MacBook Pro 上运行具有 +400 个任务的 Airflow 进程。

我正在运行的脚本看起来很像这样,不同之处在于我将 DAG 定义为

尽量避免并行触发太多任务。以下是我做这件事的一系列截图。我的问题是:

  1. 此操作会生成大量 python 进程。是否有必要以这种方式在 RAM 中定义整个任务队列,或者气流可以采取“随手生成任务”的方法来避免启动这么多进程。
  2. 我认为max_active_runs控制在任何给定时间实际有多少进程正在工作。不过,回顾我的任务,我将有几十个任务占用 CPU 资源,而其余任务则处于空闲状态。这真是低效,我该如何控制这种行为?

以下是一些屏幕截图:

事情有了一个足够好的开始,并行运行的进程比我预期的要多得多: 在此处输入图像描述

一切都陷入困境,并且有很多空闲进程。事情似乎停止了: 在此处输入图像描述

终端开始吐出大量错误消息,并且有很多进程失败: 在此处输入图像描述

该过程基本上循环通过这些阶段,直到完成。最终的任务分解如下所示:

有什么想法吗?

0 投票
3 回答
26056 浏览

airflow - 如何在气流中使用 --conf 选项

我正在尝试运行气流 DAG,并且需要为任务传递一些参数。

如何trigger_dag在 python DAG 文件中读取在命令行命令中作为 --conf 参数传递的 JSON 字符串。

前任:airflow trigger_dag 'dag_name' -r 'run_id' --conf '{"key":"value"}'

0 投票
0 回答
600 浏览

python - 气流拾取排队的任务非常慢

我在 AWS t2-medium 上的 docker 中有气流,任务正在排队,但似乎有时要等很长时间才能被接走。

它可能长达几分钟,也可能会卡住(下班后不会被捡起)。

我的配置中有以下内容:

有什么建议么?

谢谢!

0 投票
3 回答
2662 浏览

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 文件:

0 投票
2 回答
1376 浏览

hadoop - Apache Airflow 分布式处理

我对 Apache Airflow 的架构感到困惑。

如果我知道,当您在 oozie 中执行 hql 或 sqoop 语句时,oozie 会将请求定向到数据节点。

我想在 Apache Airflow 中实现同样的目标。我想执行一个 shell 脚本、hql 或 sqoop 命令,并且我想确保我的命令正在由数据节点分布式执行。Airflow 有不同的执行器类型。我应该怎么做才能同时在不同的数据节点中运行命令?

0 投票
2 回答
2931 浏览

airflow - Apache Airflow 多租户

我正在尝试弄清楚 Airflow 如何在多租户环境中工作。具体来说,要求应如下所示:

  1. 两个团队 TeamA 和 TeamB 正在使用一个 Airflow 实例。
  2. 团队的 A 和 B 每个都有自己的服务用户帐户:serviceUserA 和 ServiceUserB,他们应该在其下运行他们的工作。
  3. 出于安全原因,团队 A 不应创建在 ServiceUserB 下运行的作业,反之亦然。

在这一点上,我不清楚要求 3. 是否可以通过 Airflow 来满足,除非给每个团队一个单独的 Airflow 实例。有什么方法可以实现吗?