ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hadoop学习5-3:HDFS回收站

2021-12-10 23:01:34  阅读:207  来源: 互联网

标签:HDFS fs 删除 interval Hadoop conf trash 回收站


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

1 回收站配置

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

<property>
  <name>fs.trash.interval</name>
  <value>1</value>
</property>

<property>
  <name>fs.trash.checkpoint.interval</name>
  <value>1</value>
</property>

#文件分发
xsync core-site.xml

2 启回收站功能参数说明

  1. 默认值fs.trash.interval=00表示禁用回收站;其他值表示设置文件的存活时间
  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文件的APIdelete,是跳过回收站进行删除,也就是直接删除就没了

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文件并添加如下配置

<?xml version="1.0" encoding="UTF-8"?>
<?xm1-stylesheet type="text/xsl" href="configuration.xs1"?>
<configuration>
    <property>
        <name>fs.trash.interval</name>
        <value>1</value>
    </property>

    <property>
        <name>fs.trash.checkpoint.interval</name>
        <value>1</value>
    </property>
</configuration>

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

conf.set("fs.trash.interval", 1)
conf.set("fs.trash.checkpoint.interval", 1)

标签:HDFS,fs,删除,interval,Hadoop,conf,trash,回收站
来源: https://blog.csdn.net/qq_43967413/article/details/121866217

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有