0

Hadoop 1.2.1 で使用する場合、親クラスの hashpatitioner から新しいクラス MyPatitioner を構築したいのですが、それ (mypatitioner) は問題ありません。しかし、メインで使用しようとすると、Eclipseはいくつかの例外を見つけます.なぜですか?

            job.setPartitionerClass(MyPartitioner.class);

ヒント: タイプ Job のメソッド setPartitionerClass(Class) は、引数 (Class) には適用されません。

    public class MyPartitioner extends  HashPartitioner<Text,IntWritable>{……}
4

1 に答える 1

0

あなたの質問は解釈が少し難しいですが、一貫してパッケージをインポートしていないと思います。Hadoop API には、2 つの MapReduce API パッケージorg.apache.hadoop.mapreduceorg.apache.hadoop.mapred.

これら 2 つは混在しません。たとえば、ジョブ クラスを as としてインポートしorg.apache.hadoop.mapreduce.Job、HashPartitioner クラスを asとしてインポートしたorg.apache.hadoop.mapred.lib.HashPartitioner場合、説明しているように聞こえるような問題が発生します。

MyPartitioner クラスの import ステートメントが、org.apache.hadoop.mapreduceそれがジョブのセットアップに使用するものである場合、またはその逆であることを確認してください。同じジョブにこれら 2 つのパッケージを混在させないでください。

于 2013-09-28T02:39:57.057 に答える