如何清理运行Hive Metastore的derby实例

时间:2016-04-19 17:07:25

标签: apache-spark hive derby apache-spark-sql

我在SO上经历了多个线程,讨论了在多个用户想要访问它时将hive Metastore迁移到mysql的问题。这种情况不同。

我尝试运行一个配置单元程序来执行数据集上的SQL,然后清理它(关闭上下文)以在另一个数据集上运行另一个SQL。但我看到错误说:

错误XSDB6:Derby的另一个实例可能已经启动了数据库

我的问题是 - 有没有办法可以清理运行hive Metastore的derby实例,以便我的下一个上下文初始化不会看到前一个实例?我觉得情况类似于运行多个单元测试,应该有办法清理。

1 个答案:

答案 0 :(得分:0)

我在Spark Shell上创建数据框时遇到了同样的错误:

  

引起:错误XSDB6:Derby的另一个实例可能已经启动了数据库/ metastore_db。

原因:

我发现这种情况正在发生,因为已经有多个其他Spark-Shell实例已经运行并且已经拥有derby DB,所以当我启动另一个Spark Shell并使用RDD.toDF()创建数据框时,它是投掷错误:

解决方案:

我运行了ps命令来查找Spark-Shell的其他实例:

ps -ef | grep spark-shell

我使用kill命令将它们全部杀死:

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

在所有SPark-Shell实例都消失之后,我开始了一个新的SPark SHell并重新启动了我的数据帧功能,它运行得很好:)