HDFS(一) 高级特性

三个高级特性——快照、配额、回收站

一、快照(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(闪回)恢复表。

  

      

  

原文地址:https://www.cnblogs.com/wl413911/p/10419518.html