当前位置: 首页 > 工具软件 > Object Shell > 使用案例 >

Spark-shell上运行sql命令报错 WARN metastore.ObjectStore

薛烨
2023-12-01

在spark-shell上运行sql语句,报错

WARN metastore.ObjectStore: Failed to get database default, returning NoSuchObjectException

刚开始在自己的IDEA上都可以编译成功sql部分的代码, 没想到在client上翻了车。
google了好一会才发现是因为spark上conf里面缺少hive配置文件。

很简单,找到hive里conf的下hive-site.xml文件 拷贝到spark的conf目录下

cp hive/conf/hive-site.xml  spark/conf/hive-site.xml

ok, 这个问题就解决了!

如果很不幸, 你又遇到下面的报错

Caused by: java.lang.reflect.InvocationTargetException: org.datanucleus.exceptions.NucleusException: Attempt toinvoke the "BONECP" plugin to create a ConnectionPool gave an error : 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.

这个地方是因为jdbc的driver连接不上, 需要依赖mysql-connector的jar包。
mysql-connector的jar包在hive的lib目录下, 然后拷贝到spark的jar目录下

cp hive/lib/mysql-connector-java-5.1.44-bin.jar  spark/jars/mysql-connector-java-5.1.44-bin.jar

ok, 这样基本上问题就解决了, 重启spark-shell, 就可以运行你的sql命令了

这里感谢大佬的帮助

https://www.cnblogs.com/bigband/p/13558399.html

 类似资料: