失败:元数据错误:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.metastore.HiveMetaStoreClient

2023-12-08

当 HDFS 和 hive 实例运行时,我关闭了 HDFS 客户端。现在,当我重新登录 Hive 时,我无法执行任何 DDL 任务,例如“显示表”或“描述表名”等。它给了我如下错误

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而不重新创建表?否则,我必须再次重复创建整个数据库/模式的工作。


我已经解决了这个问题。这些是我遵循的步骤:

  1. 转到 $HIVE_HOME/bin/metastore_db
  2. 将 db.lck 复制到 db.lck1,将 dbex.lck 复制到 dbex.lck1
  3. 从 db.lck 和 dbex.lck 中删除了锁定条目
  4. 从 hive shell 以及所有正在运行的 HDFS 实例中注销
  5. 重新登录 HDFS 和 hive shell。如果您运行 DDL 命令,它可能会再次出现“无法实例化 HiveMetaStoreClient 错误”
  6. 现在将 db.lck1 复制回 db.lck,将 dbex.lck1 复制回 dbex.lck
  7. 从所有 hive shell 和 HDFS 实例注销
  8. 重新登录,您应该看到您的旧表

注意:第 5 步可能看起来有点奇怪,因为即使删除锁定条目后,它仍然会给出 HiveMetaStoreClient 错误,但它对我有用。

优点:您不必重复重新创建整个数据库的工作。

希望这可以帮助面临同样错误的人。如果觉得有用请投票。在此先感谢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

失败:元数据错误:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.metastore.HiveMetaStoreClient 的相关文章

随机推荐