码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-06-30 16:14:07      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

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上传-下载-创建-删除代码

标签:

原文地址:http://www.cnblogs.com/caogaojun/p/5630008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!