Pain in the Az…kaban

Azkaban is pipe-lining system with scheduling capability, a good substitute for cron as it provides typical manger’s functionalities, e.g.: monitoring, rerun, visualization and so on.

Due to the lack of example, user and vague documentation, it is not easy to setup Azkaban in non-standalone mode. However I was lucky. Albeit I was English educated, my Chinese is not at all bad. I have managed to find critical information in one of the Chinese blogs which is not available elsewhere. Long story short, please take note of following the followings should you want to install it as well.

  1.  If working behind a proxy, for fast POC, you can avoid using ssl in web server by having:
    jetty.use.ssl=false
    jetty.port=1234
  2. For your webserver to work properly:
    azkaban.default.servlet.path=/index
    web.resource.dir=web/
  3. When using AJAX API, use actual url (lalalala.prod.jp.local) not ip address (localhost, 0.0.0.0, 127.0.0.1), if that makes any sense at all:
    curl -k -X POST –data “action=login&username=azkaban&password=azkaban” http://lalalala.prod.jp.local:8080

You can thank me later.

In case of SSL, if you are not familiar already:

  1. Create key
    openssl genrsa -aes128 -out jetty.key
  2. Create cert
    req -new -x509 -newkey rsa:2048 -sha256 -key jetty.key -out jetty.crt
  3. Adding cert to keystore/ truststore
    keytool -keystore keystore -import -alias jetty -file jetty.crt -trustcacerts

References:

  1. http://azkaban.github.io/azkaban/docs/latest/#webserver-setup
  2. http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html#loading-keys-and-certificates
  3. https://unix.stackexchange.com/questions/347116/how-to-create-keystore-and-truststore-using-self-signed-certificate
  4. http://www.cnblogs.com/tannerBG/p/3835952.html

Leave a Reply