1

Hadoop を使用して WordCount を実行しようとしています。XmlInputFormat.class を使用して、XML タグに基づいてファイルを分割したいと考えています。XmlInputFormat.class はこちら

XmlInputFormat.class は TextInputFormat.class から拡張されています

 Job job = new Job(getConf());
 job.setInputFormatClass(XmlInputFormat.class);

エラーが表示されます

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

でも使うときはOK

Job job = new Job(getConf());
job.setInputFormatClass(TextInputFormat.class);

extends を使用できないのはなぜですか? それとも私は何か間違ったことをしましたか?

4

3 に答える 3

0

Hadoop のバージョンに問題があるようです。使用している XMLInputFormat クラスが実際に Hadoop バージョンに適していることを確認しましたか?

于 2012-03-15T21:49:53.787 に答える
0

コードに間違った XmlInputFormat.class をインポートしている可能性があります。TextInputFormat.class でも同じことが起こりました。Eclipse が自動的に取り出したクラスの間違ったインポートを使用していたことがわかります。インポートする正しいクラスは次のとおりです。

org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

于 2014-08-17T10:31:33.720 に答える
0

mapred ライブラリを使用した Hadoop チュートリアルは古くなっていると思います。

http://wiki.apache.org/hadoop/WordCount

上記のコードを少し変更しただけで、XMLInputFormat を正常に実行できました。


この回答は無視してください。原因は、mapred.* を使用する非推奨バージョンの map reduce を使用していたためだと思います。

私は同じ問題を抱えていましたが、インポートの1つを変更すると解決しました:

From: import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

To: import org.apache.hadoop.mapred.TextInputFormat;

于 2012-03-29T18:39:13.203 に答える