يعرض seqdirectory خطأ في وضع MapReduce عند استخدام Mahout 1.0-SNAPSHOT مع Hadoop 2.2.0

StackOverflow https://stackoverflow.com//questions/23037404

سؤال

أحاول تشغيل الأمر seqdirectory في Mahout 1.0-SNAPSHOT مع Hadoop 2.2.0.عند استخدام الأمر:

seqdirectory -i input -o output

تتبع المكدس:

Error: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.initNextRecordReader(CombineFileRecordReader.java:164)
    at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.<init>(CombineFileRecordReader.java:126)
    at org.apache.mahout.text.MultipleTextFileInputFormat.createRecordReader(MultipleTextFileInputFormat.java:43)
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.<init>(MapTask.java:491)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.initNextRecordReader(CombineFileRecordReader.java:155)
    ... 10 more
Caused by: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected
    at org.apache.mahout.text.WholeFileRecordReader.<init>(WholeFileRecordReader.java:59)
    ... 15 more

اعتقدت أن هذه مشكلة في Mahout 0.9 وتم إصلاحها في صندوق السيارة.أي أدلة كيفية التعامل مع هذا؟أرغب في تشغيله في وضع MapReduce، لذا فإن -xm التسلسلي ليس هو الحل الذي أبحث عنه.

هل كانت مفيدة؟

المحلول

Caused by: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected

تعني أخطاء مثل هذه دائمًا أنك تقوم بتشغيل شيء ما مقابل إصدار لشيء مختلف عن الإصدار الذي تم تجميعه ضده.هنا، لم تقم بتجميع Mahout لـ Hadoop 2.لا يعمل بطبيعته مع Hadoop 2 دون بعض تغييرات البناء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top