我会很感激您对以下查询的回应。<show table> vora query throw无法启动数据库'metastore_db'
我在vora中创建了几个表(例如测试,地址)。我能够在SHOW DATASOUCE
中看到这些表的列表并查询它们。后来我重新启动了vora实例,并以vora用户身份重新登录,并启动了vora spark shell。我知道我不会在新shell中看到这个表,因为它不会出现在新的火花上下文中。但是我遇到了一些链接,它说 <ClusterUtils.markAllHostsAsFailed()>
将加载在沃拉火花上下文中的所有表的元数据,但尽管下面一系列命令执行的
scala> import org.apache.spark.sql._
import org.apache.spark.sql._
scala> val SapSqlSc = new SapSQLContext(sc)
scala> import com.sap.spark.vora.client
import com.sap.spark.vora.client
scala> client.ClusterUtils.markAllHostsAsFailed()
scala> SapSqlSc.sql(s"""
| SHOW DATASOURCETABLES
| USING com.sap.spark.vora
| OPTIONS
| (
| zkUrls "ip-x-x-x-1.ec2.internal:2181,ip-x-x-x-2.ec2.internal:2181",
| namenodeurl "ip-x-x-x-1.ec2.internal:8020"
|)
| """.stripMargin).collect
我得到了下面的错误和异常
16/03/04 11:56:24 ERROR Datastore.Schema: Failed initialising database.
Failed to start database 'metastore_db' with class loader [email protected]3efa54, 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 [email protected], see the next exception for details.at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
你是对的。我的putty会话已关闭,当我重新登录并启动新的Vora shell并创建了同样的SAP SQL上下文变量时,我遇到了上述问题。这是否意味着尽管元数据存储在zookeeper目录中,但我无法将表加载到spark shell中。我是否需要使用命令清理zookeeper目录,然后再次重新创建同一个表。如果是这种情况,我需要重新创建这些表,每次我倒下并带回vora实例。请纠正我的理解。 –
直到Vora 1.1补丁1:如果您尚未重新启动Vora引擎,则可以使用'REGISTER TABLES'命令在当前Spark会话中注册现有表。如果您已重新启动Vora引擎,则需要重新创建表格。另见http://stackoverflow.com/questions/34784246/vora-tables-in-zeppelin-and-spark-shell。有了Vora1.2,我们计划提供一种在Vora引擎重新启动后重新载入表的方法 - 类似于上面的markAllHostsAsFailed。 –
感谢Frank提供宝贵的信息。我需要一个关于vora功能的更多信息。根据我的知识,Vora 1.0目前支持UDFS中的父子层次结构和相关内置功能。是否有任何版本的vora支持级别层次结构? –