HDFS 的Trash回收站
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回收站的更多相关文章
- HDFS的Trash回收站功能
文件的删除和恢复 和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期, ...
- Hadoop Trash回收站使用指南
转载:https://blog.csdn.net/sunnyyoona/article/details/78869778 我们在删除一个文件时,遇到如下问题,提示我们不能删除文件放回回收站: sudo ...
- CM记录-HDFS清理垃圾回收站
HDFS数据块所在存储的目录满了的解决方法 1.增加磁盘空间 2.删除回收站 hadoop dfs -du -h 查看各个HDFS空间占用情况 hadoop dfs -expunge 清空回收站 ...
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...
- Hadoop回收站及fs.trash参数详解
前言: Linux系统里,个人觉得最大的不方便之一就是没有回收站的概念.rm -rf很容易造成极大的损失.而在Hadoop或者说HDFS里面,有trash(回收站)的概念,可以使得数据被误删以后,还可 ...
- Hadoop学习(2)-- HDFS
随着信息技术的高度发展,数据量越来越多,当一个操作系统管辖范围存储不下时,只能将数据分配到更多的磁盘中存储,但是数据分散在多台磁盘上非常不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,因此诞 ...
- hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
Hadoop 空间不足,hive首先就会没法跑了,进度始终是0%. 将HDFS备份数降低 将默认的备份数3设置为2. 步骤:CDH–>HDFS–>配置–>搜索dfs.replicat ...
- 如何有效恢复误删的HDFS文件
HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作.这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要 ...
- [DB] HDFS
体系架构 NameNode HDFS主节点.管理员 接收客户端(命令行.Java程序)的请求:创建目录.上传.下载.删除数据 管理和维护HDFS的日志和元信息 日志文件(edits文件) 二进制文件, ...
随机推荐
- 部署:阿里云ECS部署Docker CE
1 部署阿里云ECS,选择CentOS操作系统,并启动实例: 2 部署Docker CE: a.检查centos版本: $ cat /etc/redhat-release CentOS Linux r ...
- Unity3d工具方法小集
1.获取垂直水平方向上的输入: float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = I ...
- 关闭 Identity 插入限制
当为identity列插入时会报错: 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'xx'中的标识列指定显式值. 但在复制表数据时想带主键一起复制时,这时要设置IDEN ...
- 基于阿里云服务器Linux系统部署JavaWeb项目
前段时间刚完成一个JavaWeb项目,想着怎么部署到服务器上,边学边做,花了点时间终于成功部署了,这里总结记录一下过程中所遇到的问题及解决方法.之所以选择阿里云,考虑到它是使用用户最多也是最广泛的云服 ...
- Python 3基础教程18-获取用户键盘输入
有时候,我们需要获取用户的键盘输入的信息,然后得到信息,拿去做一些事情. 请看下面的demo.py # 练习如何通过键盘获取用户输入 x = input('What is your name?') p ...
- 剑指offer-数值的整数次方12
class Solution: def Power(self, base, exponent): # write code here if base==0: return 0 if exponent= ...
- git 创建分支并提交到服务器对应的新分支
1.切换到源分支 git checkout test 2.在源分支的基础上创建新分支 git branch test1 3.提交到远程分支 git pull 会自动提示下面的命令 git pull - ...
- [leetcode-648-Replace Words]
In English, we have a concept called root, which can be followed by some other words to form another ...
- BZOJ 3925 ZJOI2015 地震后的幻想乡 状压dp+期望
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3925 题意概述: 给出一张N点M边的最小生成树,其中每条边的长度为[0,1]的实数,求最小 ...
- Delphi组件开发教程指南目录
用Delphi开发的时间也不短了!刚接触Delphi的时候,就觉得组件这个东西非常方便!根本不必知道组件内部的作为,只要使用就好了!然而用的多了,也不免会对各种delphi组件的内部实现方式产生兴趣! ...