在 Luigi Visualiser 中保留已完成的管道

Persist Completed Pipeline in Luigi Visualiser

我开始将夜间数据管道从可视化 ETL 工具移植到 Luigi,我真的很喜欢有一个可视化工具来查看作业的状态。但是,我注意到在最后一个作业(名为 MasterEnd)完成几分钟后,除了 MasterEnd 之外的所有节点都从图中消失了。这有点不方便,因为我希望看到 day/past 天的一切都已完成。

此外,如果我在可视化器中直接转到上一个作业的 URL,它找不到它 运行: Couldn't find task MasterEnd(date=2015-09-17, base_url=http://aws.east.com/, log_dir=/home/ubuntu/logs/) 的任何历史记录。今天早上我已经验证 运行 成功。

需要注意的一件事是,我有一个 cron,每 15 分钟 运行 运行一次此管道以检查 S3 上的文件。如果存在,则 运行s,否则停止。我不确定这是否会导致从可视化工具中删除任务。我注意到它每 运行 生成一个新的 PID,但我找不到在文档中保留一个 PID/day 的方法。

所以,我的问题是:是否可以在可视化工具中保留当天完成的图表?有没有办法查看过去发生的事情?

感谢所有帮助

如果这是正确的,我不是 100% 肯定,但这是我会首先尝试的。当你调用 luigi.run 时,传递它 --scheduler-remove-delay。我猜这是调度程序在其所有依赖项完成后忘记任务之前等待的时间。如果你翻看luigi's source,默认是600秒。例如:

luigi.run(["--workers", "8", "--scheduler-remove-delay","86400")], main_task_cls=task_name)

如果您在 luigi.cfg 中配置 remove_delay 设置,那么它将使任务保持更长时间。

[scheduler]
record_task_history = True
state_path = /x/s/hadoop/luigi/var/luigi-state.pickle
remove_delay = 86400

请注意,文档中有一个拼写错误("remove-delay" 而不是 remove_delay"),正在 https://github.com/spotify/luigi/issues/2133

下修复