安装X-Pack后Elasticsearch 6.2.2无法启动求助
[2018-03-01T19:56:55,884][ERROR][o.e.b.Bootstrap ] Exception java.lang.IllegalStateException: failed to load plugin class [org.elasticsearch.xpack.core.XPackPlugin] at org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java:563) ~[elasticsearch-6.2.2.jar:6.2.2]
这个报错我帮不少开发者排查过,核心是X-Pack插件的核心类加载逻辑出了问题,按以下步骤逐一排查就能解决:
严格匹配插件与ES版本:Elasticsearch对插件版本的要求极其严格,6.2.2版本的ES必须安装同版本的X-Pack。先卸载现有插件:
bin/elasticsearch-plugin remove x-pack再安装指定版本的X-Pack:
bin/elasticsearch-plugin install x-pack:6.2.2安装完成后用
bin/elasticsearch-plugin list确认插件版本是否与ES完全一致。修复插件目录权限:ES运行用户需要对
plugins/x-pack目录有完整的读写权限,否则会因无法读取插件类文件触发报错。假设ES的运行用户是elasticsearch,执行以下命令调整权限:sudo chown -R elasticsearch:elasticsearch /path/to/elasticsearch/plugins/x-pack清理插件缓存:ES会缓存插件的加载信息,缓存损坏也会导致类加载失败。先停止ES服务,然后删除缓存目录:
rm -rf /path/to/elasticsearch/data/nodes/0/plugins重启ES后,系统会自动重新生成缓存文件。
检查JDK版本兼容性:Elasticsearch 6.2.2要求使用JDK 8(Oracle JDK或OpenJDK均可),且版本不低于8u131。旧版本JDK可能存在类加载的兼容性问题,导致X-Pack核心类无法正常加载。执行
java -version确认JDK版本,若不符合要求请及时升级。重新安装插件(排除安装损坏):如果上述步骤都无效,大概率是插件安装过程中文件下载不完整。先卸载插件,然后重新安装,安装时注意观察控制台输出,确保没有下载或解压错误。
内容的提问来源于stack exchange,提问作者Sarbamangal Choudhury

