0

入力/出力パラメーターが
(LongWritable、Text、WordPair、IntWritable)
で、入力/出力パラメーターを持つレデューサーが
(WordPair、IntWritable、WordPair、DoubleWritable) であるマッパーがあります。

JobConf を次のように設定しました:
conf.setOutputKeyClass(WordPair.class);
conf.setOutputValueClass(DoubleWritable.class);
conf.setMapOutputValueClass(IntWritable.class);
conf.setOutputFormat(TextOutputFormat.class);

しかし、次のエラーが表示されます:
-Java IOException DoubleWritable is not a class
-Map Job Failed

また、ジョブはレデューサー フェーズに進む前に失敗しています。構成のこの部分は正しいですか? ここでパラメーターとの不一致を行っていると思います。

さらに情報を提供する必要がありますか? タイプDoubleのレデューサー値から出力する必要がある相対周波数の問題を行っています&私は古いApiを使用しています。

4

1 に答える 1

0

私はこの質問を理解しました。私は自分の質問に返信していることを知っていますが、これは、他の人が同じ問題を抱えているかどうかを知らせたいからです。

この問題は、コンバイナー クラスをレデューサー クラスと同じと述べたために発生していますが、この問題によると、マッパーの入力/出力はレデューサーの入力/出力と同じではありませんが、コンバイナーはマッパーの入力/出力と同じである必要があります。

そのため、コンバイナーを設定した行を削除したところ、正常に機能しました。

于 2013-03-31T20:59:20.170 に答える