码迷,mamicode.com
首页 > 其他好文 > 详细

elasticsearch 单节点常见问题

时间:2020-06-20 01:29:26      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:启动   gre   提示   bash   logs   单节点   数字   使用   列表   

elasticsearch 单节点常见问题

记录elasticsearch 单节点使用时,出现健康状态为 集群健康值:yellow (23 of 46),主要是后面的数字时前面数字的两倍,则这个问题时分片副本问题。

ES 健康的三种状态

状态为green 时,(代表健康状态,说明分片备份都可以用)

状态为yellow时,(代表基本的分片可用,但是备份不能用【或者是没有备份】)

状态为red时, (代表部分分片可用,但有一部分损坏。此时部分数据仍然可以查到,但是要尽快解决)

查看问题: 通过请求 es的接口 http://elasticsearch/_cat/health?v

技术图片

过滤查看所有未分配索引的方式

curl -s "http://elasticsearch:9200/_cat/shards" | grep UNASSIGNED
结果:第一列表示索引名,第二列表示分片编号,第三列p是主分片,r是副本

查看启动日志:默认日志位置在安装位置的logs下的elasticsearch.log

技术图片

其实没什么有用的信息,圈出来连个红圈,单纯看也没什么问题,但是就是问题就是出在了红圈上。

shards 代表分片,默认把一个索引分为五个主分片,后面的[5]/[1],第一个中括号里的数字是指定分片的数量,也就是shards,但是第二个中括号里的数字没有提示是什么,这个数字其实是 replicas 代表副本,默认一个索引创建一个副本

因为我们是单节点,而默认的分片副本数目配置为1,而相同的分片不能在一个节点上,所以就存在副本分片指定不明确的问题,所以显示为yellow,我们可以通过在elasticsearch集群上添加一个节点来解决问题,如果不想这么做,可以删除那些指定不明确的副本分片(当然这不是一个好办法)但是作为测试和解决办法还是可以尝试的,下面我们试一下删除副本分片的办法。

解决办法

1、通过使用 es的接口进行修改:(一定要注意引号,分圆半角。)

# 修改 number_of_replicas  
curl -XPUT "http://localhost:9200/_settings" -d‘ { "number_of_replicas" : 0 } ‘ #删除那些指定不明确的副本分片,“0” 则不存在副本。
# 查看修改是否成功
curl -Xget  http://localhost:9200/_settings

2、将es部署为集群,不适用单点。

elasticsearch 单节点常见问题

标签:启动   gre   提示   bash   logs   单节点   数字   使用   列表   

原文地址:https://www.cnblogs.com/idlestation/p/13166848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!