封尘网

让学习成为一种习惯!

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

版本:Hive-2.0.0

Hadoop环境中,某个节点上执行hive命令时报如下错误:

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

原因:

说明:环境由三台服务器组成的,Hive元数据保存在NameNode节点上的Mysql中,直接在NameNode节点上启动Hive没问题,但是在其它的节点上就报错。

在Hive2.0.0以前的版本,需要在一个Hive的主节点上启动两个服务:metastore 、hiveserver2 才可以登陆到Hive的命令行下。

hive --service metastore &
hive --service hiveserver2 &

但是在2.0.0后不用启动这两个服务也可以直接敲hive进入命令模式。

然后上面的报错是在hive-site.xml文件中加入了以下几行配置:

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://192.168.254.18:9083</value>
</property>

但是由于192.168.254.18上并没有启动metastore 服务。

解决方法:

1、如果是hive-2.0.0以前的版本则需要在配置文件hive-site.xml中加入上面的配置,并在主节点上启动上面提到的两个服务:metastore 、hiveserver2

2、如果是Hive-2.0.0的版本,不用在配置文件中加上面的配置,也不用启动上两提到的两个服务,即可登陆。

提醒:本文最后更新于 1093 天前,文中所描述的信息可能已发生改变,请谨慎使用。