台風が来てるみたいがから、5分でdigdagをインストールして試してみる
5分でできなかったらマサカリ投げてください(TT)
そもそもDigdagとは
Digdag is a simple tool that helps you to build, run, schedule, and monitor complex pipelines of tasks. It handles dependency resolution so that tasks run in order or in parallel.
Digdagは、あなたが、ビルド、スケジュールを実行し、タスクの複雑なパイプラインを監視するのに役立ちますシンプルなツールです。タスクが順序または並列に実行するようにするためには、依存関係の解決を処理します。(公式を全力でGoogle翻訳)
- 私個人の理解としては、yml形式でワークフロー書けるJenkins的なやつという認識。GUI画面なしの。
前提条件
- 実行環境はすでに構築済み
- JDKのrpmファイルはダウンロード済み
実行環境(Macの上にVirtualBoxとVagrantで仮想サーバをたてたもの)
- MacOSX10.10.5(Yosemite)
- VirtualBox4.3.18 r96516
- Vagrant1.7.4
- CentOS6.5
参考資料
Let's Try.
なにはともあれ、まずはJDKをインストール(rpmはOracleのサイトからダウンロードしてきてね)
Gettingstarted見ると、JDK8u72
以上必須の模様。今回は最新版のJDK8u102
を使用。
[root@vagrant-centos65 tmp]# rpm -ivh jdk-8u102-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk1.8.0_102 ########################################### [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
[root@vagrant-centos65 tmp]# java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
これまたGettingstartedのコマンドを参考に以下実行でdigdagを取得
[root@vagrant-centos65 tmp]# curl -o /usr/local/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0
curl: (35) SSL connect error
httpsだとエラーになったのでhttpでcurl(これはいいのかw)
curlのversionを7.19.7
から7.37.0
へアップデートしたらerrorは解消しました。わーい
[root@vagrant-centos65 tmp]# curl --version
curl 7.37.0 (x86_64-unknown-linux-gnu) libcurl/7.37.0 OpenSSL/1.0.1e zlib/1.2.3
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz
[root@vagrant-centos65 tmp]# curl -o /usr/local/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0
100 20.6M 100 20.6M 0 0 619k 0 0:00:34 0:00:34 --:--:-- 1097k
どうやら成功。。。
しっかり成功
今回ダウンロードされたのは、現時点の最新版digdag 0.8.11
の模様
そして、どこか適当なディレクトリ配下でdigdag init実行
[root@vagrant-centos65 opt]# digdag init digdag_test
2016-08-29 16:17:38 +0000: Digdag v0.8.11
Creating digdag_test/.gitignore
Creating digdag_test/query.sql
Creating digdag_test/digdag_test.dig
Done. Type `cd digdag_test` and then `digdag run digdag_test.dig` to run the workflow. Enjoy!
digdagのファイルがgenarateされました
[root@vagrant-centos65 opt]# ls -lR digdag_test/
digdag_test/:
total 8
-rw-r--r-- 1 root root 68 Aug 29 16:17 digdag_test.dig
-rw-r--r-- 1 root root 28 Aug 29 16:17 query.sql
digdag_test.dig(処理内容書く定義ファイル)を編集
timezone: UTC
+task1:
sh>: date
+task2:
sh>: cat /etc/redhat-release
+task3:
sh>: df -h
digdag 起動(バックグラウンドで)
[root@vagrant-centos65 opt]# digdag server -m &
[1] 4957
[root@vagrant-centos65 opt]# 2016-08-29 17:04:16 +0000: Digdag v0.8.11
2016-08-29 17:04:17 +0000 [INFO] (main): secret encryption engine: disabled
2016-08-29 17:04:18 +0000 [INFO] (main): loaded secret access policy: ServerSecretAccessPolicy{operators={}}
2016-08-29 17:04:18 +0000 [INFO] (main): XNIO version 3.3.6.Final
2016-08-29 17:04:18 +0000 [INFO] (main): XNIO NIO Implementation Version 3.3.6.Final
2016-08-29 17:04:18 +0000 [INFO] (main): Starting server on 127.0.0.1:65432
2016-08-29 17:04:18 +0000 [INFO] (main): Bound on /127.0.0.1:65432
あとでGettingstartedよんで思ったけどserver modeで立ち上げたあと停止させるコマンドがない気がしました。
私の見落としかしら。。。
genarateしたディレクトリ配下でdigdag push実行
[root@vagrant-centos65 digdag_test]# pwd
/opt/digdag_test
[root@vagrant-centos65 digdag_test]# digdag push digdag_test
2016-08-29 17:07:47 +0000: Digdag v0.8.11
Creating .digdag/tmp/archive-6594888935673277562.tar.gz...
Archiving digdag_test.dig
Archiving query.sql
Workflows:
digdag_test
Uploaded:
id: 1
name: digdag_test
revision: e4215ddd-9589-4d9d-9230-6a6992f100f0
archive type: db
project created at: 2016-08-29T17:07:49Z
revision updated at: 2016-08-29T17:07:49Z
Use `digdag workflows` to show all workflows.
workflow実行
[root@vagrant-centos65 digdag_test]# digdag start digdag_test digdag_test --session now
2016-08-29 17:09:40 +0000: Digdag v0.8.11
2016-08-29 17:09:42 +0000 [INFO] (XNIO-1 task-9): Starting a new session project id=1 workflow name=digdag_test session_time=2016-08-29T17:09:42+00:00
Started a session attempt:
session id: 1
attempt id: 1
uuid: f97ddc0b-fef9-46ed-80c4-915e7337b58f
project: digdag_test
workflow: digdag_test
session time: 2016-08-29 17:09:42 +0000
retry attempt name:
params: {}
created at: 2016-08-29 17:09:42 +0000
* Use `digdag session 1` to show session status.
* Use `digdag task 1` and `digdag log 1` to show task status and logs.
[root@vagrant-centos65 digdag_test]# 2016-08-29 17:09:43 +0000 [INFO] (0030@+digdag_test+task1): sh>: date
Mon Aug 29 17:09:43 UTC 2016
2016-08-29 17:09:44 +0000 [INFO] (0030@+digdag_test+task2): sh>: cat /etc/redhat-release
CentOS release 6.5 (Final)
2016-08-29 17:09:44 +0000 [INFO] (0030@+digdag_test+task3): sh>: df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.9G 6.4G 1.2G 85% /
tmpfs 295M 0 295M 0% /dev/shm
vagrant 113G 97G 16G 87% /vagrant
digファイルに書いた内容が順次実行されました。
以上!