Je constate des erreurs lors du démarrage de spark-Shell
, à l'aide de spark-1.6.0-bin-hadoop2.6
. C'est un nouveau comportement qui vient de naître.
Le résultat des échecs affichés dans les messages de journal ci-dessous est que sqlContext n'est pas disponible (mais que sc est).
Existe-t-il une sorte de verrou Derby qui pourrait être libéré? 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.
J'ai eu un problème similaire dans un shell Spark 2.0.0 lorsque vous essayez de créer un DataFrame
, supprimez simplement metastore_db/dbex.lck
et le problème est résolu.
semblable à la réponse d'Andy. J'ai eu le même problème dans Windows, et voici la solution:
étincelle ouverte
c:\park\bin> spark-shell
Le meilleur moyen de résoudre le problème consiste à redémarrer votre système, puis à accéder au répertoire principal spark et à partir de là, à lancer spark-Shell avec l'utilisateur Sudo.
Sudo bin/spark-Shell
ou si vous voulez utiliser l'instance de pyspark, le type
Sudo bin/pyspark
le problème se pose principalement en raison de privilèges insuffisants pour mertstore_db.
Ce problème se produit à cause de Metastore_db, il est créé lorsque l’étincelle Shell recherche une base de données et commence à l’enregistrer. Vous pouvez supprimer complètement métastore_db car chaque fois qu’il sera créé.Si vous ne pouvez pas supprimer. delete metastore_db/dbex.lck, vous pouvez alors supprimer le dossier metastore_db.J'ai utilisé spark2.1.10 et ai rencontré le même problème plus tôt .
Dans mon cas, Hive a également été lancé avec Spark. J'ai donc fermé le serveur Hive et redémarré Spark Shell pour le faire fonctionner.