1)在core-site.xml文件中添加这个配置

在每个节点(不仅仅是主节点)上添加配置 core-site.xml,增加如下内容
<property>
<name>fs.trash.interval</name>
<value></value>
</property>

1440表示在文件放入回收站1440分钟之后才会真得彻底的被删除

2)使用命令行删除文件:

//查看HDFS下的根目录
root@Ubuntu-1:/usr/local/hadoop-2.6.0/bin# hadoop fs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2017-05-19 11:02 /test
//删除文件
root@Ubuntu-1:/usr/local/hadoop-2.6.0/bin# hadoop fs -rm -r /test
17/05/22 15:39:00 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes, Emptier interval = 0 minutes.
Moved: 'hdfs://Ubuntu-1:9000/test' to trash at: hdfs://Ubuntu-1:9000/user/root/.Trash/Current
//查看回收站的文件:

root@Ubuntu-1:/usr/local/hadoop-2.6.0# bin/hdfs dfs -ls hdfs://Ubuntu-1:9000/user/root/.Trash/Current
Found 1 items
drwxr-xr-x - root supergroup 0 2017-05-19 11:02 hdfs://Ubuntu-1:9000/user/root/.Trash/Current/test

//撤回回收站的文件
root@Ubuntu-1:/usr/local/hadoop-2.6.0# bin/hadoop fs -mv /user/root/.Trash/Current /user/root/test
//文件已撤回
root@Ubuntu-1:/usr/local/hadoop-2.6.0# bin/hadoop fs -ls
Found 2 items
drwx------ - root supergroup 0 2017-05-22 16:12 .Trash
drwx------ - root supergroup 0 2017-05-22 15:39 test

3)使用java代码操作HDFS的回收站

import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.Trash; public class RMFile {
private final static Log log = LogFactory.getLog(RMFile.class);
private final static Configuration conf = new Configuration(); /**
* Delete a file/directory on hdfs
*
* @param path
* @param recursive
* @return
* @throws IOException
*/
public static boolean rm(FileSystem fs, Path path, boolean recursive)
throws IOException {
log.info("rm: " + path + " recursive: " + recursive);
boolean ret = fs.delete(path, recursive);
if (ret)
log.info("rm: " + path);
return ret; } /**
* Delete a file/directory on hdfs,and move a file/directory to Trash
* @param fs
* @param path
* @param recursive
* @param skipTrash
* @return
* @throws IOException
*/
public static boolean rm(FileSystem fs, Path path, boolean recursive,
boolean skipTrash) throws IOException {
log.info("rm: " + path + " recursive: " + recursive+" skipTrash:"+skipTrash);
if (!skipTrash) {
Trash trashTmp = new Trash(fs, conf);
if (trashTmp.moveToTrash(path)) {
log.info("Moved to trash: " + path);
return true;
}
}
boolean ret = fs.delete(path, recursive);
if (ret)
log.info("rm: " + path);
return ret; } public static void main(String[] args) throws IOException {
conf.set("fs.default.name", "hdfs://data2.kt:8020/");
FileSystem fs = FileSystem.get(conf);
RMFile.rm(fs,new Path("hdfs://data2.kt:8020/test/testrm"),true,false);
} }

HDFS 的Trash回收站的更多相关文章

  1. HDFS的Trash回收站功能

    文件的删除和恢复 和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期, ...

  2. Hadoop Trash回收站使用指南

    转载:https://blog.csdn.net/sunnyyoona/article/details/78869778 我们在删除一个文件时,遇到如下问题,提示我们不能删除文件放回回收站: sudo ...

  3. CM记录-HDFS清理垃圾回收站

    HDFS数据块所在存储的目录满了的解决方法 1.增加磁盘空间 2.删除回收站 hadoop dfs -du -h 查看各个HDFS空间占用情况 hadoop dfs  -expunge  清空回收站 ...

  4. 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)

    一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...

  5. Hadoop回收站及fs.trash参数详解

    前言: Linux系统里,个人觉得最大的不方便之一就是没有回收站的概念.rm -rf很容易造成极大的损失.而在Hadoop或者说HDFS里面,有trash(回收站)的概念,可以使得数据被误删以后,还可 ...

  6. Hadoop学习(2)-- HDFS

    随着信息技术的高度发展,数据量越来越多,当一个操作系统管辖范围存储不下时,只能将数据分配到更多的磁盘中存储,但是数据分散在多台磁盘上非常不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,因此诞 ...

  7. hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化

    Hadoop 空间不足,hive首先就会没法跑了,进度始终是0%. 将HDFS备份数降低 将默认的备份数3设置为2. 步骤:CDH–>HDFS–>配置–>搜索dfs.replicat ...

  8. 如何有效恢复误删的HDFS文件

    HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作.这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要 ...

  9. [DB] HDFS

    体系架构 NameNode HDFS主节点.管理员 接收客户端(命令行.Java程序)的请求:创建目录.上传.下载.删除数据 管理和维护HDFS的日志和元信息 日志文件(edits文件) 二进制文件, ...

随机推荐

  1. P2966 [USACO09DEC]牛收费路径Cow Toll Paths

    P2966 [USACO09DEC]牛收费路径Cow Toll Paths 题目描述 Like everyone else, FJ is always thinking up ways to incr ...

  2. Intellij Idea 2016服务破解方法

    技术交流群:233513714 第一种破解方法 我使用的是官网下载的idea Ultimate版,也就是任何功能不受限制的版本,但是这个版本安装过后只能免费使用一个月. 当你的idea出现这种情况 也 ...

  3. 关于springboot 连接mysql 数据库报错问题

    springboot连接MySQL运行报错: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more ...

  4. APPium-python实例(记录)

    https://github.com/appium/sample-code/tree/master/sample-code/examples/python

  5. 通过调用API在JavaWeb项目中实现证件识别

    本文详细介绍自己如何在JavaWeb项目中通过调用API实现证件识别. 一,Face++使用简介 二,两种方式(图片URL与本地上传)实现证件识别 一,Face++使用简介 Face++旷视人工智能开 ...

  6. Django2.1.3框架中(fields.E300)和(fields.E307)报错处理

    使用Django框架创建了Web项目,修改了模型models.py之后,执行数据库迁移操作,出现如下报错: models.py内容如下: from django.db import models fr ...

  7. [spring+tomcat]启动时报错:NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I

    一般来讲问题的原因为tomcat版本较低, 建议升级到tomcat7x 以上版本

  8. 配置Android应用开发环境

    详解JRE.JDK.SDK.ADT请点击辨析ADK&JVM&JRE&JDK&ADT 一.安装JDK 开发 Android应用程序的时候,仅有Java运行环境(Java ...

  9. Z.XML-Cocos2d-x开发笔记

    大家都在热火朝天的使用Cocos2d-x引擎做游戏开发,那么大家不妨把过程中解决的关键问题记录在这里,做一个分享! 1.在Android平台下打开网页 1.1修改项目工程源文件 在你的项目工程源文件中 ...

  10. CE-HTML简介

    1.典型的CE-HTML代码如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html ...