-
创建目录命令
-
必要的jar包
public class HdfsTest {
//定义一个配置文件
public static Configuration conf = new Configuration();
public static void main(String[] args) {
createFolder();
}
/**
* 创建一个文件
*/
public static void createFolder(){
conf.set("fs.defaultFS","hdfs://192.168.2.2:9000");
try {
//通过配置信息得到文件系统的对象
FileSystem fs = FileSystem.get(conf);
//在指定的路径下创建文件夹
Path path = new Path("/test01");
fs.mkdirs(path);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void listFile(Path path){
conf.set("fs.defaultFS","hdfs://192.168.2.2:9000");
try {
FileSystem fs = FileSystem.get(conf);
//把文件元数据封装到fileStatuses数组当中
FileStatus[] fileStatuses = fs.listStatus(path);
//遍历这个数组
for (FileStatus fstatus:fileStatuses) {
//如果当前文件是一个文件夹则进行递归
if(fstatus.isDirectory()){
System.out.println("当前路径是:" + fstatus.getPath());
listFile(fstatus.getPath());
} else {
System.out.println("当前路径是:" + fstatus.getPath());
}
}
}catch (IOException e){
e.printStackTrace();
}
}
public static void uploadFile(){
conf.set("fs.defaultFS","hdfs://192.168.2.2:9000");
try {
FileSystem fs = FileSystem.get(conf);
//定义待上传本地文件及服务器的路径
Path src = new Path(new File("xiesheng.txt").getAbsolutePath());
Path dest = new Path("/test01/hello.txt");
//从本地上传文件
fs.copyFromLocalFile(src,dest);
} catch (IOException e){
e.printStackTrace();
}
}
public static void downloadFile(){
conf.set("fs.defaultFS","hdfs://192.168.2.2:9000");
try{
FileSystem fs = FileSystem.get(conf);
//定义服务器要下载文件的路径和本地存储路径
Path src = new Path("/test01/hello.txt");
Path dst = new Path("D://download//hello.txt");
//从服务器下载文件到本地
//fs.copyToLocalFile(src,dest); 使用这个会报一个空指针,需要使用下面这个方法
fs.copyToLocalFile(false,src,dst,true);
} catch (IOException e){
e.printStackTrace();
}
}