hadoop hdfs中删除文件恢复

hadoop的hdfs中删除的文件恢复原理和回收站原理是一样的,就是在删除hdfs文件时,被删除的文件存在了hdfs的.Trash文件夹中,恢复时只需要将该文件夹中文件拿出即可。具体操作如下:

1 设置trash

如果需要恢复hdfs中文件,就需要设置trash,hadoop的trash默认是关闭的。具体设置如下:

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

该配置项在core-site.xml中,fs.trash.interval代表删除的文件保留的时间,时间单位为分钟,默认为0代表不保存删除的文件。我们只需要设置该时间即可打开trash。

2 设置后删除文件会显示删除的文件被移动到了hdfs://192.168.1.100:9000/user/hadoop/.Trash/Current中,举例如下:

14/10/20 16:48:24 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 10080 minutes, Emptier interval = 0 minutes.
Moved: ‘hdfs://10.207.0.217:9000/data/test_out/mr-20141017111556‘ to trash at: hdfs://192.168.1.100:9000/user/hadoop/.Trash/Current

3 恢复时只需要将.Trash中文件移动到我们设置的目录即可,例如将.Trash中test1文件移动到/test目录,

bin/hadoop fs -du -h /user/hadoop/.Trash/Current/test1 /test

4 彻底删除文件

该项即为将.Trash中文件彻底删除。.Trash其实只是hdfs中的一个目录,只要删除该文件夹中的文件即彻底删除了被删除的文件,原理相当于删除了回收站中的文件,该文件即被彻底删除。该项一般很少用,除非hdfs空间不够用。

时间: 2024-10-12 22:32:28

hadoop hdfs中删除文件恢复的相关文章

Linux中删除文件,磁盘空间未释放问题追踪

在客户使用我们产品后,发现一个问题:在删除了文件后,磁盘空间却没有释放.是有进程在打开这个文件,还是其他情况?我们一起来看看一下两个场景 一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的

直接使用FileSystem以标准输出格式显示hadoop文件系统中的文件

package com.yoyosys.cebbank.bdap.service.mr; import java.io.IOException; import java.io.InputStream; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IO

手机sd卡删除文件恢复呢

手机sd卡删除文件恢复呢?我们现在有些时候会使用我们的SD卡去存储我们的数据,但是有些时候呢,我们会因为自己的不小心或者是其他方面的原因,将我们的手机SD卡上的文件给误删了. 那么我们若是误删了我们的SD卡文件,我们是不是可以恢复呢?我们又该怎么去进行我们SD卡的恢复呢?相信很多的人都会有这个疑问,下面我们就一起看看具体的SD卡删除文件如何恢复吧. 第一步:在过程刚刚开始的时候,打开我们丢失数据的电脑,然后在电脑浏览器上下载并安装"互盾数据恢复软件",之后对软件进行安装等待安装结束:

eclipse 向HDFS中写入文件报错 permission denied

环境:win7  eclipse    hadoop 1.1.2 当执行创建文件的的时候, 即: fileSystem.mkdirs(Path);//想hadoop上创建一个文件报错 报错: org.apache.hadoop.security.AccessControlException:Permission denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x 原因: 1. 当前用户

linux extundelete 删除文件恢复

extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件. [问题案例]最近看到群里提到如何恢复LINUX下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,但是恢复ext4一直没有概念,而且目前线上的系统分区格式都是ext4,SO网上找到了一款叫extundelete的文件恢复工具,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,对我

Hadoop hdfs上传文件 权限问题

问题描述: hadoop在虚拟机中的linux系统下 在本地通过eclipse编写代码把本地文件上传至hadoop平台的指定目录 代码如下: @Test public void upload() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://lujie01:9000/"); FileSystem fs = FileSyst

rm -rf 删除文件恢复

一.extundelete安装 1.安装依赖包 # yum install e2fsprogs* -y 2.下载并安装extundelete # wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 # tar -jxvf extundelete-0.2.4.tar.bz2 # cd extundelete-0.2.4 # ./configure --

java/android开发中删除文件

在java或者android开发中经常遇到要删除一个文件夹及其子文件的需求,本文主要总结了自己开发中遇到并且使用过的两种删除文件和文件夹的方法. 1.如果仅仅是删除一个文件可以使用以下代码,传入文件路径即可 public static void deleteFile(String path) { File file = new File(path); file.delete(); } 2.如果需要删除一个非空文件夹,则需要遍历整个文件夹下子文件,进行递归删除 public static void

git 从版本控制中删除文件及.gitignore的用法

刚开始用git的时候,喜欢用git add *把所有文件都加入到版本管理中. 后来发现,因为我在virtualenv下面创建的内容,在跑测试的时候,会产生__pycache__文件夹,里面的很多东西都不需要纳入版本管理中,于是就想把它删掉. 一般来说,用的是git rm命令,比如 git rm -r __pycache__ 但是它会直接删掉硬盘上的文件,我们可以加上-n参数查看他会删掉哪些文件. (.venv) [[email protected] SocialMatrix]# git rm -