SyntaxHighlighter

2012年5月20日日曜日

Google App Engine Pipeline APIを使ってみた。

先日Google App EngineMapReduceを使ってみた記事を書いてみたが、
関連してPipelineAPIの存在を知った。
今回はPipelineAPIについて使ってみた感想を書く。

まず、PipelineAPIについて、
PipelineAPIは、複雑で時間を消費するワークフローを接続し処理する。
APIの主要な使用ケースはGoogle App Engine MapReduceとの接続である。
(訳:筆者※英語力低)

こんな図形まで載っている。







この図形の示す意味は、下記のとおり。


フレームワークは、ユーザが1つの仕事の出力が1つ以上の仕事の入力になる多数の仕事の準備を表現することを可能にします。
これらの準備は、最もAの出力がBの入力スロットに向けられるべきであることを仕事Aから仕事Bの中の入力スロットのうちの1つまでの有向辺が示す一種の有向グラフと評することができます。
例えば、私たちは、3つの整数入力をとる仕事、x、y、zを構築するようにDiffJobとMultJobを使用し、次の計算[(x -y)*(x -z)]を行ないます-2.
その計算は次の仕事グラフとして表現されるかもしれません。
(グラフは右から左まで読みます。)
(Powered by Excite.翻訳)

なるほど、要は処理を分散並行させる事ができるんだな。(ん、分かりづらい?;)

ま、やっぱり実際に触ってみる方が早い。
GettingStartに従って、プロジェクト作成してみよう。
サンプルでは文字の出現回数について集計を行うサンプルがあったが、
ヒヨッコHadooperとしてはWordCountがやりたい。
早速作ってみた。

PipelineAPIの詳細については追って調査し、紹介しようと思う。
MapReduceっぽく実装してみただけで、本家のMapReduceとは
かけ離れているので注意。
Exampleで使用してるViewをそのまま使って、Let's Deploy!

文字列を適当に入力。そして実行。











処理中…。












完了。ちゃんと数えられている。













管理コンソール。今回は子のプロセスが3つ。










子のプロセスの詳細も見れる。













使ってみた感想。正直面白い。これはMapReduceも夢じゃない。はず。
(処理時間は正直早いとは言えないが、少量データだし。)
Google App Engine PipelineAPIの中身までまだ追いきれていないが、
これはMapReduceとはまた違ったアプローチで大量データの処理も
できるのではなかろうか。うん、なんか面白そう。

今度は、 PipelineAPIの中身に迫ってみるか。
Google App Engine MapReduce…、とりあえず、頭の片隅には入れておこう)






0 件のコメント:

コメントを投稿