2016-06-30 21 views
0

私はハイブにリモートのmysqlメタストアを使用しています。ハイブクライアントを実行すると完璧に動作します。しかし、私はspark-shellを使ってspark-shellを使うか、spark-submitを使って私がハイブに接続することはできません。 &なって、次のエラー:スパークiがメタストア用のMySQLデータベースを使用していながら、Derbyデータベースを接続しようとする理由を私は得ていないのですsparkSQLに接続できません

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

私は火花は、次の手順を実行し、デフォルトのハイブ設定を使用しているようだapacheのスパークバージョン1.3 & ClouderaのバージョンCDH 5.4.8

答えて

0

を使用しています:

  • コピーまたはhive-のソフトリンクを作成site.xmlをSPARK_HOME/confフォルダにコピーします。
  • SPARK_HOME/conf/spark-env.shのクラスパスへのhive libパスを追加してください。
  • すべてを有効にするためにSparkクラスタを再起動してください。

あなたのhive-site.xmlには、MYSQLメタストアの場所があると思いますか?ない場合は、次の手順に従いますし、火花シェルを再起動します。解答男のための

<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

おかげで、それが唯一のconfにクラスパスをスパークするハイブ-site.xmlのをコピーすることによって解決します。私のためにクラスタを再起動する必要はありません。 –

+0

素晴らしい - これを回答としてマークしてください - ありがとう –

関連する問題