Luigi is a Python (3.6, 3.7, 3.8, 3.9 tested) package that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and much more. The purpose of Luigi is to address all the plumbing typically associated with long-running batch processes. You want to chain many tasks, automate them, and failures will happen. These tasks can be anything, but are typically long running things like Hadoop jobs, dumping data to/from databases, running machine learning algorithms, or anything else. You can build pretty much any task you want, but Luigi also comes with a toolbox of several common task templates that you use. It includes support for running Python mapreduce jobs in Hadoop, as well as Hive, and Pig, jobs. It also comes with file system abstractions for HDFS, and local files that ensures all file system operations are atomic.
Features
- Build complex pipelines of batch jobs
- It’s easy to build up long-running pipelines that comprise thousands of tasks
- Luigi helps you stitch many tasks together
- Luigi takes care of a lot of the workflow management
- Your data pipeline will not crash in a state containing partial data
- Using Luigi’s visualiser, you get a nice visual overview of the dependency graph of the workflow