elasticsearch 单节点常见问题
Posted idlestation
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch 单节点常见问题相关的知识,希望对你有一定的参考价值。
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 单节点常见问题的主要内容,如果未能解决你的问题,请参考以下文章