当前位置:首页 > IT技术 > Web编程 > 正文

Hadoop HDFS 整合 上传 下载 删除
2021-10-15 15:10:01


 

 

 新建一个Java项目,导入jar,新建一个测试类,编写代码实现文件操作功能:

 

package com.bw.test;

 

import java.io.FileInputStream;

import java.io.FileOutputStream;

 

import java.io.InputStream;

import java.io.OutputStream;

import java.net.URI;

 

import org.apache.commons.compress.utils.IOUtils;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileStatus;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.junit.Before;

import org.junit.Test;

/**

 *

 * @类描述 :

 * @作者 :

 * @日期 : 2016-7-8 下午5:10:22

 *

 */

public class test3 {

 

    //hdfs操作入口

    FileSystem fileSystem = null;

   

    @Before

    public void setUp() throws Exception {

        URI uri = new URI("hdfs://192.192.192.3:9000");

        Configuration configuration = new Configuration();

        fileSystem = FileSystem.get(uri, configuration,"root");

    }

    @Test

    public void list() throws Exception {

        //递归方式取得指定目录下的文件信息

        FileStatus[] liFileStatus = fileSystem.listStatus(new Path("/"));

        //输出取得的文件权限和文件名称

        for (FileStatus fileStatus : liFileStatus) {

            System.out.println(fileStatus.getPermission()+" "+fileStatus.getPath());

        }

    }

    //上传

    @Test

    public void put() throws Exception {

        //是否覆盖同名文件(前提是也在同一目录下)标志位

        boolean overwrite = true;

        //DFS文件输出流

        FSDataOutputStream outputStream = fileSystem.create(new Path("/hbase-1.1.2-bin.tar.gz"),overwrite);

        //本地输入流

        InputStream inputStream = new FileInputStream("C:\Users\YAN\Desktop\开发指南\Hadoop\05. HBase使用指南\安装程序\hbase-1.1.2-bin.tar.gz");

        //使用工具类上传

        IOUtils.copy(inputStream, outputStream,4096);

    }

    //下载

    @Test

    public void get() throws Exception {

        //DFS文件输入流

        FSDataInputStream inputStreamOption = fileSystem.open(new Path("/hbase-1.1.2-bin.tar.gz"));

        //本地文件输出流

        OutputStream outputStream = new FileOutputStream("E:\hbase-1.1.2-bin.tar.gz");

        //使用工具类下载

        IOUtils.copy(inputStreamOption, outputStream,4096);

    }

    //删除

    @Test

    public void del() throws Exception {

        //是否删除

        boolean b = true;

        //DFS文输入流

        fileSystem.delete(new Path("/input"),b);

    }

 

}

 


本文摘自 :https://blog.51cto.com/u