seqdirectoryは、Mahout1.0-SNAPSHOTをHadoop2.2.0で使用すると、MapReduceモードでエラーをスローします

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

質問

私はmahout1.0-SNAPSHOTでseqdirectoryコマンドをHadoop2.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

私はこれがMahout0.9の問題だと思っていて、トランクに固定されていました。どのようにこれに対処するための手がかりはありますか?MapReduceモードで実行したいので、-xm sequentialは私が探している答えではありません。

役に立ちましたか?

解決

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

このようなエラーは、常に、コンパイルされたものとは異なるバージョンのものに対して何かを実行していることを意味します。ここでは、Hadoop2用にMahoutをコンパイルしませんでした。これは、本質的にいくつかのビルド変更なしでHadoop2では動作しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top