今天小编在启动hive时,启动不起来了。报错信息如下:
Caused by: javax.jdo.JDODataStoreException: Exception thrown obtaining schema column information from datastore
NestedThrowables:
java.sql.SQLException: View 'hive.v_activity_info' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
怎么也想不明白一直可以正常启动的hive怎么突然启动不起来,后来突然想起来,前段时间,在做测试时,有删除过MySQL中hive数据库下面的一些表,应该是误删了什么表。
解决方法如下:
登录MySQL,删除hive数据库。
mysql -u [mysql用户名] -p
回车后输入密码,进入mysql。
删除hive数据库 drop database hive;
在$HIVE_HOME/bin目录下,执行hive初始化mysql命令:
schematool -initSchema -dbType mysql
这种解决方法操作过以后,之前的hive数据可能没了,文件还在的,可以把表结构捡回来可能就有了。这个小编也还没来得及测试,有需要的小伙伴可以自己测试一下。
PS:
小编是在自己搭建的测试集群中发生的这种元数据异常的问题,虽然这一般都可以通过删除mysql里面的数据库,然后再通过初始化来解决。
但是这样的话,也会导致hive数据丢失,如果是在生产环境的话,是不允许这么做的,一般来说,是手动去把那个元数据补回来。




