我在HDFS和hive实例运行时关闭了我的HDFS客户端。现在,当我重新进入Hive时,我无法执行任何DDL任务,例如“show tables”或“describe tablename”等。它给出了如下错误
ERROR exec.Task (SessionState.java:printError(401)) - FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
有人可以建议我在不重新创建表的情况下实例化我的metastore_db需要做什么吗?否则,我必须再次重复创建整个数据库/模式的工作。
答案 0 :(得分:10)
我已经解决了这个问题。这些是我遵循的步骤:
注意:第5步可能看起来有点奇怪,因为即使删除了锁定条目,它仍然会给出HiveMetaStoreClient错误,但它对我有效。
优点:您不必重复重新创建整个数据库的工作。
希望这可以帮助有人面对同样的错误。如果您觉得有用,请投票。提前谢谢
答案 1 :(得分:9)
有人告诉我,如果蜂巢控制台未正确终止,我们通常会遇到此异常。 修复:
运行jps命令,查找“RunJar”进程并使用它杀死它 kill -9命令
答案 2 :(得分:1)
您是否已将包含元数据db的JDBC驱动程序的jar复制到Hive的lib目录?
例如,如果您使用MySQL来保存元数据数据库,则需要复制
mysql-connector-java-5.1.22-bin.jar到$ HIVE_HOME / lib。
这为我解决了同样的错误。
答案 3 :(得分:1)
我遇到了同样的问题并通过启动Metastore服务解决了这个问题。有时,如果您的计算机重新启动或停机,服务可能会停止。您可以通过运行命令启动该服务:
以$HIVE_USER
nohup hive --service metastore>$HIVE_LOG_DIR/hive.out 2>$HIVE_LOG_DIR/hive.log &
答案 4 :(得分:1)
我遇到了与hive服务器类似的问题,并遵循以下步骤:
1.转到$ HIVE_HOME / bin / metastore_db
2.将db.lck复制到db.lck1,将dbex.lck复制到dbex.lck1
3.从db.lck和dbex.lck中删除了锁定条目
4.从蜂巢壳中重新定位。它正在工作中
感谢
答案 5 :(得分:1)
例如,我使用MySQL来保存元数据db,我复制了
mysql-connector-java-5.1.22-bin.jar进入$ HIVE_HOME / lib文件夹
我的错误已解决
答案 6 :(得分:0)
我也遇到了同样的问题,并且发现我有hive-deafult.xml和hive-site.xml(由我手动创建),
我将hive-site.xml移动到hive-site.xml-template(因为我不需要这个文件)然后 开始蜂巢,工作得很好。
干杯, 阿杰马勒
答案 7 :(得分:0)
我遇到过这个问题,在我的情况下是从命令行运行hive
命令。
我使用kerberized hive运行kinit命令解决了这个问题。
kinit -kt <your keytab file location> <kerberos principal>