今天在用linux命令查询hdfs数据时。因为之前刚把测试环境删除,所以执行了
hadoop fs -rm -r /warehouse/hdw/ods/ods_tbl_et_live_message_log_test
接下来准备去查询正式表的时候,把test去掉之后就直接执行了。整个目录都被我干掉了。。。。
心慌一下忽然想起来可以恢复,感觉去操作了一波,但是要引以为戒。。接下来上正事:
HDFS 为我们提供了垃圾箱的功能,也就是当我们执行 hadoop fs -rm -r xxx
命令之后,文件并不是马上被删除,而是会被移动到执行这个操作用户的 .Trash
目录下,等到一定的时间后才会执行真正的删除操作。
首先进入对应用户的目录下。我使用的hdfs用户删除的:
hadoop fs -ls /user/hdfs/.Trash/Current/warehouse/hdw/ods/ods_tbl_et_live_message_log
上图是我之前删除的记录,现在还在。刚刚删除的已经恢复了。
接下来找到自己误删的数据,可以mv到原来的目录下就可以了。如果原来 的目录不在了可以先创建,记得注意用户权限
hadoop fs -mv /user/hdfs/.Trash/Current/warehouse/hdw/ods/ods_tbl_et_live_message_log/pt=20201026 /ware