我正在使用Google App引擎Mapper API删除GAE数据存储区中特定实体的所有行(约2M)。但是,即使我有账单,我仍然可以 -
com.google.appengine.tools.mapreduce.MapReduceServlet processMapper: 超出映射器配额。中止请求,直到补贴配额为止。 考虑增加mapreduce.mapper.inputprocessingrate(默认值 1000)如果您希望您的映射器作业更快完成。
如何专门增加映射器配额?我需要紧急删除记录,但找不到任何增加映射器配额的文档。如果还有其他最佳实践我应该知道,请告诉我。
这就是我在mapper类中所做的。
public void map(Key key, Entity value, Context context) {
log.info("Mapping key: " + key);
if (value.hasProperty("email")) {
String email = (String) value.getProperty("email");
if(email.equalsIgnoreCase("xxxx@xxxxx.com")) {
DatastoreMutationPool mutationPool = this.getAppEngineContext(context).getMutationPool();
mutationPool.delete(key);
}
}
答案 0 :(得分:0)
请尝试查找mapreduce.xml并修改以下数字:
<property>
<name>mapreduce.mapper.inputprocessingrate</name>
<value>**2000**</value>
</property>