Setup Azkaban Web Server

Azkaban Web Server handles project management, authentication, scheduling and trigger of executions.


Installing the Web Server

Grab the azkaban-web-server package from the download page.

Alternatively, by cloning the github repo, you can run ant -package-all build the latest version from master.

Extract the package into a directory. The install path should be different from the AzkabanExecutorServer.

After extraction, there should be the following directories.


Folder Description
bin The scripts to start Azkaban jetty server |
conf The configurations for Azkaban web server |
lib The jar dependencies for Azkaban |
extlib Additional jars that are added to extlib will be added to Azkaban's classpath |
plugins the directory where plugins can be installed |
web The web (css, javascript, image) files for Azkaban web server. |

{.params}

In the conf directory, there should be three files

  • azkaban.properties - Used by Azkaban for runtime parameters
  • global.properties - Global static properties that are passed as shared properties to every workflow and job.
  • azkaban-users.xml - Used to add users and roles for authentication. This file is not used if the XmLUserManager is not set up to use it.

The azkaban.properties file will be the main configuration file that is necessary to setup Azkaban.


Getting KeyStore for SSL

Azkaban uses SSL socket connectors, which means a keystore will have to be available. You call follow the steps provided at this link (http://docs.codehaus.org/display/JETTY/How+to+configure+SSL) to create one. Once a keystore file has been created, Azkaban must be given its location and password. Within azkaban.properties, the following properties should be overridden.

jetty.keystore=keystore
jetty.password=password
jetty.keypassword=password
jetty.truststore=keystore
jetty.trustpassword=password

Setting up the DB

If you haven't gotten the MySQL JDBC driver, you can get it from this link: http://www.mysql.com/downloads/connector/j/. Drop this jar into the extlib directory. All external dependencies should be added to the extlib directory.

To point Azkaban web client to the MySQL instance, you will need to add the connection parameters to azkaban.properties.

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

Currently MySQL is the only data store type supported in Azkaban. So database.type should always be mysql.


Setting up the UserManager

Azkaban uses the UserManager to provide authentication and user roles. By default, Azkaban includes and uses the XmlUserManager which gets username/passwords and roles from the azkaban-users.xml as can be seen in the azkaban.properties file. * user.manager.class=azkaban.user.XmlUserManager * user.manager.xml.file=conf/azkaban-users.xml


Running Web Server

The following properties in azkaban.properties are used to configure jetty.

jetty.maxThreads=25
jetty.ssl.port=8443

Execute bin/azkaban-web-start.sh to start AzkabanWebServer. To shutdown the AzkabanWebServer, run bin/azkaban-web-shutdown.sh

You can test access by accessing the web server through a browser.