hadoop相关操作的一些方法

FileSystem.get(url,configuration,user);//获取连接
CopyFromLocalFile();//上传文件到hdfs
CopyToLocal();//下载文件到本地
rename(path1,path2)//重新命名文件
delete(path1,true);//删除文件名
fs.listStatus(new Path());//用来判断文件的种类 是目录不是文件夹
iterator = fs.listFiles(path1, true);//参数1路径 参数2 递归 获取文件的相关的一些信息
BlockLocation[] blocakLocations=fileStatus.getBlockLocations();
LocatedFileStatus fileStatus = iterator.next();//获取每个文件从而可以获取他们的数据元信息
fileStatus.getPermission();//获取权限
fileStatus.getGruop();//获取所属组
fileStatus.getOwner();//获取所属用户
fileStatus.getLen();//

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;

public class testCopyFromLocalFile{
    FileSystem fs;
    @Before
    public void testCopyFromLocalFile() throws IOException, InterruptedException, URISyntaxException {

        // 1 获取文件系统
        URI url=new URI("hdfs://192.168.48.128:9000");


//       优先级 修改一些东西 configuration.set-->hdf-site.xml--->修改集群中的配置文件


        Configuration configuration = new Configuration();
        configuration.set("dfs.replication", "2");//可以修改父本的个数
        String user="dev1";

         fs = FileSystem.get(url, configuration, user);
        System.out.println("intit....");


    }

    // 2 上传文件到HDFS
    @Test

    public void CopyFromLocalFiletest() throws  Exception{


//        path1 Windows系统的本地环境的文件路径
//        path2 hdfs文件路径


        Path path1=new Path("/opt/module/hadoop-2.7.2/word.txt");
        Path path2=new Path("/user/dev1/input");
        fs.copyFromLocalFile(path1,path2);
    }

//反hdfs文件复制到时本地
    @Test

    public void CopyToLocalFiletest() throws Exception{

        Path path1=new Path("/user/dev1/input2/word.txt");
        Path path2=new Path("e:/aaa.txt");
//     参数1 是否删除
        fs.copyToLocalFile(true,path1,path2);

    }


//    删除文件
    @Test

    public void deletetest() throws Exception{


        Path path = new Path("/opt/module/hadoop-2.7.2/word.txt");
        fs.delete(path,true);//true强制删除

    }



//    文件重命名
    @Test

    public void renametest() throws IOException {
        Path path1=new Path("/user/dev1/input2/word.txt");
        Path path2=new Path("/user/dev1/input2/newword.txt");

        fs.rename(path1,path2);

    }
//    遍历指定目录的元数据与信息
 @Test

   public void listFilestest() throws IOException { 
        Path path1=new Path("/user/dev1/input/");
     RemoteIterator<LocatedFileStatus>  iterator = fs.listFiles(path1, true);//参数1路径 参数2 递归
     while(iterator.hasNext()){
//         获得每个文件
         LocatedFileStatus fileStatus = iterator.next();
//         权限
         System.out.println(fileStatus.getPermission()+"\t");
//         所有者
         System.out.println(fileStatus.getOwner()+"\t");
//         所属组
         System.out.println(fileStatus.getGroup() + "\t");
//         长度
         System.out.println(fileStatus.getLen() + '\t');
//         数据块的信息
         BlockLocation[] blocakLocations=fileStatus.getBlockLocations();
         System.out.println(Arrays.toString(blocakLocations));

     }



 }






@After

public void test() throws Exception{

// 3 关闭资源
    fs.close();


    System.out.println("destory....");
}




}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有时间指导毕业设计

觉得写的好的话可以给我打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值