首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hadoop - java.lang.RuntimeException: hadoop

hadoop - java.lang.RuntimeException: hadoop
EN

Stack Overflow用户
提问于 2013-12-14 11:17:46
回答 1查看 4.1K关注 0票数 4

我正在尝试从客户端(widows-7)运行map-reduce程序,这是map-reduce类:

代码语言:javascript
运行
复制
Configuration conf =  new Configuration();

    conf.addResource(new Path("C:\\app\\hadoop-2.0.0-cdh4.3.0\\etc\\hadoop\\core-site.xml"));
    conf.addResource(new Path("C:\\app\\hadoop-2.0.0-cdh4.3.0\\etc\\hadoop\\hdfs-site.xml"));

    conf.set("fs.defaultFS", "hdfs://host:8020");
    conf.set("mapred.job.tracker", "host:8021");

    Job job = new Job(conf, "mapRed");
    job.setMapperClass(MapClass.class);
    //job.setInputFormatClass(org.apache.hadoop.mapreduce.lib.input.TextInputFormat.class);
    int numreducers = 1;

    job.setNumReduceTasks(numreducers);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(Text.class);

    Path inp = new Path("/data/test");
    FileInputFormat.addInputPath(job, inp);
    FileOutputFormat.setOutputPath(job, new Path("/data"));
    System.exit(job.waitForCompletion(true) ? 0 : 1);

此程序抛出异常:

代码语言:javascript
运行
复制
    13/12/14 08:27:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.lang.RuntimeException: java.lang.InstantiationException
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:128)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2307)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:87)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2342)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2324)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:351)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:163)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:335)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:194)
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(FileInputFormat.java:368)
    at org.gridedge.finalytics.MRTemplate.main(MRTemplate.java:55)
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:126)
    ... 10 more

我在这里发现了一个类似的问题,InstantiationException in hadoop map reduce program,我把FileInputFormat改成了TextInputFormat:

代码语言:javascript
运行
复制
 TextInputFormat.addInputPath(job, inp);
 TextOutputFormat.setOutputPath(job, new Path("/data"));

错误保持不变,并在FileInputFormat.addInputPath(job, inp);行抛出

EN

回答 1

Stack Overflow用户

发布于 2014-11-28 19:28:29

正确的配置是在setInputFormat方法中设置TextInputFormat为。这一行似乎在你的代码中被注释了。请将其注释掉,然后尝试使用

FileInputFormat.addInputPaths。

要设置输入和输出格式,您可以看到以下几行。

job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutputFormat.class);

如果您仍然面临任何错误,请让我知道。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20579302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档