导读
历史文章(文章累计490+)
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
15篇MyBatis-Plus系列集合篇「值得收藏学习」
全文检索[ES系列] - 第495篇
ElasticSearch应用场景以及技术选型[ES系列] - 第496篇
悟纤:师傅,安装ES碰到了很多奇奇怪怪的问题,为啥我总是碰到奇奇怪怪的问题呐。
师傅:学习吗,不可能是一帆风顺的。学习重要的是要培养自己在碰到问题的时候,自我思考、独立解决问题的能力。
悟纤:那师傅,我怎么培养这样的能力呢 ?
师傅:重要的是碰到问题,不要着急就问别人,尝试自己去解决问题。
悟纤:那要是解决不出来呢?
师傅:那就百度看看以及问问别人是否碰到过类似的问题。
悟纤:还有其它要点的吗 ?
师傅:那就是对于碰到的问题要多多总结。
悟纤:师傅,看来我的培养一下学习的方法了。
导读
Hi,大家好,我是悟纤。我就是我,不一样的烟火。我就是我,与众不同的小苹果。
在了解了ES之后,这一节就一起来搭建一下ES环境以及在搭建环境过程中经常碰到的一些问题。
一、安装ElasticSearch
安装文档:
https://www.elastic.co/guide/en/elasticsearch/reference/8.10/targz.html
1.1 下载ElasticSearch
下载地址:
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
选择版本:8.10.2
选择相应的操作系统进行下载:
我这里是mac 选择的是第二个macos x64。
下载下来是一个类似这样的文件:
1.2 解压压缩文件
将文件进行解压即可:
elasticsearch-8.10.2-darwin-x86_64.tar.gz
目录结构:
目录 | 描述 |
bin | 脚本文件,包括启动elasticsearch,安装插件,运行统计数据等 |
config | 配置文件目录,如elasticsearch配置、角色配置、jvm配置等。 |
jdk | 7.x 以后特有,自带的 java 环境,8.x版本自带 jdk 17 |
data | 默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境需要修改。 |
lib | elasticsearch依赖的Java类库 |
logs | 默认的日志文件存储路径,生产环境需要修改。 |
modules | 包含所有的Elasticsearch模块,如Cluster、Discovery、Indices等。 |
plugins | 已安装插件目录 |
1.3配置JDK环境
· ES比较耗内存,建议虚拟机4G或以上内存,jvm1g以上的内存分配
· 运行Elasticsearch,需安装并配置JDK。各个版本对Java的依赖 https://www.elastic.co/support/matrix#matrix_jvm
² Elasticsearch 5需要Java 8以上的版本
² Elasticsearch 从6.5开始支持Java 11
² 7.0开始,内置了Java环境。ES的JDK环境变量生效的优先级配置顺序ES_JAVA_HOME>JAVA_HOME>ES_HOME
² ES_JAVA_HOME:这个环境变量用于指定Elasticsearch使用的Java运行时环境的路径。在启动Elasticsearch时,它会检查ES_JAVA_HOME环境变量并使用其中的Java路径。
² ES_HOME:这个环境变量指定Elasticsearch的安装路径。它用于定位Elasticsearch的配置文件、插件和其他相关资源。设置ES_HOME环境变量可以让您在命令行中更方便地访问Elasticsearch的目录结构和文件。
可以参考es的环境文件bin/elasticsearch-env
windows下,设置ES_JAVA_HOME和ES_HOME的环境变量。
1.4启动ElasticSearch服务
进入bin目录,直接运行elasticsearch
解压压缩包进入bin文件里面启动 elasticsearch 直接启动即可 默认端口:9200
测试,浏览器中访问:http://localhost:9200/
二、常见错误
2.1错误not all primary shards
报错:
exception during geoip databases updateorg.elasticsearch.ElasticsearchException: not all primary shards of [.geoip_databases] index are active
解决方式:修改config中elasticsearch.yml配置文件,添加如下三行配置
2.2错误received plaintext http traffic
报错:received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200, remoteAddress=/127.0.0.1:59411}
解决方式:修改config中elasticsearch.yml配置文件,更改安全权限配置
2.3错误high disk watermark [90%] exceeded on
报错:current.health="RED" message="Cluster health status changed from [YELLOW] to [RED] (reason: [reconcile-desired-balance])." previous.health="YELLOW" reason="reconcile-desired-balance"
[2023-10-08T15:14:01,245][WARN ][o.e.c.r.a.DiskThresholdMonitor] [linxiangxiandeMacBook-Pro.local] high disk watermark [90%] exceeded on [pU7WL0B0SS2Ah7Y3MnfF_g][linxiangxiandeMacBook-Pro.local][/Users/linxiangxian/Documents/soft/elasticsearch-8.10.2/data] free: 28gb[6%], shards will be relocated away from this node; currently relocating away shards totalling [0] bytes; the node is expected to continue to exceed the high disk watermark when these relocations are complete
问题原因:磁盘空间不足,配置了集群的话,索引会不健康
解决方法:在elasticserach.yml
discovery.type: single-node
cluster.routing.allocation.disk.threshold_enabled: false
我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。
à悟纤学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
ShardingJDBC分库分表:http://t.cn/A6ZarrqS
分布式事务解决方案:http://t.cn/A6ZaBnIr
JVM内存模型调优实战:http://t.cn/A6wWMVqG
Spring入门到精通:https://t.cn/A6bFcDh4
大话设计模式之爱你:https://dwz.cn/wqO0MAy7