2016-06-30 10 views
0

Ich verwende Remote-Mysql-Metastore für Hive. Wenn ich den Hive-Client starte, läuft es perfekt. aber wenn ich versuche, spark-sql entweder über funken-shell oder durch spark-submit zu verwenden, kann ich mich nicht mit dem bive verbinden. & immer folgende Fehlermeldung:Verbindung zu SparkSQL nicht möglich

Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.EmbeddedDriver 

ich immer bin nicht warum Funke versucht Derby-Datenbank zu verbinden, während ich Mysql-Datenbank für Metastore verwenden.

ich bin mit Apache Funken Version 1.3 & cloudera Version CDH 5.4.8

Antwort

0

Es scheint, Funken Standard Hive-Einstellungen verwenden, gehen Sie folgendermaßen vor:

  • kopieren oder erstellen Soft-Link von hive- site.xml in Ihren SPARK_HOME/conf-Ordner.
  • Fügen Sie den Hive-lib-Pfad zum Klassenpfad in SPARK_HOME/conf/spark-env.sh hinzu.
  • Starten Sie den Spark-Cluster neu, damit alles wirksam wird.

Ich glaube, Ihre Hive-site.xml hat Standort von MYSQL-Metastore? Wenn nicht, folgen Sie diesen Schritten und starten Sie 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> 
+0

Danke für die Antwort dude, es nur lösen, indem Sie hive-site.xml zu Spark Conf-Klassenpfad kopieren. Ich brauche den Cluster nicht neu zu starten. –

+0

groß - bitte markieren Sie dies als Antwort - Danke –