我已经在我的 Ubuntu 16.04 笔记本电脑上手动安装了 hadoop 和 hive。Hive 工作正常,我创建了一些测试数据库 (derby)。
在重新启动笔记本电脑时,我发现 hive 正在运行,但运行任何命令,如 show databases,它给出了错误。
我按照 web.xml 给出的解决方案进行了操作。IE:
1) 将 metastore_db 重命名为 metastore_db.tmp。
2) 运行 schematool 生成新的 metastore_db
3) 删除 tmp metastore_db.tmp (运行 hive 时不删除会出错)
现在我可以运行 hive 但在运行 show databases 时我只看到默认数据库。
有什么方法可以将我之前创建的数据库(例如保存在 hdfs 文件系统中的 /user/hive/warehouse/computersalesdb.db)添加到新生成的元存储中?
* 更新 *
经过进一步分析,我发现,在我运行 hive 的地方创建了 metastore_db 文件夹。所以这似乎是问题的原因。解决方案是:
1) 正如@cricket_007 在评论中所建议的那样,在 mysql 或您正在使用的任何其他 rdbms 中有元存储。
2) 总是从同一个文件夹运行 hive
3)设置属性“javax.jdo.option.ConnectionURL”在特定文件夹中创建元存储,该文件夹在hive-site.xml中定义
留下这个评论是为了像我这样的其他人的利益:D