idea操作hdfs

2020-09-28 09:03:34

準備工作:

1.把hadoop的jar放在一個檔案

jar在一個檔案下

2.idea的導包

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

3.點選ok我們就完成了idea的hadoop的jar匯入工作

一、在HDFS上建立目錄或檔案

1.獲取HDFS設定 hdfs namenode

Configuration configuration = new Configuration();
configuration.set("fs.defaultFS","hdfs://ip地址:9000");

2.根據設定連線HDFS

FileSystem fileSystem = FileSystem.get(configuration);

3.用HDFS建立目錄

fileSystem.create(new Path("/shangdongqinggong"));
fileSystem.mkdirs(new Path("/shangdongqinggong02"));

4.關閉資源

fileSystem.close();

5.如果丟擲異常:

​ 我們可以修改hadoop的組態檔 hdfs-site.xml

[外連圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-0vhIYRoy-1601095079060)(C:\Users\陳同學\AppData\Roaming\Typora\typora-user-images\image-20200926122028181.png)]

二、在HDFS上傳檔案

1.獲取HDFS設定 hdfs namenode

Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://ip地址:9000");

2.根據設定連線HDFS

FileSystem fileSystem = FileSystem.get(configuration);

3.讀取硬板上的資料

InputStream inputStream=new FileInputStream(new File("本地檔案的路徑"));

4.規劃上傳檔案的位置

OutputStream outputStream =fileSystem.create(new Path("/上傳路徑"));

5.上傳

IOUtils.copyBytes(inputStream,outputStream,configuration);

6.關閉資源

outputStream.close();
inputStream.close();
fileSystem.close();

三、下載檔案到本地

1.獲取HDFS設定 hdfs namenode

Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://ip地址:9000");

2.根據設定連線HDFS

FileSystem fileSystem = FileSystem.get(configuration);

3.讀取HDFS上的資料

InputStream inputStream=fileSystem.open(new Path("檔案路徑名"));

4.規劃硬碟上的儲存位置

OutputStream outputStream=new FileOutputStream(new File("E:\\apps\\"));

5.下載

IOUtils.copyBytes(inputStream,outputStream,configuration);

6.關閉資源

outputStream.close();
inputStream.close();
fileSystem.close();

四、刪除HDFS的檔案

1.獲取HDFS設定 hdfs namenode

Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://ip地址:9000");

2.根據設定連線HDFS

FileSystem fileSystem = FileSystem.get(configuration);

3.刪除 true 如果是資料夾,有子資料夾,同時刪除

fileSystem.delete(new Path("/檔名"),true);
fileSystem.delete(new Path("/檔名"), false);

4.關閉資源

fileSystem.close();

五、檢視檔案

1.獲取HDFS設定 hdfs namenode

Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://ip地址:9000");

2.根據設定連線HDFS

FileSystem fileSystem = FileSystem.get(configuration);

3.檢視檔案系統中檔案

RemoteIterator<LocatedFileStatus> iterator = fileSystem.listFiles(new Path("/"), true);
while (iterator.hasNext()){
    LocatedFileStatus fileStatus=iterator.next();
    System.out.println(fileStatus.getPath());
    System.out.println(fileStatus.getLen());
    System.out.println(fileStatus.getReplication());
    System.out.println(fileStatus.getOwner());
}

4.關閉資源

fileSystem.close();

六、完整程式碼

intln(fileStatus.getLen());
System.out.println(fileStatus.getReplication());
System.out.println(fileStatus.getOwner());
}


## 4.關閉資源

```java
fileSystem.close();

六、完整程式碼

[外連圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-vj5oWsZ9-1601095079062)(C:\Users\陳同學\AppData\Roaming\Typora\typora-user-images\image-20200926122217224.png)]