刚设置好hive的配置文件, 元数据存储使用的是mysql, 然后进行hive进入命令行模式, 使用show databases发现报异常
看报错信息是元数据异常. 那么一定是与mysql的连接,或者元数据的存储出现了问题.
上网百度找了一些答案,说是需要进行元数据格式化, 于是尝试了下, 发现还是报错.
# 格式化元数据
schematool -dbType mysql -initSchema
在这呢我收集到了2种解决方案:
1. 在hive的配置文件hive-site.xml添加如下配置:
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
然后将数据库中的创建的元数据表删除,然后重新创建, 然后再进行格式化. 如果成功了恭喜你
格式化成功的
2. 修改mysql连接用户, 在hive使用另一个mysql用户不使用root (我自己的是这个问题)
在mysql中
修改权限
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION;
刷新
flush privileges;
然后再将hive/conf中 hive-site.xml中的连接用户修改为hive, 密码修改为hive即可. 然后再进行初始化
schematool -dbType mysql -initSchema
做到这一般都可以成功. 然后再进入hive 就可以正常使用了