path-java 遍历hdfs文件夹报错!!急!!急

问题描述

java 遍历hdfs文件夹报错!!急!!急
FileStatus[] srcFileStatus = hdfs.listStatus(new Path(srcPath));执行到这句话的时候会报如下错:

java.lang.NullPointerException
at org.apache.hadoop.fs.Path.(Path.java:104)
at org.apache.hadoop.fs.Path.makeQualified(Path.java:440)
at org.apache.hadoop.hdfs.protocol.HdfsFileStatus.makeQualified(HdfsFileStatus.java:263)
at org.apache.hadoop.hdfs.DistributedFileSystem.listStatusInternal(DistributedFileSystem.java:802)
at org.apache.hadoop.hdfs.DistributedFileSystem.access$700(DistributedFileSystem.java:106)
at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:853)
at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:849)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:849)
at test.HdfsOperate.downloadFile(HdfsOperate.java:142)
at test.HdfsTest.main(HdfsTest.java:45)

代码:

public void downloadFile(String dstPath String srcPath) throws Exception
{
Path path = new Path(srcPath);

    Configuration conf = new Configuration();       FileSystem hdfs = path.getFileSystem(conf);    //hdfs = FileSystem.get(URI.create(srcPath) conf);    File rootfile = new File(dstPath);    if(!rootfile.exists()) rootfile.mkdirs();    hdfs.getFileStatus(path);    if (hdfs.isFile(path))    {        FSDataInputStream in = null;        FileOutputStream out = null;        try        {               in = hdfs.open(path);            File srcfile = new File(rootfile path.getName());            if(!srcfile.exists())srcfile.createNewFile();            out = new FileOutputStream(srcfile);            IOUtils.copyBytes(in out 4096 false);        }        finally        {            IOUtils.closeStream(in);            IOUtils.closeStream(out);        }    }    else    {        File dstDir = new File(dstPath);        if (!dstDir.exists())        {            dstDir.mkdirs();        }        FileStatus[] srcFileStatus = hdfs.listStatus(path);        Path[] srcFilePath = FileUtil.stat2Paths(srcFileStatus);        for (int i = 0; i < srcFilePath.length; i++)        {            String srcFile = srcFilePath[i].toString();            int fileNamePosi = srcFile.lastIndexOf(""/"");            String fileName = srcFile.substring(fileNamePosi + 1);            //String fileName = srcFilePath[i].getName();            downloadFile(dstPath  + fileName srcPath  + fileName +""/"");        }    }}

解决方案

就给这行代码,也是6。。。。

解决方案二:
就给这行代码,也是6。。。。

解决方案三:
srcPath为空了吧

时间: 2024-09-17 03:53:54

path-java 遍历hdfs文件夹报错!!急!!急的相关文章

在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历

问题描述 在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历 在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历,防止内存溢出 解决方案 你看到的文件夹下面的第一个文件是操作系统的,如果用Java的API取出来,顺序是乱的,而且文件数量过多能多多少呢?上百个.?你可以只遍历文件名 ,或者在取文件的时候对文件进行一个排序,然后在取对应的文件内容. 解决方案二: 在java中如何遍历某个路径下的所有文件夹和文件java遍历文件夹中所有文件jav

中文乱码-读取python遍历中文目录得到的文件路径报错

问题描述 读取python遍历中文目录得到的文件路径报错 各位朋友们好,我是一名python新手,现在遇到一个问题,恳请各位朋友们能指点一下我. 我的环境是:ubuntu14.04系统,python2.7 用python遍历一个目录,目录层次结构如下: 这是主目录: /home/chaoma/superboard/mydata/input/production 主目录下的目录层次结构如下 --超级画板教学资源_全处理_772 -- Z+Z资源库 --初中数学资源库 --1有理数 ---1.1数的

sdk-Android SDK更新之后新建Android项目会出现R.java文件的报错

问题描述 Android SDK更新之后新建Android项目会出现R.java文件的报错 报错console: R.java was modified manually! Reverting to generated version! 解决方案 Android Studio运行项目报错:java.lang.UnsatisfiedLinkError--.so文件问题eclipse新建android项目后,不会自动生成activity,或者出现This Android SDK requires A

证书服务-java访问AD活动目录报错 在线等

问题描述 java访问AD活动目录报错 在线等 最近在写向AD里面插入用户名和密码的代码,用ldap协议和389端口时可以向AD里面插入无密码的用户,现在改用ldaps方式和636端口后却连不上AD了,郁闷了好多天了,求大神帮助... 注:AD服务和证书服务没有在一台服务器上,我已经在证书服务器上下载了.cer文件,并导入到了d:/zhouwd.keystore文件里. 代码: Hashtable env = new Hashtable(); String adminName = "xdadmi

Android遍历所有文件夹和子目录搜索文件_Android

本文实例为大家分享了android遍历所有文件夹和子目录来搜索文件,供大家参考,具体内容如下 java代码: import java.io.File; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget

Android遍历所有文件夹和子目录搜索文件

本文实例为大家分享了android遍历所有文件夹和子目录来搜索文件,供大家参考,具体内容如下 java代码: import java.io.File; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget

遍历指定文件夹下所有的xml文件并动态生成HTML页面!

xml|遍历|动态|生成html|页面 ++++++++++++++++++++++++++++功能:遍历指定文件夹下所有的xml文件并动态生成HTML页面!++++++++++++++++++++++++++++using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.Sess

t 遍历文件夹 ile nfo-急求使用Qt遍历打开文件夹,并把所有子文件的路径显示在ListWidget中,求大神帮忙!

问题描述 急求使用Qt遍历打开文件夹,并把所有子文件的路径显示在ListWidget中,求大神帮忙! bool StyleBatch::findFilePath(QString path){ QDir dir(path);if (!dir.exists()) return 0;dir.setFilter(QDir::Dirs|QDir::Files);dir.setSorting(QDir::DirsFirst);QFileInfoList list = dir.entryInfoList();

spring配置xml文件classnotfound报错

问题描述 spring配置xml文件classnotfound报错 ApplicationContext ctx=new ClassPathXmlApplicationContext("WebContentWEB-INFspring.xml"); 也用了FileSystemXmlApplicationContext(),输入绝对路径, 但都是java.lang.ClassNotFoundException报错 解决方案 代码报错多贴一些,看看到底是哪个类找不到,这么贴看不出来啥 解决方