错误消息“错误:函数‘NUCLEUS_ASCII’已存在。(state=X0Y68,code=30000)”的原因是什么?

Abh*_*hay 2 cygwin hive cmd derby hive-metastore

输出如下错误信息:

错误:函数“NUCLEUS_ASCII”已存在。(state=X0Y68,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException:架构初始化失败!元存储状态会不一致!
根本原因:java.io.IOException:架构脚本失败,错误代码 2
使用 --verbose 获取详细的堆栈跟踪。
*** 模式工具失败 ***

HiveHadoop守护进程运行良好。我在Metastore服务之后通过Cygwin运行了Hive服务。我删除了所有Metastore目录。然后运行下面的命令后我也面临着上面提到的同样的问题。 db

在 Windows 命令提示符窗口中:

C:\hadoop_new\db-derby-10.14.2.0\bin\startNetworkServer -h 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

在Cygwin终端窗口中:

$HIVE_HOME/bin/schematool -dbType derby -initSchema
Run Code Online (Sandbox Code Playgroud)

错误:

hive > FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Run Code Online (Sandbox Code Playgroud)

Abh*_*hay 5

解决方案:转到以下目录:C:\hadoop_new\apache-hive-3.1.2\scripts\metastore\upgrade\derby\hive-schema-3.1.0.derby.sql 注释“NUCLEUS_ASCII”函数和“NUCLEUS_MATCHES”函数重新运行 schematool -dbType derby -initSchema,然后一切顺利!