我有一个名为default和test user /user/hive/warehouse/
的数据库,我在sqoop中弄乱了--delete-target-dir
,遗憾的是删除了两个数据库,因此表格也消失了。
幸运的是,我支持所有内容,而且这些数据库中没有太多内容。所以我试图再次创建两个数据库,它说具有这些名称的数据库已经存在。所以我试着在蜂巢终端中看到那些数据库和表。我可以在配置单元中使用show databases;
和show tables;
查看数据库中的数据库和所有表,但表是空的。
我还尝试使用desc database default
及其显示的位置,我无法在WEB UI文件系统中看到它们。
有没有办法让他们回来?或者我应该删除数据库并使用表重新创建它们?
我正在使用Hadoop 2.6.0-cdh5.10.0
提前谢谢。
答案 0 :(得分:3)
数据消失了,而不是元数据 数据库和表定义仍存储在Metastore中,指向不存在的位置。
如果启用了回收功能,您的数据可能仍然存在(移动到其他位置而不是立即删除)。
如果是,则会在/user/{The user who owned the data}/.Trash
下
检查fs.trash.interval
和fs.trash.checkpoint.interval
。
<强> fs.trash.interval 强>
删除检查点的分钟数。如果为零, 垃圾桶功能已被禁用。此选项可以同时配置 服务器和客户端。如果垃圾邮件被禁用服务器端那么 检查客户端配置。如果启用了垃圾箱 服务器端然后使用服务器上配置的值和 客户端配置值被忽略。
<强> fs.trash.checkpoint.interval 强>
垃圾检查点之间的分钟数。应该更小或 等于fs.trash.interval。如果为零,则将值设置为值 fs.trash.interval。每次checkpointer运行时,它都会创建一个新的 检查点超出当前状态并删除创建的检查点 fs.trash.interval分钟前。
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml