无法连接到 sparkSQL
unable to connect to sparkSQL
我正在为配置单元使用远程 mysql 元存储。当我 运行 配置单元客户端时,它 运行 非常完美。但是当我尝试通过 spark-shell 或 spark-submit 使用 spark-sql 时,我无法连接到配置单元。 & 出现以下错误:
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 在我为 Metastore 使用 mysql 数据库时尝试连接 derby 数据库。
我正在使用 apache spark 版本 1.3 和 cloudera 版本 CDH 5.4.8
似乎 spark 使用的是默认的配置单元设置,请按照以下步骤操作:
- 将 hive-site.xml 的 soft-link 复制或创建到您的 SPARK_HOME/conf 文件夹。
- 在 SPARK_HOME/conf/spark-env.sh
中将配置单元库路径添加到类路径
- 重启Spark集群使一切生效。
我相信您的配置单元-site.xml 有 MYSQL 元存储的位置?如果没有,请按照以下步骤重新启动 spark-shell:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://MYSQL_HOST:3306/hive_{version}</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore/description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>XXXXXXXX</value>
<description>Username to use against metastore database/description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>XXXXXXXX</value>
<description>Password to use against metastore database/description>
</property>
我正在为配置单元使用远程 mysql 元存储。当我 运行 配置单元客户端时,它 运行 非常完美。但是当我尝试通过 spark-shell 或 spark-submit 使用 spark-sql 时,我无法连接到配置单元。 & 出现以下错误:
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 在我为 Metastore 使用 mysql 数据库时尝试连接 derby 数据库。
我正在使用 apache spark 版本 1.3 和 cloudera 版本 CDH 5.4.8
似乎 spark 使用的是默认的配置单元设置,请按照以下步骤操作:
- 将 hive-site.xml 的 soft-link 复制或创建到您的 SPARK_HOME/conf 文件夹。
- 在 SPARK_HOME/conf/spark-env.sh 中将配置单元库路径添加到类路径
- 重启Spark集群使一切生效。
我相信您的配置单元-site.xml 有 MYSQL 元存储的位置?如果没有,请按照以下步骤重新启动 spark-shell:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://MYSQL_HOST:3306/hive_{version}</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore/description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>XXXXXXXX</value>
<description>Username to use against metastore database/description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>XXXXXXXX</value>
<description>Password to use against metastore database/description>
</property>