首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整气流的芹菜能见度超时

调整气流的芹菜能见度超时
EN

Stack Overflow用户
提问于 2020-04-18 14:37:01
回答 1查看 1.5K关注 0票数 1

编辑(2020-4-18):添加了元数据数据库的上下文。添加了关于StatsD的上下文。

背景

我操作气流1.10.3部署。它使用MySQL 5.7作为元数据数据库。它使用CeleryExecutorRedis 3.2.5作为芹菜经纪人。

我构建了气流包,我的DAG代码,和任何其他相关的信任到1码头形象

我的部署启动了每个Webserver、for服务器、Scheduler和Worker的Docker容器;它们都是从1 Docker映像中派生出来的。Redis也在码头容器中运行,但不是从与其他气流组件相同的码头映像中运行的。MySQL不是容器化的,而是像任何传统的OLTP数据库一样保持和运行。部署顺序包括:

  1. 建立一个新的码头形象与任何更改的DAG代码,等等。
  2. 杀死当前正在运行的气流码头集装箱(即Webserver、Scheduler等);但Redis容器除外。
  3. 从新建的码头形象中纺出新的码头集装箱。

是唯一在部署过程中没有被“擦除和替换”的气流组件是Redis容器.

我(连续)每天部署3-7次。

问题

通常,在正常运行期间,一组气流任务在日志中显示如下:

代码语言:javascript
复制
[2018-02-23 12:57:01,711] {models.py:1190} INFO - Dependencies not met for <TaskInstance: userdbs.dump.dedicated 2018-02-21 02:00:00 [running]>, dependency 'Task Instance State' FAILED: Task is in the 'running' state which is not a valid state for execution. The task must be cleared in order to be run.
[2018-02-23 12:57:01,711] {models.py:1190} INFO - Dependencies not met for <TaskInstance: userdbs.dump.clustered 2018-02-21 02:00:00 [running]>, dependency 'Task Instance Not Already Running' FAILED: Task is already running, it started on 2018-02-23 06:54:44.431988.

这些任务通常运行时间很长.当我调查的时候,基本的任务通常是合法地运行的。我的DAG任务可以处理大量的数据,并且合法地需要运行6到10个小时才能成功完成。因此,关于分解这些任务以处理更少数据的讨论应该超出这个问题的范围。

--我相信这与我如何部署以及上面的日志通常何时出现有关。,但我没有硬性数据来支持这一点。

一些在线搜索显示,将芹菜可见性超时提高到比我预期的最长运行任务(跨所有DAG)高的值应该可以解决这个问题。--我计划实现这个.

但我最关心的是,增加了可见性超时时间(可能达到11小时)+没有在部署时杀死Redis容器,这会给我留下大约11个小时的时间来注意到它需要重新安排任务。这种担忧源于芹菜文档(https://docs.celeryproject.org/en/latest/getting-started/brokers/redis.html#id1)中的这一评论:

代码语言:javascript
复制
Note that Celery will redeliver messages at worker shutdown, so having a long visibility timeout will only delay the redelivery of ‘lost’ tasks in the event of a power failure or forcefully terminated workers.

问题

  1. 是我关注芹菜的问题吗?注意到它需要重新安排一个任务有效的(考虑到我的部署设置)?
  2. 我是否应该考虑杀死Redis容器以及所有其他气流组件?我主要关心的是,调度器是否足够聪明,一旦它启动,就可以重建一个准确的世界观。
  3. “依赖未满足”消息是否与相关,而不是与芹菜可见超时有关?如果是,什么?新的气流版本能解决这个问题吗?
  4. 我已经配置了StatsD指标。是否有我可以分析的具体指标来了解这里发生了什么?(或者是在新的气流版本中引入的新指标,可以帮助在这里观察到?)
EN

回答 1

Stack Overflow用户

发布于 2020-04-18 15:10:05

不能回答你所有的问题,但是:

  • 你用哪个DB来做气流?波斯特格斯?你还坚持吗?

我认为你不应该碰你的Redis容器(换句话说-保持它)。我认为您应该将其配置为您的芹菜后端结果。此外,考虑以下配置(我正在使用它):

  • 迟来 -任务执行后将被确认。还请阅读此常见问题: 当您需要再次执行任务时,如果工作人员(由于某种原因)在执行过程中崩溃,将使用acks_late设置。
  • 已启动 --当存在长期运行的任务时,拥有“已启动”状态非常有用,并且需要报告当前正在运行的任务。

考虑到指标,对于芹菜,您可以使用Flower (不要重新启动这个容器!)我看到了一个为气流配置Statsd的选项(我没有尝试过)。查看airflow.cfg中的下列配置

代码语言:javascript
复制
# Statsd (https://github.com/etsy/statsd) integration settings
statsd_on = False
statsd_host = localhost
statsd_port = 8125
statsd_prefix = airflow
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61290901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档