如何恢复hadoop中被删除的文件

    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/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 -mv /user/hadoop/.Trash/Current/test1 /test

4 彻底删除hdfs文件

    彻底删除hdfs文件即将.Trash中文件彻底删除,这样才能是否被删除文件所占用的hdfs空间,第2步中的删除方式hdfs不会释放空间,只是将需要删除的文件移动到了垃圾箱。.Trash其实只是hdfs中的一个目录,只要删除该文件夹中的文件即可彻底删除该文件,原理相当于删除了回收站中的文件,该文件即被彻底删除。该项一般很少用,一般hdfs空间不够用才会用到。删除.Trash中文件举例如下:

    bin/hadoop fs -rm -r /user/hadoop/.Trash/Current/test1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏博客园

Redis事务

和其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。在Redis中,MULIT,EXEC,DISCARD,WATCH这个四个命令是实现事务的基...

1982
来自专栏hbbliyong

ASP.NET 运行机制详解

1.浏览器和服务器的交互原理 通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问的电...

3857
来自专栏大内老A

如何实现IIS 7.0对非HTTP协议的支持

在《再谈IIS与ASP.NET管道》介绍各种版本的IIS的设计时,我们谈到IIS 7.0因引入WAS提供了对非HTTP协议的支持。这个对于WCF的服务寄宿来说意...

26310
来自专栏王磊的博客

你必须知道的session与cookie

Session本质 提到Session我们能联想到的就是用户登录功能,而本身我们使用Session的基础是通过url进行访问的,也就是使用http协议进行访问的...

3629
来自专栏技术支持log

linux操作系统无损升级文件系统ext3至ext4--数据盘篇

linux操作系统无损升级文件系统ext3至ext4: 这里我们以CentOS7.0操作系统来作为示例升级数据盘文件系统: 附: linux操作系统无损升级...

3651
来自专栏云计算教程系列

Ubuntu如何使用Roundcube安装自己的Webmail客户端

如今,许多人使用基于浏览器的电子邮件客户端(如Gmail)来访问他们的电子邮件。但是,如果您想在查看电子邮件时停止查看广告,或者您已从公共电子邮件服务移至您自己...

2654
来自专栏王磊的博客

你必须知道的session与cookie

1293
来自专栏weixuqin 的专栏

Django 实现第三方账号登录网站

  这里我们使用 django-allauth 模块来实现第三方账号验证登录,官方文档如下:https://django-allauth.readthedocs...

2321
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装Ajenti控制面板和Ajenti V.

Ajenti是一个基于Web的开源控制面板,可用于各种服务器管理任务。它可以安装软件包和运行命令,您可以查看基本的服务器信息,如正在使用的RAM,可用磁盘空间等...

4702
来自专栏云计算教程系列

给你的数据库加一道缓存:Redis入门教程

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。 本教程将会教你如何在Ubuntu 18.04 上安装、配置Red...

2410

扫码关注云+社区

领取腾讯云代金券