美文网首页
java操作HDFS的简单总结demo

java操作HDFS的简单总结demo

作者: 记得_5d12 | 来源:发表于2018-04-17 15:05 被阅读0次

    一、需求分析

            将本地文件系统中的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上查看是否已经传输过去了。

    已经传上去了 在平台上也能看到文件信息

    相关文章

      网友评论

          本文标题:java操作HDFS的简单总结demo

          本文链接:https://www.haomeiwen.com/subject/cawukftx.html