`

hive无法启动的错误metastore.HiveMetaStoreClient

    博客分类:
  • hive
 
阅读更多

重点在后面!
 删除了master的/tmp目录,结果jps和bin/hive就不能用了,从slave上复制了一份过来,可是jps之后什么都没有··
只好重新启动了集群,还是没有,查看了刚复制过来的/tmp,有了本来应该有的.sh文件。/tmp目录下的文件应该是启动时自动创建的,于是我重新启动了master虚拟机,然后jps就有了~好开心 :D

可是bin/hive还不能用···报告缺少目录#sql_1c83_0.MYI这个,创建了之后修改权限,还是不能。这个应该是启动的时候自动创建的。删掉之后果然重启的时候创建了。应该也不是这儿的问题。

可还是会报错Caused by: java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.84.131(之前ip变过):3306/hive?characterEncoding=UTF-8, username = hadoop. Terminating connection pool ,这个应该是存储器的问题,进入mysql执行<!--StartFragment -->

 
grant all on *.* to hadoop@'%' identified by 'hadoop';
grant all on *.* to hadoop@'master' identified by 'hadoop';
grant all on *.* to hadoop@'localhost' identified by 'hadoop';
flush privileges;
尝试登一下mysql,没问题啦~然后再企图登录hive,依旧报错:
Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
后来才知道是因为jar包冲突 罪魁祸首:libthrift-0.8.0.jar
由于hadoop hbase的包是libthrift-0.8.0.jar(在lib目录下)
hive的包是libthrift-0.9.0.jar
可以在~/.bash_profile中改,将它们的环境变量注释掉,本应可以的但也许需要重启的。用$PATH可以看到path没有变。
于是,将hive下的包libthrift-0.9.0.jar复制到hadoop和oozie下的lib下,再把以前的0.8.0删除~~~然后就ok啦~好棒
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:346)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1412)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:62)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)
at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2453)
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2465)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:340)
... 7 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1410)
... 12 more
Caused by: java.lang.NoSuchMethodError: org.apache.thrift.EncodingUtils.setBit(BIZ)B
at org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo.setCreateTimeIsSet(PrivilegeGrantInfo.java:245)
at org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo.<init>(PrivilegeGrantInfo.java:163)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultRoles(HiveMetaStore.java:563)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:398)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaStore.java:356)
at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:54)
at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:59)
at org.apache.hadoop.hive.metastore.HiveMetaStore.newHMSHandler(HiveMetaStore.java:4944)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:171)
  • 大小: 45.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics