测试删除、恢复hadoop数据

在hadoop里面删除和恢复数据,和我们在windows下是 一样的

他也有一个回收站

如果仅仅只是删除文件,文件是可以被恢复的,并且我们不会去操作回收站,除非没有空间了

如果删除回收站里的东西,那您的文件就不可恢复了。


测试删除、恢复hadoop数据


首先您需要在core-site.xml这个文件里配置fs.trash.interval 回收站,以启用回收站

在etc/hadoop/core-site.xml添加如下信息

<property>   
    <name>fs.trash.interval</name>   
    <value>时间分钟,0表示不启用</value>   
</property>
时间为分钟,如1440表示一天


下面我们看看一个示例

1,上传一个文件


likilone@MyUbuntu:~/下载$ hdfs dfs -put BigLog.jar /
然后我们可以发现,文件已经被上传成功



likilone@MyUbuntu:~/下载$ hdfs dfs -ls /
Found 7 items
-rw-r--r--   2 likilone supergroup       3660 2016-06-29 07:31 /BigLog.jar
drwxr-xr-x   - likilone supergroup          0 2016-06-20 06:59 /MyObject
drwxr-xr-x   - likilone supergroup          0 2016-06-25 07:16 /hadoop
drwxr-xr-x   - likilone supergroup          0 2016-06-20 06:53 /input
drwxr-xr-x   - likilone supergroup          0 2016-06-20 07:18 /output
drwx------   - likilone supergroup          0 2016-06-19 16:58 /tmp
drwxr-xr-x   - likilone supergroup          0 2016-06-19 16:58 /user
2,测试删除文件



likilone@MyUbuntu:~/下载$ hdfs dfs -rm /BigLog.jar
16/06/29 07:32:13 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 86400 minutes, Emptier interval = 0 minutes.
Moved: 'hdfs://MyCentOS:9000/BigLog.jar' to trash at: hdfs://MyCentOS:9000/user/likilone/.Trash/Current
删除成功后,他给出了一个提示


Moved: 'hdfs://MyCentOS:9000/BigLog.jar' to trash at: hdfs://MyCentOS:9000/user/likilone/.Trash/Current

就是说文件BigLog.rar已经被移动到了回收站.Trash

3,查看是否被删除成功
likilone@MyUbuntu:~/下载$ hdfs dfs -ls /

likilone@MyUbuntu:~/下载$ hdfs dfs -ls /
Found 6 items
drwxr-xr-x   - likilone supergroup          0 2016-06-20 06:59 /MyObject
drwxr-xr-x   - likilone supergroup          0 2016-06-25 07:16 /hadoop
drwxr-xr-x   - likilone supergroup          0 2016-06-20 06:53 /input
drwxr-xr-x   - likilone supergroup          0 2016-06-20 07:18 /output
drwx------   - likilone supergroup          0 2016-06-19 16:58 /tmp
drwxr-xr-x   - likilone supergroup          0 2016-06-19 16:58 /user
可以看见,文件BigLog.jar已经被删除成功了


这里我们可以回到hadoop的目录下去查看,发现这两个文件还是在目录里,在所有的节点都存在

这个目录很深,大家可自行查看

[caption id="attachment_1310" align="alignnone" width="620"]hadoop文件删除 hadoop文件删除[/caption]


4、接下来我们试着恢复一下,然后查看是否恢复成功
likilone@MyUbuntu:~/下载$ hdfs dfs -mv /user/likilone/.Trash/Current/BigLog.jar /

likilone@MyUbuntu:~/下载$ hdfs dfs -mv /user/likilone/.Trash/Current/BigLog.jar /
likilone@MyUbuntu:~/下载$ hdfs dfs -ls /
Found 7 items
-rw-r--r--   2 likilone supergroup       3660 2016-06-29 07:31 /BigLog.jar
drwxr-xr-x   - likilone supergroup          0 2016-06-20 06:59 /MyObject
drwxr-xr-x   - likilone supergroup          0 2016-06-25 07:16 /hadoop
drwxr-xr-x   - likilone supergroup          0 2016-06-20 06:53 /input
drwxr-xr-x   - likilone supergroup          0 2016-06-20 07:18 /output
drwx------   - likilone supergroup          0 2016-06-19 16:58 /tmp
drwxr-xr-x   - likilone supergroup          0 2016-06-19 16:58 /user
我们可以清楚的看见,成功的执行了命令,然后恢复成功


5、接下来测试删除文件和删除回收站的文件

likilone@MyUbuntu:~/下载$ hdfs dfs -rm /BigLog.jar
16/06/29 07:52:41 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 86400 minutes, Emptier interval = 0 minutes.
Moved: 'hdfs://MyCentOS:9000/BigLog.jar' to trash at: hdfs://MyCentOS:9000/user/likilone/.Trash/Current
likilone@MyUbuntu:~/下载$ hdfs dfs -rm /user/likilone/.Trash/Current/BigLog.jar
16/06/29 07:53:41 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 86400 minutes, Emptier interval = 0 minutes.
Deleted /user/likilone/.Trash/Current/BigLog.jar
可以看见,我们东归rm命令先删除了文件,在通过rm命令把回收站里的文件也删除了


6、查看

最后我们通过命令hdfs dfs -ls /查看

以及进入到hadoop的datanode里面去查看,发现文件的确被删除了

如果这时,您试着恢复,将会错误


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img