Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
目录
前言:
今天被自己的迷之自信啪啪打脸!!!!不要小看任何一个细节!!!
在清除缓存文件的时候不小心把根目录下的tmp目录删除了,然后再使用Hive的时候连查询所有的库都会报错。 特此记录一下自己的打脸过程。
错误背景:
今天在清除Linux缓存的时候使用Root用户不小心把tmp目录删了,没事不慌,一个缓存目录而已无所谓,大不了创新创建一个嘛。
然而事实总是那么无情的打脸,啪!啪!啪!!!特别的清脆悦耳!!!!
重新创建了一个tmp目录后 “ mkdir /tmp ”,去启动Hive,与往常一样,感觉没啥不妥。。
打脸时刻来了。。。。。。。。
然后执行了一下查询所有的库的命令 “ show databases; ” ,自信的以为会呈现结果,但现实啪啪打脸!!!出错了。。。。
不慌。。。先重启一下(郑重说明重启真的能解决大概80%~90%的问题,除非你配置错了。。)
然而,事实证明我在那个概率之外了,不能慌不能慌,要淡定。。。。肯定是刚才删除tmp导致的,知道大概原因了,具体什么情况还不清楚,赶紧去百度一下找到了一个答案情况有点类似,需要单独开启metastore服务,去操作一波。
在Hive的bin目录下执行: ./hive --service metastore &
emmm 这是什么鬼。。。。。换了个错误。。。
往下翻了翻错误信息,找到了个特别明显的错误,证实了我刚才的猜测就是因为删除了tmp导致的。
突然有点自我怀疑,这不是有权限嘛,为什么还不能写入。。。
去查看了一下另外一台节点的tmp权限发现是 drwxrwxrwx
Wath??????就这么简单????欲哭无泪,为什么不早一点对比一下权限。。。。。。。
确实是权限的问题,修改权限后已解决。
解决方案:
- 重新创建一个tmp目录 “ mkdir /tmp “
- 给tmp目录更改权限为 777 ” chmod 777 /tmp “
- 重启机器