java操作HDFS的简单总结demo

一、需求分析

        将本地文件系统中的hdfsDemo文件传到HDFS文件系统上的目录中,如下:hdfs://hadoop01:9000/data/hdfs/。

        首先,判断指定的文件夹是否存在,若不存在则创建指定的文件夹,然后将文件夹中的文件及文件夹列出,将文件传到指定的地址中。

二、java代码开发

        废话不多说,直接贴代码。格式不对的话,凑合看吧。。。

public class HdfsDemo {

public static void main(String[] args) {

// 指定的路径

String uri = "hdfs://hadoop01:9000/data/hdfs";

String p_uri = "hdfs://hadoop01:9000/data";

// linux中的文件路径

String source = "/usr/local/filecontent/hdfsDemo";

// HDFS中要创建的文件

String file = "hdfs://hadoop01:9000/data/hdfs/hdfsDemo";

Configuration conf = new Configuration();

FileSystem fs = null;

try{

fs = FileSystem.get(new URI(uri), conf);

Path p_path = new Path(p_uri);

// 判断指定的路径是否存在

boolean isExists = fs.exists(new Path(uri));

if(!isExists){

// 不存在

System.out.println("======指定的目录不存在======");

FileStatus status[] = fs.listStatus(p_path);

System.out.println("======现有目录结构如下======");

for (int i = 0; i < status.length; i++) {

System.out.println(status[i].getPath().toString());

}

System.out.println("======正在创建指定的目录=====");

fs.mkdirs(new Path(uri));

System.out.println("========目录创建成功========");

FileSystem fs1 = FileSystem.get(new URI(uri), conf);

FileStatus status1[] = fs1.listStatus(p_path);

System.out.println("======创建后目录结构如下======");

for (int i = 0; i < status1.length; i++) {

System.out.println(status1[i].getPath().toString());

}

}

System.out.println("======正在将文件传输到HDFS文件系统中======");

InputStream in = new BufferedInputStream(new FileInputStream(source));

OutputStream out = fs.create(new Path(file));

IOUtils.copyBytes(in, out, 4096,true);

System.out.println("======传输成功=======");

}catch(Exception e){

e.printStackTrace();

}finally{

if(fs != null){

try {

fs.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}


运行成功!

        基本已经没问题了,不过还要在hdfs上查看是否已经传输过去了。


已经传上去了


在平台上也能看到文件信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • import java.io.FileNotFoundException; import java.io.IOEx...
    翔战士阅读 348评论 0 0
  • 一.功能实现: 1:将本地文件上传到HDFS上 2:从HDFS上读取文件到本地 3:删除HDFS上的文件 4:遍历...
    起个什么呢称呢阅读 631评论 0 0
  • 使用java API操作HDFS,老师说只要掌握了FileSystem这个类就OK(的确,翻了源码,这个类里面的内...
    honeyman阅读 1,888评论 0 1
  • 《贵人》 人们常听说这样的话:“你有‘贵人’相助”。乍一听感觉有点唯心主义,有点像算命先生的口吻。但是,当我们在社...
    NicoleQIu阅读 286评论 0 2