こんにちは、サイオステクノロジーの稲垣です。
現在、ジョブ管理ツールは数多くありますが、最近 Azkaban を触る機会があったのでこのツールの構築から使用などに関して書いていこうかなと思います。
今回は第一弾として、Azkaban の紹介からインストールして実際にサービスを起動するところまでやっていこうと思います。
Azkaban とは
Azkaban とは、Hadoop ジョブを実行するために LinkedIn 社で作成されたバッチワークフロージョブスケジューラ、いわゆるジョブ管理ツールとなります。
Hadoop ジョブを実行するためということもあり Hadoop との親和性が非常に高いですが、Hadoop を使用していない環境でもジョブ管理ツールとして使用することができます。
Google などで名前だけ検索しても某小説が大量に引っかかってしまうため、あまり認知度は高くないかもしれません…実際に、自分はやってみるまで存在を知りませんでした。
Azkaban のインストール
今回は CentOS 7.5 環境上に Azkaban をインストールします。
また、Azkaban は Web 管理画面を提供している Web サーバ部分とジョブを実行する Executor 部分、データベースである MySQL 部分を分けて構築するのが標準的な構成みたいです。
ですが、今回はすべてのコンポーネントを 1 つのサーバに構築する solo server を構築しようと思います。
Azkaban をビルドする前に、まずは必要パッケージがインストールされているか確認します。
Azkaban 3 系の動作には Java 8 以上が必要になります。インストールされていない場合は、適宜インストールしてください。
$ rpm -qa | grep java java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
この他にビルドのために開発パッケージ群が必要となるので、yum groupinstall コマンドでまとめてインストールします。
$ sudo yum groupinstall Development tools
インストールが完了したら、以下のコマンドを実行して Azkaban の github から 最新版を取得します。
$ git clone https://github.com/azkaban/azkaban.git
取得後、azkaban ディレクトリに移動してビルドし、Azkaban サービスを起動します。
また、ビルドした結果 ~/azkaban/azkaban-solo-server/build/distributions/ ディレクトリ以下に圧縮されたファイルが作成されているので、これを適当な場所に解凍して Azkaban のホームディレクトリとして使用しても問題ありせん。
$ cd azkaban $ ./gradlew build -x test installDist $ cd azkaban-solo-server/build/install/azkaban-solo-server/ $ bin/start-solo.sh
サービス起動コマンドを実行したら、クライアントのブラウザから以下の URL にアクセスします。
//[FQDN or IP address]:8081
ログイン画面が表示されたら、ユーザ名とパスワードを入力してログインします。
デフォルトでは、ユーザ名とパスワードともに azkaban となります。
以上となります。
次回は、実際にジョブを実行するところをやっていこうと思います。
それでは。