博客 / 詳情

返回

【趙渝強老師】Hadoop HDFS的快照

HDFS的快照(Snapshot)是一個全部文件系統、或者某個目錄在某一時刻的鏡像。這裏其實可以把HDFS的快照理解成是HDFS提供的一種備份機制。快照應用在以下場景中:

  • 防止用户的錯誤操作
  • 備份
  • 試驗/測試
  • 災難恢復

視頻講解如下:
https://www.bilibili.com/video/BV1eTYCzVE4b/?aid=115043685437...

由於HDFS的快照功能是針對的目錄,因此需要首先使用HDFS的管理員命令開啓目錄的快照功能,再使用HDFS的操作命令創建目錄的快照。

#與快照相關的HDFS管理命令
    [-allowSnapshot <snapshotDir>]
    [-disallowSnapshot <snapshotDir>]
    
#與快照相關的HDFS操作命令
    [-createSnapshot <snapshotDir> [<snapshotName>]]
    [-deleteSnapshot <snapshotDir> <snapshotName>]
    [-renameSnapshot <snapshotDir> <oldName> <newName>]

下面通過具體的步驟來演示如何使用HDFS的快照。
(1)開啓/input目錄的快照功能。

hdfs dfsadmin -allowSnapshot /input

(2)為/input目錄創建第一個快照。

hdfs dfs -createSnapshot /input bk_input_20250817_01

# 在創建HDFS快照的時候,最好遵循一個良好的命名規則。
# 例如,這裏創建的快照名稱為bk_input_20250817_01,
# 表示在2025年8月17日為input目錄創建的第一個快照。

(3)上傳一個新的文件到/input目錄,如:data1.txt。

hdfs dfs -put data1.txt /input

(4)為/input目錄創建第二個快照。

hdfs dfs -createSnapshot /input bk_input_20250817_02

(5)對比/input目錄的兩個快照。

hdfs snapshotDiff /input bk_input_20250817_01 bk_input_20250817_02

# 輸出的信息如下:
Difference between snapshot bk_input_20250817_01 and 
snapshot bk_input_20250817_02 under directory /input:
M    .
+    ./data1.txt

# 通過對比快照可以看出第二個快照比第一個快照多了一個文件data1.txt。

(6)通過HDFS的Web Console也可以查看快照的相關信息,如下圖所示。
image.png

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.