package com.itcast.hdfsdemo;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.junit.Before;
import org.junit.Test;
public class HDFS_CRUD {
FileSystem fs=null;
@Before
public void init() throws Exception {
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.121.134:9000");
System.setProperty("HADOOP_USER_NAME","root");
fs=FileSystem.get(conf);
}
@Test
public void testAddFileToHdfs()throws IOException {
Path src=new Path("D:/test.txt");
Path dst=new Path("/testfile1");
//fs.copyFromLocalFile(src, dst);
fs.copyFromLocalFile(src, dst);
fs.close();
}
@Test
public void testDownloadFileToLocal()throws IOException{
Path src=new Path("D:/");
Path dst=new Path("/testfile1");
fs.copyToLocalFile(dst, src);
fs.close();
}
@Test
public void testMkdirAndDeleteAndRename()throws Exception{
fs.mkdirs(new Path("/a/b/c"));
fs.mkdirs(new Path("/a2/b2/c2"));
fs.rename(new Path("/a"),new Path("/a3"));
fs.delete(new Path("/a2"),true);
}
@Test
public void testListFiles()throws FileNotFoundException,IllegalArgumentException,IOException{
RemoteIterator<LocatedFileStatus> listFiles=fs.listFiles(new Path("/"),true);
while(listFiles.hasNext()){
LocatedFileStatus fileStatus=listFiles.next();
System.out.println(fileStatus.getPath().getName());
System.out.println(fileStatus.getBlockSize());
System.out.println(fileStatus.getPermission());
System.out.println(fileStatus.getLen());
BlockLocation[]blockLocations=fileStatus.getBlockLocations();
for(BlockLocation b1:blockLocations){
System.out.println("block-length:"+b1.getLength()+"--"+"block-offset:" +b1.getOffset());
String[]hosts=b1.getHosts();
for(String host:hosts){
System.out.println(host);
}
}
System.out.println("-------分割线------");
}
}
}
Hadoop HDFS分布式文件系统 HDFS_CRUD.java文件
最新推荐文章于 2022-11-25 10:40:41 发布