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

som*_*rti 3 hadoop hive hql hdfs

我在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
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我需要做什么来实现我的metastore_db实例化而不重新创建表?否则,我必须再次重复创建整个数据库/模式的工作.

som*_*rti 10

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

  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. 从所有配置单元shell和HDFS实例注销
  8. Relogin,你应该看到你的旧桌子

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

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

希望这有助于某人面临同样的错误.如果您觉得有用,请投票.谢谢你


Cha*_*ngh 9

我被告知,如果我们的蜂巢控制台没有正确终止,我们通常会得到这个例外.修复:

运行jps命令,查找"RunJar"进程并使用kill -9命令将其终止