java.lang.runtimeexception:java.lang.instantiationexception使用cygwin在eclipse上运行mapreduce代码

2izufjch  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(297)

嗨,我正在使用cygwin在eclipse上运行mapreduce代码。我能够在这个环境中成功运行wordcount程序。但对于我的新代码,我得到以下例外。我的程序没有任何减速机作业/类。我还在eclipse中调试代码。所有Map程序作业都已成功运行并在上下文中写入输出。在抛出异常之后。已创建临时输出文件夹,但没有最终输出。请帮我解决这个问题。
谢谢

java.lang.RuntimeException: java.lang.InstantiationException
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115)
    at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:530)
    at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:410)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:215)
Caused by: java.lang.InstantiationException
    at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:113
    ... 3 more

请在下面找到我的主要功能。

public static void main(String[] args) throws Exception {
    if (args.length < 5) {
        System.out.println("Arguments: [model] [dictionnary] [document frequency] [tweet file] [output directory]");
        return;
    }
    String modelPath = args[0];
    String dictionaryPath = args[1];
    String documentFrequencyPath = args[2];
    String tweetsPath = args[3];
    String outputPath = args[4];
    Configuration conf = new Configuration();
    conf.setStrings(Classifier.MODEL_PATH_CONF, modelPath);
    conf.setStrings(Classifier.DICTIONARY_PATH_CONF, dictionaryPath);
    conf.setStrings(Classifier.DOCUMENT_FREQUENCY_PATH_CONF, documentFrequencyPath);
    // do not create a new jvm for each task
    conf.setLong("mapred.job.reuse.jvm.num.tasks", -1);
    Job job = new Job(conf, "classifier");
    job.setJarByClass(MapReduceClassifier.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    job.setMapperClass(ClassifierMap.class);
    job.setInputFormatClass(TextInputFormat.class);
    job.setOutputFormatClass(TextOutputFormat.class);
    FileInputFormat.addInputPath(job, new Path(tweetsPath));
    FileOutputFormat.setOutputPath(job, new Path(outputPath));
    job.waitForCompletion(true);
}
6ju8rftf

6ju8rftf1#

这看起来类似于您的问题:hadoop map reduce程序中的示例化异常
您可能需要检查您提供给作业的类是否都不是抽象的。

相关问题