使用 derby 配置 Hive Metastore

Hive metastore Configuration with derby

在 RedHat 测试服务器中,我安装了 hadoop 2.7 和 运行 Hive,Pig & Spark 没有问题。但是当试图从 Spark 访问 Hive 的 Metastore 时,我得到了错误所以我想把 hive-site.xml(提取 'apache-hive-1.2.1-bin.tar.gz' 文件后,我只是按照教程将 $HIVE_HOME 添加到 bashrc,除了与 Spark 的集成之外,一切正常)在 apache 站点中,我发现我需要将 hive- site.xml 作为 Metastore 配置 我创建的文件如下

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

我把 IP 作为 localhost 因为它是单节点机器。之后我什至无法连接到 Hive。它抛出错误

线程 "main" 中的异常 java.lang.RuntimeException: java.lang.RuntimeException: 无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 在 org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)

..... 原因:javax.jdo.JDOFatalDataStoreException:无法打开到给定数据库的测试连接。 JDBC url = jdbc:derby://localhost:1527/metastore_db;create=true, username=APP.终止连接池(如果您希望在应用程序之后启动数据库,请将 lazyInit 设置为 true)。原始异常:------ java.sql.SQLException: 找不到适合 jdbc:derby://localhost:1527/metastore_db;create=true

的驱动程序

有很多错误日志指向同一件事。如果我从 conf 文件夹中删除 hive-site.xml,则配置单元可以正常工作。任何人都可以指出默认 Metastore 配置的正确路径 谢谢 阿诺普 R

Derby 用作嵌入式数据库。尝试使用

jdbc:derby:metastore_db;create=true

为jdbc-url。另见

https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-EmbeddedMetastore

要使用 Metastore 的全部功能(并由此能够从不同的服务访问它),请尝试按照上述文档中的说明使用 mysql 进行设置。

在设置嵌入式 Metastore 数据库时,使用下面的 属性 作为 JDBC URL:

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

我在安装 hive 时也遇到了类似的异常。对我有用的是初始化 derby 数据库。我使用以下命令来解决问题:命令 -> 转到 $HIVE_HOME/bin 和 运行 命令 schematool -initSchema -dbType derby 。 您可以关注linkhttp://www.edureka.co/blog/apache-hive-installation-on-ubuntu

将derbyclient.jar放入hive

的lib文件夹即可