1. 程式人生 > >HDFS(一) 高級特性

HDFS(一) 高級特性

分鐘 創建 ace tor tsp 設定 -a 災難恢復 interval

三個高級特性——快照、配額、回收站

一、快照(snapshot):是一種備份,默認關閉  

  1、應用場景:

    防止用戶錯誤操作

    備份

    試驗/測試

    災難恢復 

  2、命令:

    管理命令:

      -allowsnapshot

      -disallowsnapshot

    操作命令:
      -createshapshot

    舉例:

      打開快照功能(以/folder文件夾為例)

        hdfs dfsadmin -allowsnapshot /folder

      創建快照

        hdfs dfs -createsnapshot /folder folder_20180503_01 第一份快照

        hdfs dfs -createsnapshot /folder foldert_20180503_02 第二份快照

      查看快照

        hdfs -lssnapshottableDir

      對比快照

        hdfs -snapshotdiff /folder folder_20180503_01 folder_20180503_02

      恢復快照

        hdfs dfs -cp /folder/.snapshot/folder_20180503_01/data.txt /folder (補充知識:快照會在元文件夾下,以隱藏目錄的方式存在(如folder/.snapshot/folder_20180503_01))

   

  3、其他:

    快照信息可以在webconsole 上查看

    快照的本質:將目錄拷貝了一份

二、Quota(配額):

  1、名稱配額:限定hdfs目錄下存放文件/目錄的個數

    命令(都是hdfs dfsadmin 命令):

        -setQuota <quota> dirName1 dirName2 dirName3 文件夾實際能夠存放的文件/文件夾數量為quota-1 個

        -clrQuota dirName1 dirName2 dirName3

    舉例(以/myQuota1文件夾為例):

        hdfs dfsadmin -setQuota 3 /myquota1 設置/myquota1文件夾下最大的文件/文件夾數量為3-1=2個

        hdfs dfsadmin -clrQuota /myquota1

  2、空間配額:限定hdfs目錄下,文件的大小

    命令:

        -setSpaceQuota <quota> [-storageType storagetype] dirName1 dirName2 dirName3

        -clrSpaceQuota [-storageType storagetype] dirName1 dirName2 dirName3

    舉例(以/myquota2為例):

        hdfs dfsadmin -setSpaceQuota 2M /myquota2 設置/myquota2文件夾存儲的文件,大小不超過2M

        註意:數據塊上傳時,即使文件本身小於2M,該數據塊實際在hdfs上占用的空間也為128M,上傳會失敗。因此在設定文件夾空間配額時,不要小於128M。

        hdfs dfsadmin -clrSpaceQuota /myquota2

    

三、回收站(默認是關閉的)

  1、配置回收站

    在core-site.xml中配置回收站

    <property>

      <name>dfs.trash.interval</name>

      <value>1440</value> 註:1440 代表一天 (1440分鐘)

    </property>

  2、開啟回收站後,執行hdfs dfs -rm -R /folder 操作前後,控制臺打印日誌的對比

    開啟前:Deleted /folder

    開啟後:Moved "hdfs://192.168.**.**:9000/folder" to trash " hdfs://192.168.**.**:9000/user/root/.Trash/Current"

        相當於做了一次“剪切”操作,所以要找回刪除的文件,直接做一次 hdfs dfs -cp ** 操作即可

    同樣的,oracle數據庫也有回收站,當一個表被刪除後,進入回收站,可以通過flashback(閃回)恢復表。

  

      

  

HDFS(一) 高級特性