hadoop中用copyToLocalFile方法下载报NullPointerException该怎么办

18次阅读
没有评论

行业资讯    
服务器    
云计算    
hadoop 中用 copyToLocalFile 方法下载报 NullPointerException 该怎么办

这篇文章将为大家详细讲解有关 hadoop 中用 copyToLocalFile 方法下载报 NullPointerException 该怎么办,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

 /**
 *  下载文件
 */
 @Test
 public void download() throws Exception { fs.copyToLocalFile(new Path( hdfs://master:9000/aa/lidunhui.jpg), new Path(e://wangbadan.txt));
 }

运行该下载测试报空指针异常,如下:

java.lang.NullPointerException
 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1010)
 at org.apache.hadoop.util.Shell.runCommand(Shell.java:445)
 at org.apache.hadoop.util.Shell.run(Shell.java:418)
 at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
 at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
 at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
 at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:633)
 at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:467)
 at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:456)
 at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424)
 at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906)
 at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887)
 at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784)
 at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:365)
 at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
 at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289)
 at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1968)
 at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1937)
 at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1913)
 at com.jasun.hadoop.hdfs.HdfsUtil.download(HdfsUtil.java:62)
 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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
 at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

解决办法,如下:

  将 fs.copyToLocalFile(hdfsPath,localPath); 改为 fs.copyToLocalFile(false,hdfsPath,localPath,true)

 /**
 *  下载文件
 */
 @Test
 public void download() throws Exception { fs.copyToLocalFile(false, new Path( hdfs://master:9000/aa/lidunhui.jpg), new Path(e://wangbadan.txt), true);
 }

关于 hadoop 中用 copyToLocalFile 方法下载报 NullPointerException 该怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。