Repolode
spotify

spotify/luigi

用于构建复杂批处理任务流水线的 Python 框架,支持依赖解析、工作流管理与可视化。

Star
18,784
Fork
2,474
未关闭 Issue
192
最近提交
8天前

这是什么?

Luigi 是一个 Python 包,用于把大量批处理任务串联成流水线。任务及其依赖关系直接用 Python 代码描述,Luigi 负责解析依赖图、按顺序执行并处理失败,长时间运行的工作流可以在中断后继续,而无需重跑已完成的部分。

任务可以是 Hadoop 或 Hive 作业、Pig 脚本、Spark 作业、数据库表导出、scp 文件传输,也可以是任意 Python 函数。Luigi 内置 Hadoop 与 HDFS 支持,本地文件系统操作具有原子性,因此失败的运行不会留下不完整的数据。

Luigi 自带 Web 服务和可视化界面,可以搜索、过滤任务并查看依赖图,已完成与待执行的任务以不同颜色标示。通过 pip 安装,并可选择启用基于 TOML 的配置支持。

核心功能

  • 01自动解析任务依赖并按正确顺序执行。
  • 02内置 Hadoop、HDFS、Hive、Pig 和 Spark 作业支持。
  • 03文件系统操作具有原子性,失败的运行不会留下部分数据。
  • 04提供 Web 可视化界面,可搜索任务并查看依赖图。
  • 05任务用 Python 定义,依赖关系可以通过代码动态生成。

适用场景

  • 编排由 Hadoop、Hive 或 Spark 作业组成的每日或每小时数据流水线。
  • 串联数据库导出、数据转换和机器学习训练等步骤。
  • 批处理流程中途失败后,无需重跑已完成任务即可恢复执行。

快速上手

  1. 1

    从 PyPI 安装 Luigi

    pip install luigi
  2. 2

    安装支持 TOML 配置的 Luigi(可选)

    pip install luigi[toml]

使用前须知

  • 专为批处理流水线设计,不适合实时或流式工作负载。
  • 任务需用 Python 代码定义,缺乏 Python 经验的团队上手可能较难。

标签

常见问题

luigi 是什么?
用于构建复杂批处理任务流水线的 Python 框架,支持依赖解析、工作流管理与可视化。 Luigi 是一个 Python 包,用于把大量批处理任务串联成流水线。任务及其依赖关系直接用 Python 代码描述,Luigi 负责解析依赖图、按顺序执行并处理失败,长时间运行的工作流可以在中断后继续,而无需重跑已完成的部分。
luigi 可以免费使用吗?用的什么许可证?
luigi 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
luigi 还在维护吗?
活跃维护中。luigi 最近一次提交是在 2026年10月14日。
luigi 适合用来做什么?
编排由 Hadoop、Hive 或 Spark 作业组成的每日或每小时数据流水线。 串联数据库导出、数据转换和机器学习训练等步骤。 批处理流程中途失败后,无需重跑已完成任务即可恢复执行。
luigi 怎么安装和运行?
从 PyPI 安装 Luigi: pip install luigi 安装支持 TOML 配置的 Luigi(可选): pip install luigi[toml]
在哪里获取 luigi?
源代码和安装说明在 GitHub 上:https://github.com/spotify/luigi

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目