java hdfs进程_Java程序操作HDFS

packagecom.zy.hdfs;importjava.io.IOException;importjava.net.URI;importjava.net.URISyntaxException;importjava.util.Iterator;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileStatus;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.LocatedFileStatus;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.fs.RemoteIterator;importorg.junit.Before;importorg.junit.Test;public classtest {public static void main(String[] args) throwsException {//上传//1实例化configuration

Configuration configuration = newConfiguration();//-------------------//设置一些属性

configuration.set("dfs.replication", "2");//2个副本

configuration.set("dfs.blocksize", "80m");//按照80m切分//----------------------//2.获取操作文件系统的客户端实例

FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");//3.执行上传操作  (src 本地资源 ,dst 上传目的地)

fs.copyFromLocalFile(new Path("C:\\Users\\Administrator\\Desktop\\wc.txt"), new Path("/"));//两次上传一样的会被覆盖//4.关闭链接

fs.close();

}

@Testpublic void download() throwsException{//下载

Configuration configuration= newConfiguration();

FileSystem fs= FileSystem.get(new URI("hdfs://192.168.64.111:9000"), configuration, "root");

fs.copyToLocalFile(false, new Path("/jdk-8u141-linux-x64.tar.gz"), new Path("E://jdk-8u141-linux-x64.tar.gz"), true);

fs.close();

}//----------------

FileSystem fs=null;

@Before//在每次运行junit时先执行

public void before() throwsException{

System.out.println("11111");

Configuration configuration= newConfiguration();

fs= FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");

}//---------------

@Testpublic void delete() throws Exception{//删除

fs.delete(new Path("/弹性表达式.doc"), true);//为true删除文件夹及里面的内容,false只能删除空的文件夹

fs.close();

}

@Testpublic void mkdir() throws Exception{//创建目录

fs.mkdirs(new Path("/a/b/c"));

fs.close();

}

@Testpublic void list() throwsException{

FileStatus[] listStatus= fs.listStatus(new Path("/"));//不会递归进去

for(FileStatus fileStatus : listStatus) {if(fileStatus.isFile()){

System.out.println("文件名:"+fileStatus.getPath().toString());

}else{

System.out.println("目录:"+fileStatus.getPath().toString());

}

}

fs.close();

}

@Testpublic void list2() throws Exception{//递归遍历出所有文件

RemoteIterator listFiles = fs.listFiles(new Path("/"), true);//为true,递归遍历

while(listFiles.hasNext()){

LocatedFileStatus next=listFiles.next();

System.out.println(next.toString());

System.out.println("文件块尺寸"+next.getBlockSize());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值