我有一个名为default和test user的数据库 /user/hive/warehouse/
我在和 --delete-target-dir
不幸的是,在sqoop中删除了两个数据库,所以表也不见了。
幸运的是,我已经备份了所有的东西,而且那些数据库中没有太多东西。所以我试着再次创建这两个数据库,它说那些名字的数据库已经存在了。所以我试着在Hive终端中查看那些数据库和表。我可以使用 show databases;
以及 show tables;
但table是空的。
我也试着用 desc database default
以及它显示的位置,我无法在web ui文件系统上看到它们。
有办法让他们回来吗?或者我应该删除数据库并用表重新创建它们?
我正在使用 Hadoop 2.6.0-cdh5.10.0
先谢谢你。
1条答案
按热度按时间aamkag611#
数据不见了,元数据也不见了。
数据库和表定义仍然存储在metastore中,指向不存在的位置。
如果垃圾箱功能打开,您的数据可能仍然存在(移动到另一个位置,而不是立即删除)。
如果是的话,那就在
/user/{The user who owned the data}/.Trash
.检查
fs.trash.interval
以及fs.trash.checkpoint.interval
.fs.垃圾箱间隔
删除检查点后的分钟数。如果为零,则垃圾箱功能被禁用。此选项可以在服务器和客户端上配置。如果垃圾箱在服务器端被禁用,则检查客户端配置。如果在服务器端启用垃圾箱,则使用服务器上配置的值,而忽略客户端配置值。
fs.trash.checkpoint.interval文件
垃圾检查站之间的分钟数。应小于或等于fs.trash.interval。如果为零,则该值设置为fs.trash.interval的值。每次运行检查点程序时,它都会在当前检查点之外创建一个新的检查点,并删除超过fs.trash.interval分钟前创建的检查点。
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml