Skip to main content

LitePipeline: distributed pipeline system

Project description

LitePipeline

A lightweight, scalable, distributed pipeline system, based on Python3, tornado, venv-pack, pyinstaller.

All code based on Python3, do not use Python2!

It still under development, so, maybe have some bugs or not stable enough!

You can use LitePipeline with LiteDFS, a distributed file system, based on Python3, tornado, inspired by HDFS.

See LiteDFS at https://github.com/fiefdx/LiteDFS

See more details at https://github.com/fiefdx/LitePipeline

Install

# install from pip
$ pip3 install -U litepipeline
# or install from source code
$ cd ./litepipeline
$ python3 ./setup.py install

# this will install 5 commands: liteconfig, litemanager, litenode, litepipeline, liteviewer
# liteconfig: to generate manager's or node's configuration file
# litemanager: to start LitePipeline manager
# litenode: to start LitePipeline node
# litepipeline: command line tool to communicate with LitePipeline cluster
# liteviewer: the web UI service, for communicate with LitePipeline cluster with web browser.

run

Run Manager

# create manager's data directory
$ mkdir ./manager_data

# generate manager's configuration file
$ cd ./manager_data
# this will generate a configuration.yml file under ./manager_data
$ litemanager -g ./

# run manager
$ litemanager -c ./configuration.yml

# test
$ curl localhost:8000
# return this message
{"message": "LitePipeline manager service"}

Run Node

# create node's data directory
$ mkdir ./node_data

# generate node's configuration file
$ cd ./node_data
# this will generate a configuration.yml file under ./node_data
$ litenode -g ./

# run node
# after start node, node will register to manager, and get a unique node id
$ litenode -c ./configuration.yml

# test
$ curl localhost:8001
# return this message
{"message": "LitePipeline node service"}

Run Viewer

# create viewer's data directory
$ mkdir ./viewer_data

# generate viewer's configuration file
$ cd ./viewer_data
# this will generate a configuration.yml file and other scripts under ./viewer_data
$ liteviewer -g ./

# run viewer
$ liteviewer -c ./configuration.yml

# test
# use web browser open: http://localhost:8088

Use Web Browser Communicate With LitePipeline Cluster

Use web browser open the liteviewer's host & port in it's configuration file

Use Command Line Communicate With LitePipeline Cluster

$ litepipeline localhost:8000 cluster info
# | node_id                              | http_host | http_port | action_slots | app_path                                                 | data_path                     
1 | 32313239-e7ee-4f90-8c05-4e08fb48be70 | 127.0.0.1 | 8001      | 2            | /usr/local/lib/python3.7/dist-packages/litepipeline/node | /home/pi/Develop/litenode/data

# use -h/--help parameter to see help message
$ litepipeline --help
usage: litepipeline [-h] [-W COLUMN_WIDTH] [-v]
                    address
                    {app,app_history,task,cluster,workspace,workflow,work,schedule,service}
                    ...

positional arguments:
  address               manager address, host:port
  {app,app_history,task,cluster,workspace,workflow,work,schedule,service}
                        sub-command help
    app                 operate with app API
    app_history         operate with app_history API
    task                operate with task API
    cluster             operate with cluster API
    workspace           operate with workspace API
    workflow            operate with workflow API
    work                operate with work API
    schedule            operate with schedule API
    service             operate with service API

optional arguments:
  -h, --help            show this help message and exit
  -W COLUMN_WIDTH, --column_width COLUMN_WIDTH
                        column max width
  -v, --version         show program's version number and exit


$ litepipeline localhost:8000 app --help
usage: litepipeline address app [-h]
                                {create,delete,update,list,info,download} ...

positional arguments:
  {create,delete,update,list,info,download}
                        sub-command app help
    create              create application
    delete              delete application
    update              update application
    list                list applications
    info                application's info
    download            download application

optional arguments:
  -h, --help            show this help message and exit


$ litepipeline localhost:8000 task --help
usage: litepipeline address task [-h]
                                 {create,delete,list,info,rerun,recover,stop}
                                 ...

positional arguments:
  {create,delete,list,info,rerun,recover,stop}
                        sub-command task help
    create              create task
    delete              delete task
    list                list tasks
    info                task's info
    rerun               rerun task
    recover             recover task
    stop                stop task

optional arguments:
  -h, --help            show this help message and exit


$ litepipeline localhost:8000 cluster --help
usage: litepipeline address cluster [-h] {info} ...

positional arguments:
  {info}      sub-command cluster help
    info      cluster's info

optional arguments:
  -h, --help  show this help message and exit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

litepipeline-0.1.5.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

litepipeline-0.1.5-py3-none-any.whl (2.8 MB view details)

Uploaded Python 3

File details

Details for the file litepipeline-0.1.5.tar.gz.

File metadata

  • Download URL: litepipeline-0.1.5.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for litepipeline-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a092881024f0b1a7779a9c338b51432ccbe822b14af10790129247d331a6bf50
MD5 1d4cbe101837bd6cf3953ed0af280ba6
BLAKE2b-256 771075e16d90a83a92239584ab3e80c29241ece36f6304c53b50f4c6fd0868ab

See more details on using hashes here.

File details

Details for the file litepipeline-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: litepipeline-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for litepipeline-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 007374bd8f74f526ca8de110589e37a03840e4bfdcbe427c5131a2c90b80eb89
MD5 b3624a937b58ef80e0bef36dbed34852
BLAKE2b-256 90b651f5909f72db881456126d133acf13f860a518dbf32939a1ae473d7cc012

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page