mapreduce和GlobStatus中的空指针异常

时间:2016-03-30 00:12:17

标签: hadoop nullpointerexception mapreduce

我在编写Mapreduce应用程序时使用Hadoop FileSystem API和GlobStatus时遇到了一个问题。

这是驱动程序的片段。

FileSystem fs = FileSystem.get(URI.create(args[0]), conf);
Path path = new Path(args[0] + args[1]);

FileStatus[] status = fs.globStatus(path);
Path[] paths = FileUtil.stat2Paths(status);

以下是我调用程序的方法

  

纱线罐子MyMapReduceTest01.jar com.abc.test.MyMapRedTestDriver / user / root / raw_data / abc *

这导致以下异常

    Exception in thread "main" java.lang.NullPointerException
    at com.abc.test.MyMapRedTestDriver.run(MyMapRedTestDriver.java:42)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
    at com.abc.test.MyMapRedTestDriver.main(MyMapRedTestDriver.java:77)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

/ user / root / raw_data /目录中的文件命名为 abc_01.txt abc_02.txt ...

1 个答案:

答案 0 :(得分:0)

在Hadoop文件系统API中处理globstatus的方式似乎存在问题。

为了使上述程序在没有任何代码更改的情况下工作,我只需要将命令更改为

  

纱线罐子MyMapReduceTest01.jar com.abc.test.MyMapRedTestDriver / user / root / raw_data / abc _ *