暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

部署 Easysearch 出现 fatal error in thread [main], exiting ,怎么解决?

1、问题来源

在部署 Coco AI 最新版本的时候,前置需要安装 Easysearch。

当然如果部署过了 Elasticsearch,Easysearch 其实也可以不用安装。

我这里使用了 Easysearch 的 1.12.1 (2025-04-28) 版本。


如果不安装插件,不会报错,运行正常。

如果通过 initialize.sh 安装了插件,就会报如下的错误。

java.lang.NoClassDefFoundError: org/easysearch/monitor/Rollup/RollupStatsAction

详细的错误,见如下第 2 小节。

2、问题描述

[2025-06-03T13:15:03.54, 037][INFO ][o.e.n.Node       ] [mytx-2025] node name [mytx-2025], node ID [7kgnlw9SEyTDw-tz8yAJ], cluster name [easysearch], roles [master, remote_cluster_client, data, ingest]
[2025-06-03T13:15:03.55, 226][ERROR][o.e.b.EasysearchuncaughtExceptionHandler] [mytx-2025] fatal error in thread [main], exiting
java.lang.NoClassDefFoundError: org/easysearch/monitor/Rollup/RollupStatsAction
    at org.easysearch.IndexManagementPlugin.<init>(IndexManagementPlugin.kt:521) ~[?:?]
    at org.easysearch.action.ActionModule.lambda$setupActions$3(ActionModule.java:575) ~[easysearch-1.12.1.jar:1.12.1]
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?]
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
    at org.easysearch.action.ActionModule.setupActions(ActionModule.java:575) ~[easysearch-1.12.1.jar:1.12.1]
    at org.easysearch.node.Node.<init>(Node.java:579) ~[easysearch-1.12.1.jar:1.12.1]
    at org.easysearch.node.Node.<init>(Node.java:293) ~[easysearch-1.12.1.jar:1.12.1]
    at org.easysearch.bootstrap.Bootstrap.setup(Bootstrap.java:219) ~[easysearch-1.12.1.jar:1.12.1]
    at org.easysearch.bootstrap.Bootstrap.init(Bootstrap.java:367) ~[easysearch-1.12.1.jar:1.12.1]
    at org.easysearch.Easysearch.execute(Easysearch.java:68) ~[easysearch-1.12.1.jar:1.12.1]
    at org.easysearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[easysearch-cli-1.12.1.jar:1.12.1]
    at org.easysearch.bootstrap.Easysearch.main(Easysearch.java:67) ~[easysearch-1.12.1.jar:1.12.1]
Caused by: java.lang.ClassNotFoundException: org.easysearch.monitor.Rollup.RollupStatsAction
    at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    ... 17 more

通过上面的报错可以初步推理:

在 org.easysearch 应用程序的运行中,出现了 java.lang. NoClassDefFoundError 异常,原因是找不到 org. easysearch. monitor.Rollup.RollupStatsAction 类,可能是由于类文件缺失、依赖库版本不匹配、类路径配置错误、动态加载失败、JAR 文件损坏或运行时环境不兼容等原因导致。

建议检查构建过程、依赖配置、类路径以及 Java 版本兼容性,以逐步排查和解决问题。

初步认定:这可能是新版本的一个 bug

3、临时解决方案探讨

既然是 "IndexManagementPlugin" 插件环节的报错,临时解决方案就是把插件卸载掉。

3.1 步骤1:查看插件列表。

3.2 步骤2:移除 IndexManagement 插件。

5、小结

先保证功能能运行。

投标环节:如何科学、合理地介绍 Elasticsearch 国产化替代方案——Easysearch?
【视频】云端 Centos7 部署 Easysearch
Easysearch 向量检索之从原理到实战
将斯坦福 GloVe 词向量数据集索引到 Easysearch 以实现语义搜索
如何快速搭建高可用 Easysearch 集群 ?Ubuntu 多节点部署指南
Elasticsearch 国产化替代方案之一 Easysearch 的介绍与部署指南

文章转载自铭毅天下Elasticsearch,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论