-
創建目錄命令
-
必要的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();
}
}