2 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
AZAREAの実行速度について (AZAREA-Clusterサポート担当)
2013-01-09 15:48:33
コメントへのご対応ありがとうございました。

AZAREAの実行速度の計測結果を拝見しましたが、少々遅いようなので調査してみました。

フロー中で3箇所GroupSortが使われていますが、可能なものはGroup(+Conversion)に変えることにより、実行速度が向上すると考えられます。
GroupSortはReducer側のみでグループ化を行うのに対し、GroupはMapper側でも可能な限りグループ化を行います。
従ってMapperからReducerへのデータ転送量が減少し、処理時間が短縮するはずです。

修正サンプルを以下に置きましたので、参考にして頂ければと思います。
https://s3-ap-northeast-1.amazonaws.com/azarea-cluster-jp/public/SalesFlow_2.txt

この辺りのノウハウも開発ガイドに記述するなどしてもう少し分かりやすくしたいと思います。


なお、処理が多くフロー図が煩雑になる場合は、エンティティフロークラスを分割するとシンプルにできます。
(アプリケーション全体のフロー図は相変わらず煩雑ですが、これは改善を検討中です)
「4種類の集計」の例では、集計の種類ごとに4つに分割するのがよいと思います。

エンティティフローはフレームワーク内で合成されるので、最適化結果は同じになります。
返信する
修正してみました (ひしだま)
2013-01-12 18:18:41
アドバイスありがとうございます。
修正したところ、30秒ほど速くなり、HiveやCascadingと同程度の時間になりました。

なお、集計の種類毎にフローを分割する方式は、自分のリポジトリーの「azarea2」がそれに相当すると思います。
返信する

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。