ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

AZAREAの実行速度

2012-12-21 23:59:45 | PG(分散処理)

Hadoopアドベントカレンダー2012 #hadoopAC12jpの21日目です。

今までHadoop関連のツール・フレームワークが出る度に、それで作ったアプリケーションの実行時間を計ってきたので、AZAREA-Cluster Frameworkでも計ってみました。
(あ、ついでにAsakusa Frameworkも0.2のbatchapp版で古かったので、0.4のDirect I/O版に修正しました) 

まずはWordCount
AZAREAはけっこう速いです。
素のMapReduce(Java)とC言語によるストリーミング(とCacading)が一番速いのですが、それに次ぐ順位に来ました。
Combinerは使ってなさそうなのに効率が良いのは、Hiveの様に何か特別な処理をしているのかもしれません。 

次は1つの入力から4種類の集計を行うアプリ
ところが、これは落ちましたorz
最適化を行って3つのMapReduceジョブに集約されているのですが、落ちたのは1つ目です。
スタンドアローンモードで動かすと「Unexpected key」というエラーで、分散環境ではOutOfMemoryErrorでした。
スタンドアローンモードと同じデータをシミュレーターで実行するとちゃんと通るんですけどねぇ。
(あ、ちなみにこのアプリのフローの図偏差値のサンプルと違ってちゃんと出ました。横に長くなって線がかぶってしまうのは仕方ないと思います(笑))


コメント (1)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« AsakusaFW DirectI/O版 偏差... | トップ | AZAREA Tips »
最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
エラーの原因について (AZAREA-Clusterサポート担当)
2012-12-26 17:46:15
AZAREA-Clusterをご検証頂きありがとうございます。
また、エラーによりお手数をお掛けして申し訳ありません。

こちらでエラーの原因について調査しましたので、結果をコメント致します。


スタンドアローンモードの「Unexpected key」については、Reducerの初期化処理の
バグによるものでした。
タスク間でReducerインスタンスが使い回されることが考慮されておらず、keyを
チェックするためのインスタンス変数が正しく初期化されていませんでした。
次バージョンで修正される予定です。


OutOfMemoryErrorについては、GroupSort処理の書き方により回避することが可能です。
同一キーのエンティティ数が多い場合、mergeメソッドに渡されるエンティティのリストが
メモリを大量に消費してしまいます。
そのような場合は、エンティティを1件ずつ引数に取る別メソッドを利用します。
具体的には、以下のように実装することができます。
https://s3-ap-northeast-1.amazonaws.com/azarea-cluster-jp/public/SalesFlow.txt

開発ガイドのp.67に記載がありますが、分かりにくかったかもしれません。
改善を検討したいと思います。
返信する

コメントを投稿

PG(分散処理)」カテゴリの最新記事