【问题标题】:Apache Hive : Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClientApache Hive:无法实例化 org.apache.hadoop.hive.metastore.HiveMetaStoreClient
【发布时间】:2015-02-24 12:09:24
【问题描述】:

我正在尝试安装 Apache Hive,我将 HIVE_HOME 和 HADOOP_HOME 插入 hive_config.sh 并将一些 hive jar 复制到 $HADOOP_HOME/lib 但是当我尝试使用hive 命令启动它时,会出现此错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:346)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1412)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:62)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)
at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2453)
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2465)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:340)
... 7 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1410)
... 12 more
Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
NestedThrowables:
java.lang.reflect.InvocationTargetException
etc ...

请帮忙!

【问题讨论】:

    标签: java apache hadoop hive


    【解决方案1】:

    hive --service metastore &

    此命令将启动元存储。

    【讨论】:

      【解决方案2】:

      您的 hadoop 应该处于运行状态。 解压下载的配置单元并授予目录权限。转到 hive/conf 目录。将 hive-env.sh.template 文件制作为 hive-env.sh 并将 hive-default.xml.template 文件制作为 hive-site.xml。打开 hive-evn.sh 并在 hive-env.sh 和 HADOOP_HOME 中设置 JAVA_HOME 并设置 hive 路径。

      export HIVE_HOME=/usr/local/hive
      

      然后通过

      打开 hive 终端
      hive
      

      默认情况下,hive 使用 Derby 数据库,如果在创建表时出现 Metastore 错误,请转到 metastore/metastore_db 并删除 *.lck 文件。

      在 .bashrc 或 .bash_profile 中添加 JAVA_HOME、HADOOP_HOME、HIVE_HOME。

      $cd ~
      $vi .bashrc
      
      paste following to the end of the file
      
      
      
      #Hadoop variables
      export JAVA_HOME=/usr/lib/jvm/jdk/
      export PATH=$PATH:$JAVA_HOME/bin
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_INSTALL/bin
      export PATH=$PATH:$HADOOP_INSTALL/sbin
      export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
      export HADOOP_COMMON_HOME=$HADOOP_INSTALL
      export HADOOP_HDFS_HOME=$HADOOP_INSTALL
      export YARN_HOME=$HADOOP_INSTALL
      export HIVE_HOME=/usr/local/hive
      export PATH=$PATH:$HIVE_HOME/bin
      ###end of paste
      

      【讨论】:

      • 非常感谢您的帮助,我的错是我错过了将蜂巢罐添加到 HADOOP_CLASSPATH :export HADOOP_CLASSPATH=/home/elyes/Cassandra/apache-cassandra-2.0.6/lib /cassandra-driver-core-1.0.0-rc1-sources.jar:/home/elyes/hive/lib/*.jar
      【解决方案3】:

      为了解决上述异常,启动配置单元元存储服务对我有用

         $ hive --service metastore
      

      关于启动元存储服务的cloudera参考文档:

      http://www.cloudera.com/documentation/archive/cdh/4-x/4-7-1/CDH4-Installation-Guide/cdh4ig_topic_18_6.html

      【讨论】:

        【解决方案4】:

        无需启动 Metastore,因为运行 hive cli 的服务也会这样做,只需确保您从实例化 hive Metastore 的同一目录执行 hive 命令

        【讨论】:

          【解决方案5】:

          如果您是 CDH 用户,您应该使用正确的参数构建 Zeppelin。这些参数将解决 CDH 5.3.3 的问题:

          mvn clean install -Pspark-1.4 -Phadoop-2.4 -DskipTests -Dspark.version=1.4.0 -Dhadoop.version=2.5.0-cdh5.3.3 -Dhive.hive.version=0.13.1-cdh5.3.3
          

          【讨论】:

            【解决方案6】:

            从属性中,它将只创建数据库而不创建模式。尝试在 MySQL 中创建 Hive Metastore 所需的架构

            cd $HIVE_HOME/scripts/metastore/upgrade/mysql/

            mysql> use metastore;
             mysql> source hive-schema-<your_version>.mysql.sql;
            

            例如源 hive-schema-2.1.0.mysql.sql; 然后使用以下命令重启 hive Metastore 进程:

            (hive --service 元存储) 希望这能解决问题!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-05-07
              • 2015-08-01
              • 1970-01-01
              • 1970-01-01
              • 2018-04-17
              • 2020-08-22
              • 1970-01-01
              • 2022-01-03
              相关资源
              最近更新 更多