前回embulk入れましたが、そのままdigdagも導入します。
目次
digdagとは
分散ワークフローエンジンとのことですが、私はバッチスケジューラ的な使い方をしています。embulk単品でやるよりも、digdagで管理させた方が楽だったので併せて利用しています。
上手く説明できないので、興味がある人は公式サイトを参照して下さい。
Node.jsのインストール
digdagのインストールには以下が必要になります。
* JDK 8
* Node.js 7.x
前回embulkの導入でJDKは入れたので、そちらの手順は以下を参考に。
www.unknownengineer.net
Node.jsは以下手順で導入します。
# curl -L git.io/nodebrew | perl - setup # echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc # source ~/.bashrc # nodebrew ls-remote |grep v7.10.1 v7.10.1 # nodebrew install-binary v7.10.1 # nodebrew use v7.10.1
digdagのインストール
次はdigdag入れます。
# curl -o ~/bin/digdag --create-dirs -L https://dl.digdag.io/digdag-latest # chmod +x ~/bin/digdag # echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc # source ~/.bashrc # digdag --version 0.9.21
rubyのインストール
必須ではないです。digdagの中でrubyのスクリプト使いたいのでインストールしときます。
# yum install -y openssl-devel readline-devel # git clone https://github.com/sstephenson/rbenv.git ~/.rbenv/ # echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile # echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # source ~/.bash_profile # git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # cd ~/.rbenv/plugins/ruby-build # rbenv install 2.3.5 # rbenv global 2.3.5 # ruby -v ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
設定
設定していきます。とりあえず設定ファイルは/usr/local/digdagの下に集めます。
# mkdir /usr/local/digdag # cd /usr/local/digdag # mkdir bin etc digdag.db logs
digdagのコンフィグファイルを作成します。
# vim etc/config agent.max-task-threads=5 database.type = h2 database.path = /usr/local/digdag/digdag.db
パラメーターはagent.max-task-threadsは並列で実行するジョブの数、database.typeはH2 Database を使用、DBの場所をdatabase.pathで指定します。
次に、起動用のシェルと、systemdの設定をします。
# vim bin/start.sh #!/usr/bin/env bash set -ue set -x exec >> /usr/local/digdag/logs/digdag.log exec 2>&1 export PATH="$HOME/.embulk/bin:$PATH" export PATH=$HOME/bin:$PATH export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" exec /root/bin/digdag server --config /usr/local/digdag/etc/config -b `/sbin/ifconfig eth0 | awk '/inet / {print $2}'` # chmod +x bin/start.sh # vim /etc/systemd/system/digdag.service [Unit] Description=digdag [Service] User=root Restart=always TimeoutStartSec=30s Type=simple ExecStart=/usr/local/digdag/bin/start.sh [Install] WantedBy=multi-user.target
これで一通り準備完了なのでstartして下さい。
# systemctl start digdag.service
logをチェックして問題なさそうなら起動してます。そのうち動かし方も書いていきます。