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

在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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值