恢复HDFS中删除的文件
来源:互联网 发布:saas软件行业怎么样 编辑:程序博客网 时间:2024/05/22 03:33
刚才不小心操作删除了HDFS中的一个目录文件,百度了一些,发现找回其实挺简单的,笔者提供两种方法:1.通过终端命名;2.使用HDFS的API
相关知识
在HDFS中删除的文件不会马上直接删除掉,而是将其移动到了一个名为Trash的目录下,这种原理相当于电脑总的回收站机制,现在需要做的就是从回收站中将我们删除的文件还原出来。
在hadoop中的trash机制需要在配置文件core-site.xml中配置,具体配置如下,其中中的值表示的是杀出文件多久后,HDFS会永久清楚该文件,相当于此时你杀出了a.txt,那么在10080这个时间后,文件将会被永久的删除。不设置的话,默认6小时(这个需要勘误,因为我放了一晚上,第二天早上起来回复还在。。。)。
<property> <name>fs.trash.interval</name> <value>10080</value> </property>
在终端使用命令找回HDFS中(误)删除文件
通过终端找回这种方法很简单,就是移动文件(夹)罢了,命令和HDFS的操作差不多,现在比如我删除的文件名字叫/air/sampledata,那么我找回来的命令是:
hadoop fs -mv /user/root/.Trash/Current/air/sampledata /air/sampledata
需要注意的是/user/root 这里的root是我hadoop的用户,相应的更改。第一行和第二行有一个空格(熟悉mv 命令的,不解释。)
使用Java API回收HDFS(误)删除文件
使用Java API这种方法,其实也即是操作HDFS,在HDFS间移动文件夹罢了,代码如下:
/** * 根据新旧路径进行更名 * @param oldPathName 原始文件路径 * @param newPathName 现在文件路径 * @return 成功返回true, 失败返回false * @throws IOException */ public boolean rename(String oldPathName, String newPathName) throws IOException { if (!exits(oldPathName)){ System.out.println("file is not exits."); return false; } fs.rename(new Path(oldPathName), new Path(newPathName)); return true; }
关于HDFS 的Java API,具体的可以参考我的另一篇博客:HDFS java API
传入参数的时候,oldpath 填入”/user/root/.Trash/Current/air/sampledata”,新的path传需要恢复到的HDFS原始目录。
0 0
- 恢复HDFS中删除的文件
- 【HDFS】hdfs如何打开回收站机制trash,恢复删除的文件
- spark 中删除HDFS文件
- eclipse中恢复删除的文件
- eclipse 中删除文件的恢复
- 恢复VSS中误删除的文件
- eclipse中恢复删除的文件
- 恢复VSS中误删除的文件
- eclipse中删除的文件进行恢复
- 恢复删除的文件
- 恢复从回收站中被删除的文件的方法
- 恢复从回收站中被删除的文件的方法
- HDFS原理-架构、副本机制、HDFS负载均衡、机架感知、健壮性、文件删除恢复机制
- 恢复cvs仓库中误删除的文件
- eclipse 中如何恢复已删除的文件
- ext4分区中恢复被删除的文件
- 怎样恢复硬盘中已删除的文件
- 恢复NTFS分区中被ubuntu误删除的文件
- work bench 建表时PK/NN/ UQ等的含义
- bash扩展
- Note7燃损原因真相大白三星加强安全检查保障未来产品安全
- java学习资料免费下载(持续更新ing)
- CSS3 循环跳跃起伏的竖线(类似于语音助手动画)
- 恢复HDFS中删除的文件
- linux_C_file
- 9.3.5
- UVa 1584 Circular Sequence 【数组和字符串】
- TableLayout
- 简单的PHP注册页面
- 很有用的 GCC 命令行选项
- Linux下载命令工具四强!
- 【Android】六大布局——LinearLayout、RelativeLayout、TableLayout、AbsoluteLayout、FrameLayout、GridLayout