首页 > 解决方案 > Hive - derby - java.lang.SecurityException:密封违规:包 org.apache.derby.impl.services.locks 已密封

问题描述

在安装 Hive 和 Derby 之后,在运行 hive 之前,我想将元数据模式创建为: schematool -initSchema -dbType derby

它给了我以下错误:

“根本原因:java.sql.SQLException:找不到适合 jdbc 的驱动程序:derby://home/hadoop/metastore_db;create=true”

我检查了 CLASSPATH,如下所示:

.:/usr/lib/jvm/jre-1.8.0-openjdk/jre/lib:/usr/lib/jvm/jre-1.8.0-openjdk/lib:/usr/lib/jvm/jre-1.8.0 -openjdk/lib/tools.jar:/usr/local/derby/db-derby-10.4.2.0-bin/lib/derbyclient.jar:/usr/local/derby/db-derby-10.4.2.0-bin/lib /derby.jar:/usr/local/derby/db-derby-10.4.2.0-bin/lib/derbytools.jar

所需的 jar 文件在那里。

但是,我复制了derbytools.jarderby.jarderbyclient.jar

/usr/local/derby/db-derby-10.4.2.0-bin/lib/ 到 /usr/local/hive/apache-hive-3.1.2-bin/lib/

. 这解决了上述错误。但现在我收到以下错误。

“java.lang.SecurityException:密封违规:包 org.apache.derby.impl.services.locks 已密封。”

此邮件列表中的一些建议检查我是否在类路径中两次指向 derby jar 文件。显然,它没有在 CLASSPATH 中重复。

请让我知道我哪里出错了。

conf/hive-site.xml中的条目如下:

<property>
   <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby://home/hadoop/metastore_db;create=true </value>
  <!--<value>jdbc:derby://localhost:1527/metastore_db;create=true </value>-->
  <description>JDBC connect string for a JDBC metastore </description>
</property>

谢谢, Soumyadeep

标签: hivederby

解决方案


推荐阅读