2012-03-15 3 views
1

Hadoopを使用してWordCountを実行しようとしています。 XmlInputFormat.classを使用してXMLタグのファイルベースを分割したいと考えています。 XmlInputFormat.classは、タイプのジョブにエラーXmlInputFormatを使用できませんJavaのTextInputFormatを継承します

方法setInputFormatClass(クラス)ではない示すTextInputFormat.class

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

から延びhere

XmlInputFormat.classあります引数(クラス)に適用

私が使用

なぜ私たちは拡張を使用できませんか?それとも私は何か悪いことをしましたか?

答えて

0

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

0

私はmapredライブラリを使用してHadoopのチュートリアルでは、古くなっている、と見てとるべきだと思う:私が正常に上記のコードをわずかに変更した後XMLInputFormatを実行することができ

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


この回答を無視してください。原因は、私がmapredを使用していたマップの非推奨バージョンを使用していたためだと思います。

私は同じ問題を抱えていた、と私は輸入の1に変更するとき、それが解決されます:から

を: 輸入org.apache.hadoop.mapreduce.lib.input.TextInputFormat。

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

0

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

org.apache.hadoop.mapreduce.lib.input.TextInputFormatでした。