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