hadoop上传-下载-创建-删除代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop上传-下载-创建-删除代码相关的知识,希望对你有一定的参考价值。

package hdfs;

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
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;
//import org.omg.CORBA_2_3.portable.InputStream;



public class HDFSAPITest {
    
    FileSystem fs=null;
    @Before
    public void init(){
        System.setProperty("HADOOP_USER_NAME","hadoop");
        Configuration conf=new Configuration();
        try{
            //指定Hadoop服务器地址和端口号
            URI uri=new URI("hdfs://192.168.75.88:9000");
               fs=FileSystem.get(uri,conf);
              
        }catch(Exception e){
               e.printStackTrace();
           }
    }
    
    @Test
    public void put(){
        try {
            //从本地系统读文件的时候,记得添加file:///协议
            fs.copyFromLocalFile(
                    new Path("file:///f:/ha.txt"),new Path("/aaa/") );
            System.out.println("上传结束");
        } catch (IOException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
    
    @Test
    public void download(){
        try {
            //从本地系统读文件的时候,记得添加file:///协议
            fs.copyToLocalFile(
                    false, new Path("/c"), new Path("file:///f:/"), true);
            System.out.println("下载结束");
            
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
    
    @Test
    public void mmkdir(){
        try{
            boolean flag=fs.mkdirs(new Path("/abc2"));
            System.out.println("目录创建结果:"+(flag?"sussess":"fail"));
        }catch(Exception e){
               e.printStackTrace();
           }
        
    }
    
    @Test
    public void delete(){
        try {
            //第一个参数的目录的时候,只有该目录是空的,那么第二参数才可以设置为false
            //否则第二个参数需要设置为true
            //如果第一个参数是文件的时候,那么第二个参数是true或false都行
            boolean flag=fs.delete(new Path("/b"),true);
            System.out.println("目录删除结果:"+(flag?"sussess":"fail"));
        } catch (IOException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
    
    @Test
    public void ls(){
        try{
            FileStatus[] status=fs.listStatus(new Path("/"));
            for(FileStatus fileStatus:status){
                //文件的路径
                System.out.println(fileStatus.getPath());
                //文件的拥有者
                System.out.println(fileStatus.getOwner());
                //文件的长度
                System.out.println(fileStatus.getLen());
                //文件的备份数量
                System.out.println(fileStatus.getReplication());
                //该文件是否是一个目录
                System.out.println(fileStatus.isDirectory());
                //该文件是否是一个文件
                System.out.println(fileStatus.isFile());
                //文件的访问权限
                System.out.println(fileStatus.getPermission());
                System.out.println("------------------------------");
            }
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
                
        // TODO Auto-generated method stub
           Configuration conf=new Configuration();
           try{
               //指定Hadoop服务器地址和端口号
               URI uri=new URI("hdfs://192.168.75.88:9000");
               FileSystem fs=FileSystem.get(uri,conf);
               Path path=new Path("/c");
               InputStream inputStream=fs.open(path);
               int b;
               while((b=inputStream.read())!=-1){
                   System.out.print((char)b);
               }
               inputStream.close();
           }catch(Exception e){
               e.printStackTrace();
           }
    }
    

}

以上是关于hadoop上传-下载-创建-删除代码的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop_HDFS:Shell操作之文件的管理(上传下载删除等)

hdfs显示查看下载上传删除文件操作

Hadoop的Shell操作

Hadoop常用命令

03Hadoop框架HDFS Shell 命令

Hadoop-2.6.0上调用C的API实现相似云盘的功能