Lightweight Azkaban client
Branch: master
Clone or download
juhoautio and mtth Fix AzkabanError bug affecting python 2.6+
Python's Exception doesn't have `message` since 2.6. Store it in a field so that calls of AzkabanError.message keep working.
Latest commit 7ccfa64 Jan 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
azkaban Fix AzkabanError bug affecting python 2.6+ Jan 19, 2019
doc
examples modifications for python3 compatibility May 22, 2014
test
.travis.yml Update doc. Dec 27, 2014
AUTHORS Added tests for `get_workflow_executions`, `get_running_workflows`. Nov 10, 2014
CHANGES
LICENSE first Oct 17, 2013
MANIFEST.in
README.rst Add a few test fixes for Azkaban 3.0 Jan 17, 2019
setup.py Update dependency version Jun 26, 2015

README.rst

AzkabanCLI build_image

A lightweight Azkaban client providing:

  • A command line interface to run workflows, upload projects, etc.
  • A convenient and extensible way for building projects.

Sample

Below is a simple configuration file for a project containing a workflow with three jobs:

from azkaban import Job, Project
from getpass import getuser

PROJECT = Project('sample')

# properties available to all jobs
PROJECT.properties = {
  'user.to.proxy': getuser(),
}

# dictionary of jobs
JOBS = {
  'first': Job({'type': 'command', 'command': 'echo "Hello"'}),
  'second': Job({'type': 'command', 'command': 'echo "World"'}),
  'third': Job({'type': 'noop', 'dependencies': 'first,second'}),
}

for name, job in JOBS.items():
  PROJECT.add_job(name, job)

The examples directory contains another sample project that uses Azkaban properties to build a project with two configurations: production and test, without any job duplication.

Documentation

The full documentation can be found here.

Installation

Using pip:

$ pip install azkaban

Development

Run tests:

$ nosetests

To also run the integration tests against an Azkaban server, create ~/.azkabanrc that includes at least:

[azkaban]
test.alias = local

[alias.local]
url = azkaban:azkaban@http://localhost:8081