spark-Shell
を使用してspark-1.6.0-bin-hadoop2.6
を起動するとエラーが表示されます。これは新しい動作です。
以下のログメッセージに表示される失敗の結果は、sqlContextが使用できないことです(scは使用可能です)。
リリースできるダービーロックの種類はありますか? Another instance of Derby may have already booted the database /root/spark-1.6.0-bin-hadoop2.6/bin/metastore_db.
<console>:16: error: not found: value sqlContext
import sqlContext.implicits._
^
<console>:16: error: not found: value sqlContext
import sqlContext.sql
16/05/25 11:00:00 ERROR Schema: Failed initialising database.
Failed to start database 'metastore_db' with class loader org.Apache.spark.sql.Hive.client.IsolatedClientLoader$$anon$1@c2191a8, see the next exception for details.
org.datanucleus.exceptions.NucleusDataStoreException: Failed to start database 'metastore_db' with class loader org.Apache.spark.sql.Hive.client.IsolatedClientLoader$$anon$1@c2191a8, see the next exception for details.
16/05/25 11:06:02 WARN Hive: Failed to access metastore. This class should not accessed in runtime.
org.Apache.hadoop.Hive.ql.metadata.HiveException: Java.lang.RuntimeException: Unable to instantiate org.Apache.hadoop.Hive.ql.metadata.SessionHiveMetaStoreClient
16/05/25 11:06:02 ERROR Schema: Failed initialising database.
Failed to start database 'metastore_db' with class loader org.Apache.spark.sql.Hive.client.IsolatedClientLoader$$anon$1@372e972d, see the next exception for details.
org.datanucleus.exceptions.NucleusDataStoreException: Failed to start database 'metastore_db' with class loader org.Apache.spark.sql.Hive.client.IsolatedClientLoader$$anon$1@372e972d, see the next exception for details.
Caused by: Java.sql.SQLException: Failed to start database 'metastore_db' with class loader org.Apache.spark.sql.Hive.client.IsolatedClientLoader$$anon$1@c2191a8, see the next exception for details.
at org.Apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.Apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 134 more
Caused by: Java.sql.SQLException: Another instance of Derby may have already booted the database /root/spark-1.6.0-bin-hadoop2.6/bin/metastore_db.
at org.Apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.Apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
at org.Apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.Apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
... 131 more
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /root/spark-1.6.0-bin-hadoop2.6/bin/metastore_db.
Spark 2.0.0シェルでDataFrame
を作成しようとしたときに、metastore_db/dbex.lck
を削除するだけで同様の問題が発生し、問題は修正されました。
アンディの答えに似ています。私はWindowsでも同じ問題を抱えていましたが、ここに解決策があります:
スパークシェルを開く
c:\ park\bin> spark-Shell
問題を解決する最良の方法は、最初にシステムを再起動してから、sparkホームディレクトリに移動し、そこからSudoユーザーでspark-Shellを実行してみることです。
Sudo bin/spark-Shell
または、pysparkインスタンスを使用する場合は、タイプ
Sudo bin/pyspark
この問題は主に、mertstore_dbの権限が不十分なために発生します。
私の場合、HiveもSparkと一緒に開始されました。そこで、Hiveサーバーを閉じて、Spark Shellを再起動して動作させました。