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

目录

前言:

错误背景:

解决方案:


前言:

今天被自己的迷之自信啪啪打脸!!!!不要小看任何一个细节!!!

在清除缓存文件的时候不小心把根目录下的tmp目录删除了,然后再使用Hive的时候连查询所有的库都会报错。 特此记录一下自己的打脸过程。

错误背景:

今天在清除Linux缓存的时候使用Root用户不小心把tmp目录删了,没事不慌,一个缓存目录而已无所谓,大不了创新创建一个嘛。

然而事实总是那么无情的打脸,啪!啪!啪!!!特别的清脆悦耳!!!!

重新创建了一个tmp目录后  “  mkdir /tmp ”,去启动Hive,与往常一样,感觉没啥不妥。。

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

打脸时刻来了。。。。。。。。

然后执行了一下查询所有的库的命令  “  show databases;  ”  ,自信的以为会呈现结果,但现实啪啪打脸!!!出错了。。。。

不慌。。。先重启一下(郑重说明重启真的能解决大概80%~90%的问题,除非你配置错了。。

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

然而,事实证明我在那个概率之外了,不能慌不能慌,要淡定。。。。肯定是刚才删除tmp导致的,知道大概原因了,具体什么情况还不清楚,赶紧去百度一下找到了一个答案情况有点类似,需要单独开启metastore服务,去操作一波。

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

在Hive的bin目录下执行: ./hive --service metastore &

 emmm  这是什么鬼。。。。。换了个错误。。。Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

 往下翻了翻错误信息,找到了个特别明显的错误,证实了我刚才的猜测就是因为删除了tmp导致的。

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

 突然有点自我怀疑,这不是有权限嘛,为什么还不能写入。。。

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

 去查看了一下另外一台节点的tmp权限发现是  drwxrwxrwx 

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

 Wath??????就这么简单????欲哭无泪,为什么不早一点对比一下权限。。。。。。。

确实是权限的问题,修改权限后已解决。

解决方案:

  1. 重新创建一个tmp目录 “ mkdir /tmp “
  2. 给tmp目录更改权限为 777 ” chmod 777 /tmp “
  3. 重启机器

完美结局,遇事一定不要慌,事实证明你能遇到的,前辈基本已解决!!!