一、问题描述
安装完hive后,在启动时报错:
org.datanucleus.exceptions.NucleusException:Error creating transactional connecCtion factory
二、解决方案
先退出hive:
exit;
删除/usr/local/hive/lib目录中的jdbc包(即mysql-connector-java-5.1.40-bin.jar文件,本文的是该文件,请读者根据自己以前下载的jdbc包进行删除):
cd /usr/local/hive/lib
rm mysql-connector-java-5.1.40-bin.jar
删除后去MySQL官方网站上 MySQL Connector/J 的下载界面选择与自己的MySQL版本相符合的jdbc包进行下载,下载教程详见:下载mysql jdbc 包详细教程_怎么下载mysql connector/j库-CSDN博客
下载后将下载后的jdbc包拖入虚拟机Ubuntu系统中的下载文件夹,对jdbc包进行解压并将解压后的jar包拷贝到/usr/local/hive/lib目录下(本文以下载mysql-connector-java_8.0.25-1ubuntu16.04_all.deb为例,将解压后的mysql-connector- java-8.0.25.jar拷贝到/usr/local/hive/lib目录下):
cd ~/下载
sudo dpkg -i mysql-connector-java_8.0.25-1ubuntu16.04_all.deb
cd /usr/share/java
cp mysql-connector-java-8.0.25.jar /usr/local/hive/lib
完成上述步骤后,问题解决,hive能够成功启动并运行:
至此,问题成功解决!!!
三、其他可能出现的问题
1.若在启动时出现报错:
org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations.
可参考:启动hive时报错:Required table missing : “`VERSION`“ in Catalog ““ Schema ““._required table missing : "`version`" in catalog ""-CSDN博客文章浏览阅读132次。启动hive时报错:org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations.的解决办法(附过程图)_required table missing : "`version`" in catalog "" schema "". datanucleus rehttps://blog.csdn.net/qq_67822268/article/details/134816670
2.若在启动时出现报错:Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
四、问题分析
出现上述问题可能是你所安装的jdbc包与下载的MySQL版本不相符,根据自己安装的MySQL版本尽量选择高版本的jdbc包重新安装即可(注意不要过高版本,要与自身的MySQL版本适配)