0

CDH4とHadoopは初めてです。

wordcountexampleを実行しようとすると、次のエラーが発生します。私を訂正して、問題が何であるかを教えてください:

WordCount.java:25: interface expected here
            public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
                                                                           ^
WordCount.java:39: interface expected here
            public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {
                                                                               ^
WordCount.java:56: setMapperClass(java.lang.Class<? extends org.apache.hadoop.mapred.Mapper>) in org.apache.hadoop.mapred.JobConf cannot be applied to (java.lang.Class<WordCount.Map>)
              conf.setMapperClass(Map.class);
                  ^
WordCount.java:57: setCombinerClass(java.lang.Class<? extends org.apache.hadoop.mapred.Reducer>) in org.apache.hadoop.mapred.JobConf cannot be applied to (java.lang.Class<WordCount.Reduce>)
              conf.setCombinerClass(Reduce.class);
                  ^
WordCount.java:58: setReducerClass(java.lang.Class<? extends org.apache.hadoop.mapred.Reducer>) in org.apache.hadoop.mapred.JobConf cannot be applied to (java.lang.Class<WordCount.Reduce>)
              conf.setReducerClass(Reduce.class);
                  ^
WordCount.java:60: setInputFormat(java.lang.Class<? extends org.apache.hadoop.mapred.InputFormat>) in org.apache.hadoop.mapred.JobConf cannot be applied to (java.lang.Class<org.apache.hadoop.mapreduce.lib.input.TextInputFormat>)
              conf.setInputFormat(TextInputFormat.class);
                  ^
WordCount.java:63: cannot find symbol
symbol  : method setInputPaths(org.apache.hadoop.mapred.JobConf,org.apache.hadoop.fs.Path)
location: class org.apache.hadoop.mapreduce.lib.input.FileInputFormat
              FileInputFormat.setInputPaths(conf, new Path(args[0]));
                             ^
WordCount.java:64: setOutputPath(org.apache.hadoop.mapreduce.Job,org.apache.hadoop.fs.Path) in org.apache.hadoop.mapreduce.lib.output.FileOutputFormat cannot be applied to (org.apache.hadoop.mapred.JobConf,org.apache.hadoop.fs.Path)
              FileOutputFormat.setOutputPath(conf, new Path(args[1]));

コンパイルに使用されるコマンド:

javac -classpath /usr/lib/hadoop/*:/usr/lib/hadoop/client/* WordCount.java 

プログラムはwordcountexample

4

2 に答える 2

1

CHD4 の場合は、次を試してください。

$ javac -classpath 'hadoop classpath' WordCount.java
于 2013-02-28T09:10:23.130 に答える
1

問題は-classpathオプションです。jar の絶対パスを指定する必要があります。*十分ではありません。で区切られたすべての jar 絶対パスを指定します。:

于 2013-02-28T04:15:13.910 に答える