在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 /user2,测试删除文件
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文件删除[/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/天,具体规则查看活动详情