栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop学习5-3:HDFS回收站

Hadoop学习5-3:HDFS回收站

    • 1 回收站配置
    • 2 启回收站功能参数说明
    • 3 删除内容查看
    • 4 回收站内容恢复
    • 5 删除数据不经过回收站
    • 6 回收站清空
    • 7 客户端操作

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用

1 回收站配置

在core-site.xml文件中添加如下内容,数字单位为分钟


  fs.trash.interval
  1



  fs.trash.checkpoint.interval
  1


#文件分发
xsync core-site.xml
2 启回收站功能参数说明
  1. 默认值fs.trash.interval=0,0表示禁用回收站;其他值表示设置文件的存活时间
  2. 默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间,当回收站中的文件等超过存活时间就进行真正删除。如果该值为0,则该值设置和fs.trash.interval的参数值相等。
  3. 要求fs.trash.checkpoint.interval <= fs.trash.interval
3 删除内容查看

通过hadoop命令:hadoop fs rm -r -f删除一个文件后,可以看到如下信息

如上提示了删除的内容已经转移到/user/cxj/.Trash/Current下表示配置回收站成功,,完整就是/user/删除文件时的用户名/.Trash/Current

4 回收站内容恢复

回收站其实就是一个目录,所以只需要使用 hadoop命令进行拷贝或者移动就可以进行恢复了:Hadoop学习7:命令行操作

5 删除数据不经过回收站

配置了回收站以后,删除数据操作,相应的数据文件会放到回收站中,通过-skipTrash去跳过回收站

hadoop fs -rm -r -f -skipTrash /input

6 回收站清空
hadoop fs -expunge
7 客户端操作

Java删除HDFS文件的API:delete,是跳过回收站进行删除,也就是直接删除就没了

uri = URI.create("hdfs://192.168.153.131:8020");
conf = new Configuration();
user = "cxj";
fs = FileSystem.get(uri, conf, user);

fs.delete(new Path("/input"), true);

如果想将文件添加到回收站中,那么需要使用到Trash对象。使用如下代码

 Trash ts = new Trash(fs, conf);
 String s = conf.get("fs.trash.interval");
 ts.moveToTrash(new Path("/a.txt"));

并在resources文件添加core-site.xml文件并添加如下配置




    
        fs.trash.interval
        1
    

    
        fs.trash.checkpoint.interval
        1
    

或者直接使用Confguration对象进行配置

conf.set("fs.trash.interval", 1)
conf.set("fs.trash.checkpoint.interval", 1)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653845.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号