まいあしさんという方からAsakusa Framework0.5.1をWindows7(+CDH3+Cygwin)にインストールしてバッチやジョブフロー・フローパートのテストを実行する方法を教えていただいた。
とても素晴らしいのでぜひ公開するようお願いしたら、まいあしさんはブログを持っていないとのことなので、当方で公開させていただくことになった。
非常に細かい部分で若干手を加えた箇所もあるけど、自分がかつてやろうとした方法に比べると最小限の手順で済み、本当に素晴らしい^^
いやあ、やっぱりAsakusaFWをWindowsで動かしたい人っているんだなw
自分が初めてAsakusaFWを知った頃(バージョン0.2.1)は、持っていたパソコン(特に会社のは…)が貧弱でVMwareなんかが動くとは思えなかったので、Windowsで試したいという欲求があったんだよね。
AsakusaFW0.2.1で自分がやった方法は、必要な部分にcygpathを入れてパスをUNIX⇔Windows間で変換し、ものによっては「file:/」を追加するというもの。
まいあしさんは「file:/」を追加するのにsedを使っていた。自分は正規表現が苦手なので、この方法は全く思い付かなかった^^;
一番問題になるのが、JavaのProcessBuilderはWindowsではシェルを呼べないこと。
自分はシェルと同名のexeファイルを作ってシェルを置き換えるという方法を採ったが、これは面倒くさいんだよね(汗)
まいあしさんのはテストを実行するクラスにパッチを当てるという方法。
パッチを当てるのは自分も思い付いてたけど、AsakusaFW自体のコンパイル環境を作ってjarファイルを作り出すのが無理だと思って諦めてたんだよね。
パッチを当てたJavaソースをAsakusaプロジェクト内に置いてしまえば、jarファイルに入っている本来のクラスよりも優先してロードされる(使われる)というのが、裏技っぽいけど見事(笑)
現状のAsakusaFW自身がWindowsに対応していないのは、AsakusaFWがテストの実行に使用するHadoopがWindowsに正式対応していないのが主な理由。
CDH3(Hadoop0.20)はCygwinで曲がりなりにも動かせたけど、最近のHadoop1系は動かせないっぽいし、CDH3もメンテナンス終了になるみたいだし。
そんな中で、AsakusaFWのサービスであるNode0 DBRはWindows上で開発できるというコンセプトだけど、テストの実行自体はサーバー側で行うんだよね。
(ソースの開発をWindows上で行い、ソースをNode0 DBRのサーバーにアップロードするとビルドおよびテストが実行される。ビルドレポートはソースの解析結果をグラフ化して格好いいんだけど、Node0 DBRのページにはビルドレポートのイメージは掲載されていないな^^;)
もっとも、Hadoop2.1でHortonworksのHDPがバックポートされて(?)本格的にWindows対応するっぽいので、そうなったらAsakusaFW本体もWindows対応するかも。
YARNを使う気はさらさら無いが(爆)、Windows対応には期待(笑)