0

Pig スクリプトを起動すると、Java の問題が発生します。依存関係またはバージョンの競合のようです。Debian/Cloudera CDH4/Apache Pig を実行しています。

java.lang.Exception: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.Counter, but class was expected

at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:406)
Caused by: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.Counter, but class was expected
4

2 に答える 2

0

Maven を使用している場合は、POM ファイルを変更する必要があります。

以前は、次の依存関係を使用していました。

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>1.2.1</version>
</dependency>

私がそれを変更したとき:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.5.2</version>
</dependency>

これが役立つかもしれないと思います。私によると、その理由は、Hadoop の新しいバージョンが Counter をクラスではなくインターフェイスとして扱うためです。したがって、カウンターのオブジェクトを作成することはできません。

于 2015-06-15T22:49:29.143 に答える