Update2
我放弃了有关降级配置单元metastore的想法。默认情况下,schemetool不支持该功能,如果您查看其帮助信息。将此线程留在此处以提醒以后的访问者:
mysql metastore
初始化hive
的架构时,可能是因为当前配置单元二进制文件的版本与您初次初始化metastore
的二进制文件不同。 更新1
我发现问题可能与Hive
的版本不一致有关。
我首先安装了Hive
3.x,还初始化了metastore。
当前,由于某些不可避免的原因,我需要将Hive从3.x降级到2.x。
因此问题就变成了如何降级Hive安装(主要是关于如何将Hive metastore
从3.x重新初始化为2.x)
原始
我正在将Mysql
用作Hive
元存储。
我尝试通过schematool -dbType mysql -initSchema --verbose
重新初始化元存储,但是,我遇到以下错误:
Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
Closing: 0: jdbc:mysql://10.1.2.209:3306/metastore?createDatabaseIfNotExist=true
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:590)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:563)
SO上的现有解决方案是关于derby
数据库,关于如何使用mysql
数据库解决此问题的想法?
非常感谢您的帮助。
答案 0 :(得分:0)
我遇到了同样的问题,正如Bruno所说的那样,我删除了与Hive有关的所有内容,再次可以。
这是我要做的是登录mysql,并删除数据库:
drop database hive;
您不需要删除数据库用户。
然后重新创建数据库。