情况说明
因为需要在Elasticsearch上加载NLP模型,所以需要升级Elasticsearch的版本,于是我就呆呆地将7.8.0版本的Elasticsearch目录全部删除,下载了最新版的8.6.2,一劳永逸,但也出现了一些问题,这里总结如下。
配置的修改
参考其他博客,修改相关配置
elasticsearch.yml
8.0+版本 ElasticSearch默认开启了安全认证,需要将安全认证关掉
修改 config\elasticsearch.yml,将图中两个地方改为false
jvm.options
对于电脑内存比较小的可以配置一下内存
出现的问题
- 在双击bin目录下的elasticsearch.bat时会出现闪退问题,查看日志logs\elasticsearch.log会发现是和jdk有关。
- 出现下图所示的错误:exception during geoip databases update
分析:将GeoIp功能默认开启了采集。在默认的启动下是会去官网的默认地址下获取最新的Ip的GEO信息,进行关闭即可。
在elasticsearch.yml中添加配置:ingest.geoip.downloader.enabled: false
问题1的原因可能有:
-
jdk版本与elasticsearch版本不一致时。
解决方案:调整jdk或者elasticsearch的版本,使两个版本一致。这里需要强调的是,8.6.2版本的elasticsearch需要jdk17或以上的版本,写者由于之前使用的是jdk11版本的,就下载了jdk19并进行了环境变量的配置。
但是其实也可以不用进行jdk的配置,原因是elasticsearch有自带的jdk包,所以默认都会用自带的jdk包。
ps:下面出现的问题我也很迷,目前只是有这个解决方法,后面我了解得足够详细了会回来补充原因。 -
系统变量JAVA_HOME和Path配置出现问题。
解决方案:到环境变量中查看JDK环境变量JAVA_HOME 和Path是否正确配置正确,是否是存在多个版本的jdk,路径配置指向了其他项目的jdk导致运行闪退。
第一点已经说明,以下为第二点的解决过程
直接键入安装目录即可:
可直接键入:
- %JAVA_HOME%\bin
- %JAVA_HOME%\jre
如果jdk目录下没有jre的话,cmd命令行进入到jdk的安装目录下,键入jlink.exe --module-path jmods --add-modules java.desktop --output jre即可在此目录下生成jre。
直接键入:
- .;%java_home%\lib
可以看到elasticsearch可以正常运行:
以上!