java.lang.NoSuchMethodError: org.apache.hadoop.conf.- Konfiguration.addDeprecation(Ljava/lang/String;[Ljava/lang/String;)

Ich bin mit Java/Eclipse/Hadoop 2.2.0 (mit allen notwendigen Gläser), um eine sample-Map-Aufgabe Reduzieren (Einzelnen Knoten lokal) auf Ubuntu unter den unten angegebenen code aus, sondern die Begegnung mit Ausnahmen (stacktrace unten).

Kann ich das Beispiel word count Beispiel in Hadoop von der ubuntu-Konsole.

Code:

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class testhdfs
{
    public static class WordMapper extends Mapper<Text, Text, Text, Text>
    {
        private Text word = new Text();
        public void map(Text key, Text value, Context context) throws IOException, InterruptedException
        {
            StringTokenizer itr = new StringTokenizer(value.toString(),",");
            while (itr.hasMoreTokens())
            {
                word.set(itr.nextToken());
                context.write(key, word);
            }
        }
    }
    public static class AllTranslationsReducer
    extends Reducer<Text,Text,Text,Text>
    {
        private Text result = new Text();
        public void reduce(Text key, Iterable<Text> values,
        Context context
        ) throws IOException, InterruptedException
        {
            String translations = "";
            for (Text val : values)
            {
                translations += "|"+val.toString();
            }
            result.set(translations);
            context.write(key, result);
        }
    }
    public static void main(String[] args) throws Exception
    {
        Configuration conf = new Configuration();
        Job job = new Job(conf, "dictionary");
        job.setJarByClass(testhdfs.class);
        job.setMapperClass(WordMapper.class);
        job.setReducerClass(AllTranslationsReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(Text.class);
        job.setInputFormatClass(KeyValueTextInputFormat.class);
        FileInputFormat.addInputPath(job, new Path("/testext"));
        FileOutputFormat.setOutputPath(job, new Path("resulthdfs"));
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

Stacktrace:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecation(Ljava/lang/String;[Ljava/lang/String;)V
    at org.apache.hadoop.mapreduce.util.ConfigUtil.addDeprecatedKeys(ConfigUtil.java:53)
    at org.apache.hadoop.mapreduce.util.ConfigUtil.loadResources(ConfigUtil.java:41)
    at org.apache.hadoop.mapreduce.Job.<clinit>(Job.java:108)
    at testhdfs.main(testhdfs.java:49)
  • NoSuchMethodError fast immer bedeutet, Sie haben einige seltsame dep-problem und ziehen sich in die falsche jar etwas.
  • Ja, ich habe die Lösung, danke.Das Projekt fehlte eine Liste der Gläser.
  • Was war das Update?
  • Die Krüge wurden Sie fehlt?
InformationsquelleAutor heisenberg | 2014-03-30
Schreibe einen Kommentar