我用mysql配置了hive作为我的元存储。我可以进入hiveshell并成功创建表。
spark版本:2.4.0
配置单元版本:3.1.1
当我尝试使用spark submit运行sparksql程序时,出现以下错误。
2019-03-02 15:43:41 WARN HiveMetaStore:622 - Retrying creating default database after error: Error creating transactional connection factory
javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
......
......
Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;
......
......
org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;
Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "HikariCP" plugin to create a ConnectionPool gave an error : The connection pool plugin of type "HikariCP" was not found in the CLASSPATH!
如果有人能在这方面帮助我,请告诉我。
1条答案
按热度按时间vnjpjtjt1#
我不知道你是否已经解决了这个问题。这是我的建议。
默认的数据库连接是hive-site.xml中的hikaricp。您可以在hive-site.xml中搜索:datanucleus.connectionpooligtype。值为hikaricp。所以您需要将其更改为dbcp,因为您使用mysql作为元存储。
最后,不要忘记将mysql-connector-java-5.x.x.jar添加到/home/hadoop/spark-2.3.0-bin-hadoop2.7/jars这样的路径中