我正在为配置单元使用远程mysql元存储。当我运行hive客户端时,它运行得非常完美。但是当我试图通过sparkshell或sparksmit使用sparksql时,我无法连接到hive获取以下错误:
Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.EmbeddedDriver
我不明白为什么spark在使用mysql数据库进行metastore时尝试连接derby数据库。
我使用的是apachesparkversion1.3和clouderaversioncdh5.4.8
1条答案
按热度按时间rsl1atfo1#
spark似乎正在使用默认的配置单元设置,请执行以下步骤:
将hive-site.xml的软链接复制或创建到spark\u home/conf文件夹。
在spark_home/conf/spark-env.sh中将配置单元库路径添加到类路径
重新启动spark cluster以使一切生效。
我相信你的hive-site.xml有mysql元存储的位置?如果没有,请按照以下步骤重新启动spark shell: