日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop2.x HDFS快照介绍

發布時間:2023/11/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop2.x HDFS快照介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:由于近期正好在研究hadoop的快照機制。看官網上的文檔講的非常仔細。就順手翻譯了。也沒有去深究一些名詞的標準譯法,所以可能有些翻譯和使用方法不是非常正確,莫要介意~~

原文地址:(Apache hadoop的官方文檔)?https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html


1. 概述

快照snapshots是HDFS文件系統的僅僅讀的基于某時間點的拷貝,能夠針對某個文件夾,或者整個文件系統做快照。

快照比較常見的應用場景是數據備份,以防一些用戶錯誤或災難恢復。

快照的高效性實現:
(1) 快照能夠即時創建。耗時僅為O(1)。

--excluding the inode lookup time


(2) 僅僅有當涉及到快照文件夾的改動被運行時。才會產生額外的內存消耗。

并且內存消耗為O(M)。當中M是被改動的文件或文件夾數。

(3) 創建快照時,block塊并不會被拷貝。

快照文件里僅僅記錄了block列表和文件大小,不會做不論什么數據拷貝。

(4) 快照不會對正常的HDFS操作有不論什么影響:創建快照以后發生的改動操作,被按操作時間的倒序(from newer to older)記錄下來。

所以當前的數據能被直接獲取,而快照點的數據。則通過在當前的數據基礎上減去運行過的操作來獲取。

-- 所以我理解時間越久的快照。要獲取就須要越長的時間。?


1.1 快照文件夾

我們能夠在不論什么被設置為snapshottable的文件夾上運行快照,對一個文件夾最多能夠創建65536個快照。管理員能夠把不論什么文件夾設置為snapshottable,沒有限制。

假設一個文件夾下已經存在快照,那么僅僅有當先刪除全部快照后才干對這個文件夾進行刪除和重命名等操作。

不同意嵌套的snapshottable文件夾。也就是說,假設一個文件夾被設置為snapshottable,那么它的父文件夾和子文件夾都不同意被設置為snapshottable。


1.2 快照路徑

快照被存放在一個被命名為.snapshot的文件夾中。

比方/foo是一個snapshottable文件夾,/foo中有一個文件夾為/foo/bar,對/foo創建一個快照s0。那么?


/foo/.snapshot/s0/bar 就是/foo/bar文件夾相應的快照。能夠通過".snapshot"路徑直接訪問和操作快照數據。比如:
  • 列出一個文件夾的全部快照:
hdfs dfs -ls /foo/.snapshot
  • 列出快照s0中的全部文件:
hdfs dfs -ls /foo/.snapshot/s0
  • 從快照中拷貝文件:

hdfs dfs -cp /foo/.snapshot/s0/bar /tmp


2. 快照操作


2.1 快照管理

僅僅有集群的管理員才有權限進行例如以下操作。

同意快照

把一個文件夾設置為snapshottable,就是設置同意對一個文件夾創建快照。

hdfs dfsadmin -allowSnapshot <path>

相應的API為HdfsAdmin中的void allowSnapshot(Path path)。

禁止快照

把原本snapshottable的文件夾設置為禁止快照,不同意對該文件夾創建快照。在對一個文件夾設置禁止快照之前,要先刪除該文件夾的全部快照。

hdfs dfsadmin -disallowSnapshot <Path>

相應的API為HdfsAdmin中的void disallowSnapshot(Path path)。




2.2 用戶操作


創建快照?

為一個文件夾創建快照,僅僅有文件夾的所屬人權限能為這個文件夾創建快照。

hdfs dfs -createSnapshot <Path> [<snapshotName>]

snapshotName是要創建的快照名,假設未定義。默認取當前時間戳作為快照名。類似”"s20130412-151029.033“。

相應的API為FileSystem中的Path createSnapshot(Path path)和Path createSnapshot(Path path, String snapshotName)。

刪除快照

刪除一個snapshottable文件夾的一個快照。

刪除操作也須要文件夾的所屬人權限。

hdfs dfs -deleteSnapshot <Path> <snapshotName>

相應的API為FileSystem中的void deleteSnapshot(Path path, String snapshotName)。

重命名快照

重命名一個快照。

也須要該文件夾的所屬人權限。

hdfs dfs -renameSnapshot <Path> <oldName> <newName>

相應的API為FileSystem中的void renameSnapshot(Path path, String oldName, String newName)。

列出全部同意快照文件夾

列出全部當前用戶有權限獲取的。同意快照的文件夾。

hdfs lsSnapshottableDir

相應的API為DistributeFileSystem中的snapshottableDirectoryStatus[] getSnapshottableDirectoryListing()。

對照快照

對照兩個快照。

這個操作須要用戶對兩個快照文件夾同一時候具有讀權限。

hdfs snapshotDiff <Path> <fromSnapshot> <toSnapshot>

相應API為DistributeFileSystem中的SnapshotDiffReport getSnapshotDiffReport(Path path, String fromSnapshot, String toSnapshot)。





轉載于:https://www.cnblogs.com/blfbuaa/p/7016603.html

總結

以上是生活随笔為你收集整理的hadoop2.x HDFS快照介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。