【问题标题】:Not able to enter Hive Shell无法进入 Hive Shell
【发布时间】:2016-09-09 06:51:09
【问题描述】:

我正在尝试从 cli 进入 hive shell,但由于抛出以下错误而失败:- 我完全按照这个链接进行安装:-http://www.tutorialspoint.com/hive/hive_installation.htm

线程“main”java.lang.RuntimeException 中的异常:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

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

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

使用 jar:file:/usr/local/hive/lib/hive-common-2.0.0.jar!/hive-log4j2.properties 中的配置初始化日志记录 线程“主”java.lang.RuntimeException 中的异常:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

【问题讨论】:

  • 不确定这是否是同一个问题,但请查看此链接。我最近在 ubuntu 中安装了 hive 并遇到了以下问题。 stackoverflow.com/questions/35655306/…
  • 配置.bashrc后是否重启了terminal。如果是,请分享echo $CLASSPATHls -l $DERBY_HOME/lib/derbytools.jar 命令的输出。
  • 是的,我重新启动了 .bashrc。 echo $CLASSPATH 的输出是:/home/ajith/hadoop/lib/*:.:/usr/local/hive/lib/*:.:/usr/local/derby/lib/derby.jar:/usr/ local/derby/lib/derbytools.jar 对于 ls -l $DERBY_HOME/lib/derbytools.jar ---> -rwxrwxrwx 1 root root 229665 Sep 20 2015 /usr/local/derby/lib/derbytools.jar

标签: java hadoop jdbc hive hiveql


【解决方案1】:
Place  sql driver in $HOME/lib folder


change hive-site.xml properties


<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>



<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive_metastore_db?createDatabaseIfNotExist=true</value>
  </property>



<property>
  <name>datanucleus.autoCreateSchema</name>
  <value>true</value>
</property>

<property>
  <name>datanucleus.fixedDatastore</name>
  <value>true</value>
</property>

<property>
 <name>datanucleus.autoCreateTables</name>
 <value>True</value>
 </property>

 <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    <description>password to use against metastore database</description>
  </property>


 <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>

【讨论】:

    【解决方案2】:

    您所指的安装配置单元的链接看起来很旧(对于 apache-hive-0.14.0,它需要一个单独的 derby 数据库)。

    您可以尝试安装具有内置 derby 数据库的 apache-hive-1.2.1 来代替它,而不必显式安装和配置数据库。

    您可以尝试本博客install-hive-121-on-ubuntu-1404中提到的步骤

    【讨论】:

    • 我使用 MYSQL 而不是 derby,问题已解决,谢谢
    【解决方案3】:

    您必须在启动 hive 服务器之前启动 Derby 数据库。

    1527 端口是德比端口。 启动 hive 服务器时,首先访问 derby 端口。

    所以转到 Derby\bin 并键入“startNetworkServer”

    给出上述命令后 1527 端口将监听, 然后启动 hive 元存储和 hiveserver2。

    现在 hive 服务器可以正常工作了。

    相信这对你更有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-16
      • 2016-08-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2019-02-16
      相关资源
      最近更新 更多