Ubuntu安装Hive时报错Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

安装Hive执行./hive命令时报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

我一开始使用的环境是:
ubuntu-16.04 + hive-1.2.2 + hadoop-2.7.1 + mysql-5.7.30

在进入到hive安装目录准备执行./hive命令的时候,就出现了如下报错:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
  ...... 中间省略一大堆报错代码
Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
        at org.datanucleus.store.rdbms.connectionpool.AbstractConnectionPoolFactory.loadDriver(AbstractConnectionPoolFactory.java:58)
        at org.datanucleus.store.rdbms.connectionpool.BoneCPConnectionPoolFactory.createConnectionPool(BoneCPConnectionPoolFactory.java:54)
        at org.datanucleus.store.rdbms.ConnectionFactoryImpl.generateDataSources(ConnectionFactoryImpl.java:238)
        ... 68 more

网上找了很多方法进行尝试,包括:

1.执行 schematool -dbType mysql -initSchema,但这好像一般是用来解决hive和mysql版本、配置不一致问题或者hive元数据库未初始化的问题的,反正我试了以后……又报错了。这次是个Failed to get schema version.***SchemaTool failed错误,然后我又去查这个错,改配置文件什么的,然而试了半天还是解决不了,甚至我用root账户去登也不行,然后就放弃了。
2. 有说是$HIVE_HOME/lib下的derby-10.11.1.1.jar问题,把derby-10.11.1.1.jar 换成derby-10.10.2.0.jar,但是我进到这个目录发现我的就是derby-10.10.2.0.jar,而且我是要用mysql来保存元数据的,本来就跟derby没关系吧?
3. 在$HIVE_HOME/bin目录下执行 ./hive --service metastore &,然后再次执行./hive.兴奋地尝试后发现,又又又报错了。
4. 另外还有看到说是数据库没有连接上什么的,按着那些方法用改了好几次mysql还是解决不了。
5.最后我的解决办法: 看到一个文章上面写的安装环境和错误都跟我差不多,他说是高版本问题,尝试用hive-0.9.0后就成功了。我就试了下,结果最后还真的成功了……。配置好后在执行./bin/hive就成功了,执行结果如下:

如果也有这个问题的可以去官网下hive-0.9.0试试,说不定也能行。下载链接:http://archive.apache.org/dist/hive/hive-0.9.0/
不过这也不绝对,因为我在这之前有换过一次mysql的jdbc,之前试的时候我用的是mysql-connector-java-8.0.20,后面看到一个说是jar包问题的,然后我就换成了mysql-connector-java-5.1.38,这和我看的实验指导中的配置mysql-connector-java-5.1.40很接近,所以也有可能是这个jar包的问题。

P.S.执行的时候遇到的另一个报错ls:cannot access ‘/usr/local/spark/lib/spark-assembly-*.jar’:No such file or directory的解决

我装了个spark后又过了几天又重新来搞hive,执行./bin/hive的时候出现了这个报错:
在这里插入图片描述
查资料发现是因为新版的spark中jar包被分散到了不同的位置,所以需要把hive的启动文件进行相应的更改。到$HIVE_HOME目录下执行vim bin/hive,进入hive的启动文件中,找到图中的位置(我的是在113行):
在这里插入图片描述
把sparkAssemblyPath进行修改,改成下图所示这个错误就解决了:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值