今日はノーチラス・テクノロジーズさんのオープニングイベント& Asakusa-Hadoop on AWS 事例解説+Inside WindGateの解説+「YAESS」に行ってきました。昨日登記も完了したそうで、発進おめでとうございます。
Togetter: #nt_opening
調子に乗ってオープニングイベントのピザとかサンドイッチとかたくさん頂いてお腹が苦しいので(爆)、記録を簡単にメモ。
まずはokachimachiorzさんの挨拶からスタート。
ノーチラス・テクノロジーズさんの方向として、Hadoop・Asakusa(OSS)のエンタープライズサポートと、会計/EDI/原価計算などのソリューションパッケージの提供。品質重視。
新しい技術を積極的に使っていくが、古くても新しくても必要なものを使う。
そしてカスタマー(お客さん)ファーストで、技術をお客さんに届ける(使ってもらわないと意味が無い)。
なるほど、確かに。
次は須賀さんのAsakusa on AWS。アンゼルセンサービス(パン屋)さんの生産管理システムへAsakusaを導入した事例。
原価計算のシステムで、データ量は1GB程度でビッグデータではないが、BOM(木構造)の展開・積み上げをやっていて、現行システムで4時間。
Hadoopでの並列計算処理(ストアドプロシージャやファンクションをDSL)に置き換えて、30分になったとのこと。まだチューニングしてないので、もっと短くなるはず。
(BOMはRDBMSでは効率が悪く、BSPの方が速いらしいが、今はMapReduceでやっている)
データセンター内の既存のシステムとAmazon VPCをインターネット(VPN接続)でつなぐ構成となっている。
(※Amazon VPCは、VPN接続で自社システムの延長のように扱えるサービス)
AmazonにはEMRというHadoopを時間貸しするサービスがあるが、EMRはApacheHadoopベースであり、AsakusaはCDHベース(MultipleOutputsが追加されている)なので、EMRは使わなかった。
HDFSのファイルシステムとしてEBSを使用。バックアップはS3にとっている。
障害時は復旧優先で、HDFSはキャッシュとしてしか使っていないので、データを再ロードして処理する。障害のログはEBSに残っているので、後から調査する。
マルチAZにとる災害対策で、通信障害時は別のAZに切り替える。
まさにクラウドサービスを最大限利用した構成という感じ(笑)
ちなみに、出されたサンドイッチはアンデルセンサービスのものだそうです。ご馳走様でした。
ashigeruさんのWindGate・YAESS。酒が入ったせいか、いつもより勢いがある感じw
WindGateはポータブルなデータ転送ツール。
ThunderGateがMySQL専用で管理用カラムを追加する必要があったりするのに対し、WindGateは色々なRDBに対応し、管理カラムも使わない。Windowsでも動く。
いずれはThunderGateの機能も取り込んでThunderGateという名称に改名したいらしい(WindGateという地名は無いから(爆))。
WindGateは、MySQL・PostgreSQL・Oracle・フラットファイルといったデータストアからJDBC/TCPで読み込み、SSH経由でHDFSへ転送し、結果を逆方向へ転送する。
これらの機能を司るリソースプロバイダー(ソースドライバー・ドレインドライバー)・プロセスプロバイダー(プロセスという呼び名だが実体はThread)は、例によってプラグインで追加できる構成になっている。
もうひとつの話題がYAESS(やえす)。ポータブルなバッチ実行ツール。
現在のAsakusaでは、experimental.shというシェルが作られる。これは実験(テスト実行?)用なので、ローカルのbash/Linuxをターゲットとしていて(csh,dsh,Windowsは対象外)、並列実行はしない。
YAESSは「Yet Another Experimental Shell Script」とのことでw、Windowsからもバッチ実行できるし、外部のWindGateを起動したりすることも出来る。
ただし運用管理は別システムに任せる。カレンダーやスケジュール、条件付実行やAsakusa以外のバッチ等には対応しない。YAESSも、あくまで実験用。
YAESSの主なコンポーネントは、JobSchedulerとExecutorとScriptHandler。
ScriptHandlerがThunderGate・WindGate・Hadoopジョブ等の実際の起動を行う。
JobSchedulerは並列実行や順序の制御を行い、進行状況やエラー状況の収集・キャンセルの実行といったことはExecutorが行う。
これらもプラグインで追加できる。ScriptHandlerにデバッガの仕掛けを入れれば、デバッグに使えるかも?という意見が出ていた。
YAESSはライブラリーとして使うこともでき、バッチより細かい粒度で処理を実行できる。
TestDriverからYAESS経由でAWS上のHadoopを実行するなんて構想もあるようだ。
こりゃなかなか面白いなぁ。
他にも今後のAsakusaの改善点として、
- 今は毎回全データを転送しているが、明らかに遅いので、更新のあったデータだけを差分転送したい(データをキャッシュする)。
(キャッシュが壊れたら、全データを転送し直す) - Range Join
- Join Expression(結合時に簡単な演算を実行する)
- ネストしたデータモデル(データモデルの中に別のデータモデルを含める)
- テスト周りの改善
AsakusaFWを無理矢理Windowsで動かした身としては、Windows対応といったらその辺りのシェルをCygwinを使ってなんとかする程度のイメージで考えていたけれど、YAESSはその部分ですら(他のソフトに依存せず)独立して動かす方向なわけか。
なかなか燃える!w
次々色々出てきて、マッチアップも大変だけど、やはり素晴らしい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます