Unable to instantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient错误解析

在运行hive的时候出现了这个问题。
FAILED: SemanticException

org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

这种问题原因就是hive找不到配置文件设置的mysql,修改hive-site.xml保证里面的mysql链接是可以链接的。
但是在修改配置文件的时候,我发现使用127.0.0.1回环地址的时候是成功不会报错的,使用内网地址192.168.x.x的时候就会报错。
这里一开始我以为是远程登录的原因,先使用windows的navicat连接一下,果然链接不上。果断给mysql一个允许远程访问的权限。

mysql -uroot -proot
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

flush privileges;

然后再使用navicat访问,成功了。

在这里插入图片描述

可以看到这里的hive初始化元数据的表结构已经有了。

兴高采烈的把配置文件中的127.0.0.1改成192.168.x.x,结果还是报错。给了远程访问权限为什么还报错?再一次怀疑人生,有可能是mysql的驱动jar包版本不对,一看我的mysql他更新成了5.6.49,而我的jar包是5.1.40的。仔细一想,127.0.0.1可以成功运行hive说明jar包没问题。Google一下,这两个版本jar包确实能兼容。

既然windows的navicat能连上,那就看看user的表内容吧。

在这里插入图片描述

原来是配置密码时出大问题,hadoop01的host链接root用户是没有密码的,咱也不知道咋回事,反正设置个密码就可以了。

set password for root@hadoop01 = password('root');

先使用mysql远程登录一下。

在这里插入图片描述

成功,再使用hive试试。

在这里插入图片描述

可算是解决了。

posted @ 2020-08-28 10:10  鹤望兰号  阅读(1323)  评论(0)    收藏  举报