2015-03-20 2 views
0

Я получаю исключение ограниченного класса, когда я запускаю задание mapreduce с помощью библиотеки Appengine-mapreduce. Я использую appengine sdk version 1.8.8. Ошибка, похоже, из-за hadoop-0.20.2, внутренне используемого кодом appengine-mapper.Appengine Mapreduce Restricted Class ManagementFactory

java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details. 
    at com.google.apphosting.runtime.security.shared.stub.java.lang.management.ManagementFactory.<clinit>(ManagementFactory.java) 
    at org.apache.hadoop.util.ReflectionUtils.<clinit>(ReflectionUtils.java:121) 
    at org.apache.hadoop.io.serializer.SerializationFactory.add(SerializationFactory.java:64) 
    at org.apache.hadoop.io.serializer.SerializationFactory.<init>(SerializationFactory.java:54) 
    at com.google.appengine.tools.mapreduce.SerializationUtil.serializeToByteArrayOutputStream(SerializationUtil.java:46) 
    at com.google.appengine.tools.mapreduce.SerializationUtil.serializeToByteArray(SerializationUtil.java:60) 
    at com.google.appengine.tools.mapreduce.v2.impl.ShardState.setInputSplit(ShardState.java:215) 
    at com.google.appengine.tools.mapreduce.v2.impl.handlers.Worker.scheduleShards(Worker.java:218) 
    at com.google.appengine.tools.mapreduce.v2.impl.handlers.Controller.handleStart(Controller.java:133) 

Срабатывание Код:

MapReduceXml mrXml = MapReduceXml.getMapReduceXmlFromFile(); 
Configuration configuration = mrXml.instantiateConfiguration(configName, params); 

jobId = Controller.handleStart(configuration, configName, "/mapreduce/"); 

Пожалуйста посоветуйте !!

ответ

2

Эта проблема решена после использования hadoop-0.20.2-core.jar, поставляемого вместе с appengine-mapper. Кажется, он не похож на файл hadoop-core-0.20.2 от maven.

Смежные вопросы