Asakusaバッチのジョブネット定義

48 views
Skip to first unread message

松崎 学

unread,
Feb 13, 2012, 10:24:50 PM2/13/12
to ML(tenginefw)
松崎と申します。

この度はリリースおめでとうございます!

早速ですが、AsakusaのバッチをTengineから実行してみようと思ってます。
Asakusaバッチのジョブネット定義について教えて下さい。

以下のページにHadoopを使用したジョブネットの定義方法があったのですが、
hadoop_jobで実行されるJOBが失敗した場合の処理を定義する場合、rescueで例外を拾うのでしょうか?
「失敗した時にどこまで戻るのか?」というフローを、DSLでどう書くのか知りたいです。

・ジョブネット定義 - Hadoopを使用したジョブネット

Asakusaのバッチを実行する場合は、YAESSの「フェーズ単位の実行」でやるのかな?と思うのですが、
その辺りのAsakusaとの連携についても知りたいです。
(AsakusaのMLに投げる質問かも知れませんが。。)

・YAESSユーザーガイド - フェーズ単位の実行

以上、よろしくお願いいたします。

--
松崎 学 <mats...@gmail.com>

貴久 徳永

unread,
Feb 14, 2012, 7:55:35 AM2/14/12
to tenginefw
松崎さん

徳永@Tenginefw 開発チームです。

ご質問ありがとうございます。
インラインにて質問にお答えしたいと思います。


> hadoop_jobで実行されるJOBが失敗した場合の処理を定義する場合、rescueで例外を拾うのでしょうか?

残念ながら、DSL評価時の例外を検出することは出来ますが、Tengine でのジョブの実行は、別のコンテキストで
行われるため、job ,hadoop_job, hadoop_job_run の実行時に raise された例外をそれらの外の rescue節

検出することはできません。

ただし実行時のエラーに対応する方法として、recoverという特殊なジョブネットを考えています。

jobnet("jn1") do
job("j1", ....)
recover do
job("jr", ....) # j1の実行に失敗した場合に、ジョブjrが動作します。
end
end

また、finallyを用いてエラー発生時であっても必ず実行されるジョブを定義することができます。
http://tengine.github.com/developers_guide.html#finally


> 「失敗した時にどこまで戻るのか?」というフローを、DSLでどう書くのか知りたいです。

上記でもお伝えしたとおり、失敗時のリカバリ機能については、現時点の Tengine には実装されていません。


> Asakusaのバッチを実行する場合は、YAESSの「フェーズ単位の実行」でやるのかな?と思うのですが、
> その辺りのAsakusaとの連携についても知りたいです。

Asakusaとの連携についてですが、現時点では特別な連携機能は用意していません。
よって、Asakusaのバッチを実行するのであれば、ワークフロー制御についてはYAESSに任せてしまって
Tengineでは、jobメソッドを使って、以下のようなYAESSのバッチ全体の実行を行うようにする方が
よいかと思います。

* ジョブネット定義例

require 'tengine_job'

jobnet("asakusa_jobnet", :server_name => "serv1", :credential_name =>
"cred1") do
auto_sequence
job("yaess-bach", "yaess-batch.sh (バッチID)")
end


今後もフィードバック頂けますよう、お願い致します。

-----
Tenginefw開発チーム
徳永 貴久 <tokun...@gmail.com>


On Feb 14, 12:24 pm, 松崎 学 <matsum...@gmail.com> wrote:
> 松崎と申します。
>
> この度はリリースおめでとうございます!
>
> 早速ですが、AsakusaのバッチをTengineから実行してみようと思ってます。
> Asakusaバッチのジョブネット定義について教えて下さい。
>
> 以下のページにHadoopを使用したジョブネットの定義方法があったのですが、
> hadoop_jobで実行されるJOBが失敗した場合の処理を定義する場合、rescueで例外を拾うのでしょうか?
> 「失敗した時にどこまで戻るのか?」というフローを、DSLでどう書くのか知りたいです。
>
> ・ジョブネット定義 - Hadoopを使用したジョブネットhttp://tengine.github.com/developers_guide_jobnet_dsl.html
>
> Asakusaのバッチを実行する場合は、YAESSの「フェーズ単位の実行」でやるのかな?と思うのですが、
> その辺りのAsakusaとの連携についても知りたいです。
> (AsakusaのMLに投げる質問かも知れませんが。。)
>
> ・YAESSユーザーガイド - フェーズ単位の実行http://asakusafw.s3.amazonaws.com/documents/0.2/release/ja/html/yaess...
>
> 以上、よろしくお願いいたします。
>
> --
> 松崎 学 <matsum...@gmail.com>

松崎 学

unread,
Feb 14, 2012, 8:57:51 AM2/14/12
to teng...@googlegroups.com
徳永さん

松崎です。

承知しました。ご回答ありがとうございます。

早速環境を作って試してみたいと思います。

今後とも宜しくお願いいたします。

2012年2月14日21:55 貴久 徳永 <toku...@nautilus-technologies.com>:
>
> --
> 松崎 学 <matsum...@gmail.com>

--
このメールは Google グループのグループ「tenginefw」の登録者に送られています。
このグループに投稿するには、teng...@googlegroups.com にメールを送信してください。
このグループから退会するには、tenginefw+...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/tenginefw?hl=ja からこのグループにアクセスしてください。




--
松崎 学 <mats...@gmail.com>

Reply all
Reply to author
Forward
0 new messages