HDFS文件上传
1、源代码`
@Test
public void testCopyFromLocalFile() throws IOException
,InterruptedException
,URISyntaxException
{
Configuration configuration
= new Configuration();
configuration
.set("dfs.replication","2");
FileSystem fs
= FileSystem
.get(new URI("hdfs://hadoop101:9000"),configuration
,"root");
fs
.copyFromLocalFile(new Path("d:/test.txt"),new Path("/test.txt"));
fs
.close();
System
.out
.println("上传结束");
}
2、将hdfs-site.xml拷贝到项目的根目录下
HDFS文件下载
@Test
public void testCopyToLocalFile() throws IOException
,InterruptedException
,URISyntaxException
{
Configuration configuration
= new Configuration();
FileSystem fs
= FileSystem
.get(new URI("hdfs://hadoop101:9000"),configuration
,"root");
fs
.copyToLocalFile(false,new Path("/test.txt"),new Path("d:/test.txt"),true);
fs
.close();
System
.out
.println("下载结束");
}
HDFS文件夹删除
@Test
public void testDelete() throws IOException
,InterruptedException
,URISyntaxException
{
Configuration configuration
= new Configuration();
FileSystem fs
= FileSystem
.get(new URI("hdfs://hadoop101:9000"),configuration
,"root");/
fs
.delete(new Path("/honglou.txt"),true);
fs
.close();
System
.out
.println("删除结束");
}
HDFS文件名更改
@Test
public void rename() throws IOException
,InterruptedException
,URISyntaxException
{
Configuration configuration
= new Configuration();
FileSystem fs
= FileSystem
.get(new URI("hdfs://hadoop101:9000"),configuration
,"root");
fs
.rename(new Path("/1.txt"),new Path("/2.txt"));
fs
.close();
}
HDFS文件详情查看
@Test
public void testListFiles() throws IOException
,InterruptedException
,URISyntaxException
{
Configuration configuration
= new Configuration();
FileSystem fs
= FileSystem
.get(new URI("hdfs://hadoop101:9000"),configuration
,"root");
RemoteIterator
<LocatedFileStatus> listFiles
= fs
.listFiles(new Path("/"),true);
while(listFiles
.hasNext()){
LocatedFileStatus status
= listFiles
.next();
System
.out
.println(status
.getPath().getName());
System
.out
.println(status
.getLen());
System
.out
.println(status
.getPermission());
System
.out
,println(status
.getGroup());
BlockLocation
[] blockLocations
= status
.getBlockLocation();
for(BlockLocation blockLocation
:blockLocations
){
String
[] hosts
= blockLocation
.getHosts();
for(String host
:hosts
){
System
.out
.println(host
);
}
}
System
.out
.println("====分割线====");
}
fs
.close();
}
HDFS文件和文件夹判断
@Test
public void testListStatus() throws IOException
,InterruptedException
,URISyntaxException
{
Configuration configuration
= new Configuration();
FileSystem fs
= FileSystem
.get(new URI("hdfs://hadoop101:9000"),configuration
,"root");
FileStatus
[] fileStatus
= fs
.listStatus(new Path("/"));
for(FileStatus fileStatus
: listStatus
){
if(fileStatus
.isFile()){
System
.out
.println("f:"+fileStatus
.getPath().getName());
}else{
System
.out
.println("d:"+fileStatus
.getPath().getName());
}
}
fs
.close();
}