2010-11-25 6 views
0

「を中止し、何クォータ」を生成しない(Java版):http://code.google.com/p/appengine-mapreduce/GAEマッパーは、私がここにマッパーフレームワークを使用してセットアップするのGoogle App Engineの上マッパーの仕事をしようとしていますエラー

私はそのようなコードを経由して仕事をキックオフ:

Configuration conf = new Configuration(false); 
conf.setClass("mapreduce.map.class", MyMapper.class, Mapper.class); 
conf.setClass("mapreduce.inputformat.class", DatastoreInputFormat.class, InputFormat.class); 
conf.set(DatastoreInputFormat.ENTITY_KIND_KEY, "Organization"); 

// Queue up the mapper request. 
String configString = ConfigurationXmlUtil.convertConfigurationToXml(conf); 
Queue queue = GaeQueueFactory.getQueue(QUEUE_NAME); 
queue.add(
     Builder.url("/mapreduce/start") 
     .param("configuration", configString)); 

私はdevのサーバーとPRODサーバーの両方でログに次のエラーを取得する:

com.google.appengine.tools.mapreduce.MapReduceServlet processMapper: No quota. Aborting! 

追加のスタックトレースはありません。これは、私が仕事をキックしようとするたびに約12回ほど現れます。

+0

um、これは愚かかもしれませんが、割り当てが残っていますか? – Steven

+0

はい、たくさんの割り当てが残っています。私はサービスの10%未満を使用しています。さらに、私は無制限のクォータを持つべきときにdev envでこれを取得します。 – Brad

答えて

0

に入力を分割する破片の数を決定し、私はこの問題を考え出したと、この問題を持つ他の誰のためにここにこれを記録しています。これについて私を最も混乱させたのは、それが数週間前に働いていたことであり、最近はいつか止まったようです。アプリは実稼働環境で使用されていないため、気づいた人はいません。

マップリクエストをカスタムの「マッパー」タスクキューに送信していた点が変更されました。デフォルトのタスクキューではありません。私はいくつかのマッパーの仕事を持っているので、私のセットアップすべてのマッパーの仕事のための別のキューを使用する:予想通り

<queue> 
    <name>mapper</name> 
    <rate>5/s</rate> 
    <bucket-size>10</bucket-size> 
</queue> 

私はデフォルトのキューを使うようにコードを切り替えると、すべてが働きました。私はここにマッパーチームのバグを提出しました:http://code.google.com/p/appengine-mapreduce/issues/detail?id=73

0

あらかじめ定義されたデフォルト値でMapperジョブを処理するのに十分な容量がないと思います。

mapreduce.mapper.inputprocessingrate
すべてマッパーによって秒あたりに処理エンティティの総数:

は、これらのconfigurationパラメータを下げるようにしてください。
短期間に大量のクォータが使い尽くされないようにするために使用します。
デフォルト同時労働者の数は、使用する
1000年

mapreduce.mapper.shardcount。
これも
デフォルト= 8

+0

これは役に立たなかったようです。私はこれらの2行を私の設定に追加しました: conf.set( "mapreduce.mapper.inputprocessingrate"、 "10"); conf.set( "mapreduce.mapper.shardcount"、 "1"); – Brad

関連する問題