首先,新建Maven项目,添加相应的依赖,新建Java类:
package com.young;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.util.Progressable;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.*;
import java.net.URI;
public class HDFSTest {
Configuration configuration;
FileSystem fileSystem;
String HDFS_PATH = "hdfs://192.168.131.142:9000";
@Before
public void before() throws Exception{
configuration = new Configuration();
fileSystem=FileSystem.get(new URI(HDFS_PATH),configuration,"root");
}
@Test
public void mkdir() throws Exception{//新建文件夹
boolean result = fileSystem.mkdirs(new Path("/idea"));
System.out.print(result);
}
@Test
public void write() throws Exception {//新建文件
FSDataOutputStream fsDataOutputStream = fileSystem.create(new Path("/idea/hello.txt"));
fsDataOutputStream.writeBytes("hello IDEA!");
fsDataOutputStream.close();
}
@Test
public void read() throws Exception {//查看HDFS上的文件
FSDataInputStream fsDataInputStream = fileSystem.open(new Path("/idea/hello.txt"));
InputStreamReader isr = new InputStreamReader(fsDataInputStream);//创建输入流
BufferedReader br = new BufferedReader(isr);//按行读取
String str = br.readLine();
while(str!=null)
{
System.out.println(str);
str = br.readLine();
}
br.close();
isr.close();
fsDataInputStream.close();
}
@Test
public void upload() throws Exception{//上传文件到HDFS
fileSystem.copyFromLocalFile(new Path("D:/test/abc.txt"),new Path("/idea"));
fileSystem.close();
}
@Test
public void rename() throws Exception{//文件重命名
fileSystem.rename(new Path("/idea/hello.txt"),new Path("/idea/h.txt"));
fileSystem.close();
}
@Test
public void download() throws Exception{//从HDFS下载文件
fileSystem.copyToLocalFile(new Path("/idea/h.txt"),new Path("D:/test"));
fileSystem.close();
}
@Test
public void query() throws Exception{//查询某目录下所有文件
FileStatus[] fileStatuses = fileSystem.listStatus(new Path("/"));
for(int i=0;i<fileStatuses.length;i++)
{
System.out.println(fileStatuses[i].getPath().toString());
}
fileSystem.close();
}
@Test
public void delete() throws Exception{//删除文件
fileSystem.delete(new Path("/idea/h.txt"),true);
fileSystem.close();
}
@After
public void destroy(){
}
}