Reasons for unassigned shard: These are the possible reasons for a shard to be in a unassigned state: 1. INDEX_CREATED    Unassigned as a result of an API creation of an index.    索引创建  由于API创建索引而未分配的 2. CLUSTER_RECOVERED    Unassigned as a result of…
一.精确定位到有问题的shards 1.查看哪些分片未被分配 curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED 2.如果您运行的是Elasticsearch的5+版本,您还可以使用群集分配说明API来尝试获取有关分片分配问题的更多信息: curl -XGET localhost:9200/_cluster/allocation/explain?pr…
elasticsearch可以通过reroute api来手动进行索引分片的分配. 不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点.数据量很少的时候,可能影响不大,但是如果数据量很大,这个参数必须要设置,因为如果不设置,即便你不手动迁移分片,在我们重启机群的时候,也会产生分片的迁移,导致大量资源被占…
分片未分配的原因主要有: 1)INDEX_CREATED:由于创建索引的API导致未分配.2)CLUSTER_RECOVERED :由于完全集群恢复导致未分配.3)INDEX_REOPENED :由于打开open或关闭close一个索引导致未分配.4)DANGLING_INDEX_IMPORTED :由于导入dangling索引的结果导致未分配.5)NEW_INDEX_RESTORED :由于恢复到新索引导致未分配.6)EXISTING_INDEX_RESTORED :由于恢复到已关闭的索引导致…
强制重置未分片的分片,这个问题源自于Elasticsearch维护中,Node意外退出的场景. 意外退出后Elasticsearch由于网络原因或者jvm性能压力,未能短时间内分配分片. 看一下分片的状态.可以看到有一些分片处于未分配状态. curl http://10.93.21.21:8049/_cat/shards 我们这里是node-client09节点挂掉了,重启这个节点之后,通过下面的脚本,可以将分片重新分派到node-client09. NODE="node-client09&qu…
指標要點: Cluster status: 如果集群狀態為黃色,則至少有一個副本分片未分配或丟失. 搜索結果仍將完成,但如果更多的分片消失,您可能會丟失數據. 紅色的群集狀態表示至少有一個主分片丟失,並且您缺少數據,這意味著搜索將返回部分結果. 您也將被阻止索引到該分片. Consider setting up an alert to trigger if status has been yellow for more than 5 min or if the status has been r…
Elasticsearch 是一个非常通用的平台,支持各种用户实例,并为组织数据和复制策略提供了极大的灵活性.但是,这种灵活性有时会使我们很难在早期确定如何很好地将数据组织成索引和分片,尤其是不熟悉 Elastic Stack.虽然不一定会在首次启动时引起问题,但随着数据量的增长,它们可能会导致性能问题.群集拥有的数据越多,纠正问题也越困难,因为有时可能需要重新索引大量数据.      因此,当我们遇到性能问题时,往往可以追溯到索引方式以及集群中分片的数量.那么就会遇到问题,我们应该有多少分片以…
摘自:http://unasm.com/2016/11/644/ 在通过 /_cluster/state 命令查看es 状态的时候,发现es 处于一个yellow的状态, 这个很奇怪,按照官方的解释,就是所有主分片都是处于可用状态,但是有复制分片不可用.为什么有复制分片不可用呢? 通过/_cat/shards 查看,发现有从分配处于一个未分配的状态,该命令该出的数据奇怪的地方是,我的集群明明有三台机器,但是shareds里面只给出了两台. data 2 r STARTED 449516 1.6g…
elasticsearch用于构建高可用和可扩展的系统.扩展的方式可以是购买更好的服务器(纵向扩展)或者购买更多的服务器(横向扩展),Elasticsearch能从更强大的硬件中获得更好的性能,但是纵向扩展也有一定的局限性.真正的扩展应该是横向的,它通过增加节点来传播负载和增加可靠性.对于大多数数据库而言,横向扩展意味着你的程序将做非常大的改动来利用这些新添加的设备.对比来说,Elasticsearch天生是分布式的:它知道如何管理节点来提供高扩展和高可用.这意味着你的程序不需要关心这些.对于大…
本文由云+社区发表 作者:老生姜 一.遇到的问题 与大多数分布式系统一样,Elasticsearch按照一定的Hash规则把用户数据切分成多个分片,然后打散到不同机器进行存储,从而实现大规模数据的分布式存储. cluster.png 然而在一些复杂的应用场景中使用Elasticsearch,经常会遇到分片过多引发的一系列问题.起初我们在支撑内部某业务时,单集群内有约1000个子业务,大部分子业务保留31天的数据.如果每个子业务按天滚动建立Index,每个Index 5个分片.一主两从共三副本的情…