2014-03-06 1 views
2

Linux에서 Hadoop 버전 0.20.2을 사용하고 있습니다.Hadoop에서 Mahout testclassifier를 실행하려고 할 때 "GC 오버 헤드 한도 초과"

나는 다음 명령을 사용하여 분류 모델을 테스트하기 위해 노력하고 있습니다 :

bin/hadoop jar /usr/local/mahout/examples/target/mahout-examples-0.6-job.jar \ 
org.apache.mahout.classifier.bayes.TestClassifier -m wikipediamodel -d wikipediainput 

을하지만 다음과 같은 오류가 점점 오전 :

그것에 대해 무엇을 할 수 있는지
14/03/06 08:57:36 INFO common.HadoopUtil: Deleting wikipediainput-output 
    14/03/06 08:58:32 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 
    14/03/06 08:58:33 INFO mapred.FileInputFormat: Total input paths to process : 2 
    14/03/06 08:58:34 INFO mapred.JobClient: Running job: job_201403060857_0001 
    14/03/06 08:58:35 INFO mapred.JobClient: map 0% reduce 0% 
    14/03/06 09:06:27 INFO mapred.JobClient: Task Id : attempt_201403060857_0001_m_000000_0, Status : FAILED 
    java.lang.RuntimeException: Error in configuring object 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 
     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:354) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307) 
     at org.apache.hadoop.mapred.Child.main(Child.java:170) 
    Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     ... 5 more 
    Caused by: java.lang.RuntimeException: Error in configuring object 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 
     at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) 
     ... 10 more 
    Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     ... 13 more 
    Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 
     at java.nio.ByteBuffer.wrap(ByteBuffer.java:369) 
     at org.apache.hadoop.io.Text.decode(Text.java:327) 
     at org.apache.hadoop.io.Text.toString(Text.java:254) 
     at org.apache.mahout.common.StringTuple.readFields(StringTuple.java:143) 
     at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1836) 
     at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1876) 
     at org.apache.mahout.common.iterator.sequencefile.SequenceFileIterator.computeNext(SequenceFileIterator.java:95) 
     at org.apache.mahout.common.iterator.sequencefile.SequenceFileIterator.computeNext(SequenceFileIterator.java:38) 
     at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141) 
     at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136) 
     at com.google.common.collect.Iterators$5.hasNext(Iterators.java:525) 
     at com.google.common.collect.ForwardingIterator.hasNext(ForwardingIterator.java:43) 
     at org.apache.mahout.classifier.bayes.SequenceFileModelReader.loadFeatureWeights(SequenceFileModelReader.java:72) 
     at org.apache.mahout.classifier.bayes.SequenceFileModelReader.loadModel(SequenceFileModelReader.java:46) 
     at org.apache.mahout.classifier.bayes.InMemoryBayesDatastore.initialize(InMemoryBayesDatastore.java:72) 
     at org.apache.mahout.classifier.bayes.ClassifierContext.initialize(ClassifierContext.java:44) 
     at org.apache.mahout.classifier.bayes.mapreduce.bayes.BayesClassifierMapper.configure(BayesClassifierMapper.java:120) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 
     at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 

    14/03/06 09:06:43 INFO mapred.JobClient: Task Id : attempt_201403060857_0001_m_000001_0, Status : FAILED 
    java.lang.RuntimeException: Error in configuring object 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 
     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:354) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307) 
     at org.apache.hadoop.mapred.Child.main(Child.java:170) 
    Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     ... 5 more 
    Caused by: java.lang.RuntimeException: Error in configuring object 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 
     at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) 
     ... 10 more 
    Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     ... 13 more 
    Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 
     at java.util.Arrays.copyOfRange(Arrays.java:2694) 
     at java.lang.String.<init>(String.java:203) 
     at java.nio.HeapCharBuffer.toString(HeapCharBuffer.java:561) 
     at java.nio.CharBuffer.toString(CharBuffer.java:1201) 
     at org.apache.hadoop.io.Text.decode(Text.java:350) 
     at org.apache.hadoop.io.Text.decode(Text.java:327) 
     at org.apache.hadoop.io.Text.toString(Text.java:254) 
     at org.apache.mahout.common.StringTuple.readFields(StringTuple.java:143) 
     at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1836) 
     at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1876) 
     at org.apache.mahout.common.iterator.sequencefile.SequenceFileIterator.computeNext(SequenceFileIterator.java:95) 
     at org.apache.mahout.common.iterator.sequencefile.SequenceFileIterator.computeNext(SequenceFileIterator.java:38) 
     at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141) 
     at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136) 
     at com.google.common.collect.Iterators$5.hasNext(Iterators.java:525) 
     at com.google.common.collect.ForwardingIterator.hasNext(ForwardingIterator.java:43) 
     at org.apache.mahout.classifier.bayes.SequenceFileModelReader.loadFeatureWeights(SequenceFileModelReader.java:72) 
     at org.apache.mahout.classifier.bayes.SequenceFileModelReader.loadModel(SequenceFileModelReader.java:46) 
     at org.apache.mahout.classifier.bayes.InMemoryBayesDatastore.initialize(InMemoryBayesDatastore.java:72) 
     at org.apache.mahout.classifier.bayes.ClassifierContext.initialize(ClassifierContext.java:44) 
     at org.apache.mahout.classifier.bayes.mapreduce.bayes.BayesClassifierMapper.configure(BayesClassifierMapper.java:120) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) 
     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) 
     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 
     at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 

?

hadoop/conf/mapred-site.xml에서
<property> 
    <name>mapred.child.java.opts</name> 
    <value>-Xmx1024m</value> 
</property> 

또는 더 나은 아직, 작업의 구성 :

+0

왜 새 버전의 Hadoop을 사용하지 않습니까? 대부분이 문제를 해결하지는 못했지만 버전이 이미 상당히 오래되었습니다. –

답변

1

원래 질문으로 Mahout 0.9로 전환하십시오. Mahout 0.6에서 많이 변경되었으며, 0.8 이전 버전은 더 이상 지원되지 않습니다.

0

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded는 예를 들어, mapred 아이의 메모리 설정을 조정해야된다는 것을 의미합니다.

효과가 있는지 알아 보려면 약간 놀아야 할 수도 있습니다. 아이들을 위해 너무 많은 기억을 남겨 두는 것도 효과가 없을 것입니다.

관련 문제