如果不小心刪除了了hive的元數據文件(/user/hive/warehouse),只要先前core-site.xml文件中設置了fs.trash.interval屬性就可以找回。hdfs會為用戶創建一個回收站的目錄,通過shell刪除的文件會在該回收站中停放一定的時間,最終才被刪除。該回收站目錄是/user/用戶名/.Trash/Current/user/hive/warehouse,如果短時間刪除多個,/user/用戶名/.Trash/Current/user/hive目錄下會有多個warehouse。想恢復只需要把需要的元數據mv回到/user/hive/warehouse目錄下即可(hdfs dfs -mv /user/用戶名/.Trash/Current/user/hive/warehouse /user/hive/warehouse)。
hadoop中trash選項,默認是關閉的,如果要生效需要將trash選項打開,在core-site.xml文件中配置fs.trash.interval即可
<property> <name>fs.trash.interval</name> <value>1020</value> </property> <property> <name>fs.trash.checkpoint.interval</name> <value>1020</value> </property>
fs.trash.interval設置的默認單位是分鍾,等回收周期真正到了以后。hdfs才會將數據真正刪除。fs.trash.checkpoint.interval則是指垃圾回收的檢查間隔,應該是小於或者等於fs.trash.interval