2016-04-19 7 views
0

Ich habe mehrere Threads auf SO durchgespielt, in denen es um die Migration von Hive-Metastreams nach MySQL geht, falls mehrere Benutzer darauf zugreifen möchten. Dieser Fall ist anders.So bereinigen Sie die Derby-Instanz, auf der Hive-Metastore ausgeführt wird

Ich versuche, ein Hive-Programm auszuführen, um eine SQL für ein Dataset auszuführen, und bereinige es dann (schließe den Kontext), um ein anderes SQL in einem anderen Dataset auszuführen. Aber ich sehe den Fehler zu sagen:

ERROR XSDB6: Ein anderes Beispiel von Derby haben die Datenbank bereits gebootet

Meine Frage ist-ist es eine Möglichkeit, das Derby Beispiel aufzuräumen kann hive Metastore laufen, so dass Meine nächste Kontextinitialisierung sieht die vorherige Instanz nicht? Ich denke, die Situation ist vergleichbar mit der Durchführung von Tests mit mehreren Einheiten und es sollte eine Möglichkeit geben, Dinge zu säubern.

Antwort

0

ich die gleichen Fehler beim Erstellen Daten auf Spark-Shell-Rahmen:

Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /metastore_db.

Ursache:

fand ich, dass dies geschieht, da es mehrere andere Instanzen Spark-Shell waren bereits läuft und Halte Derby DB bereits, so, als ich noch ein weiteres Spark-Shell starten und die Schaffung von Datenrahmen auf sie mit RDD.toDF() wurde zu werfen Fehler:

Lösung:

lief ich den Befehl ps andere Instanzen Spark-Shell zu finden:

ps -ef | grep spark-shell 

und ich tötete sie alle mit Kill-Befehl:

kill -9 Spark-Shell-processID (example: kill -9 4848) 

nachdem alle SPARK-Shell-Instanzen wurden i gegangen, Ich habe eine neue SPark SHell gestartet und meine Datenframe Funktion neu gestartet und es lief einfach gut :)