Q:非洲食人族的酋长吃什么?

滚动重启期间bulk写入数据,bulk部分失败,报primary shard is not active Timeout: [1m]

Elasticsearch | 作者 luxx | 发布于2019年06月27日 | 阅读数:12789

版本6.7.1,3个节点,1节点上EsMaster,2节点上EsMaster、EsClient、EsNode1、EsNode2,3节点上EsMaster、EsClient、EsNode1、EsNode2。
保持写入数据,滚动重启的过程如下:
1.设置cluster.routing.allocation.enable为none;
2.触发_flush/synced(同步刷新不一定能成功)
3.重启节点
4.设置cluster.routing.allocation.enable为all;
5.等待集群状态恢复为green;
6.重复1~5步骤,直至所有节点重启完成。

问题:
在停止某节点后,bulk的response中会有失败的条目,报错为primary shard is not active Timeout: [1m], request: [BulkShardRequest [[myindex-002][3]] containing [198] requests]","type":"unavailable_shards_exception"},"status":503

bulk内部json失败的原因是主分片不可用超时1分钟。
考虑该节点在停止的时候,该节点上的主分片应该已经转到其副本分片所在的节点上去了,为什么会报这个错?

做了实验,在不写数据的情况下,停止某个节点,分片的主副倒换是瞬间完成的。
怀疑是否和只有两个数据节点有关,是否在一个实例停止时,会导致主副倒换变慢。


求教各位。
已邀请:

xiaoyanghapi - Elasticsearch 爱好者

赞同来自:

你的这种情况设置ES写入重试应该就可以了,默认情况下我记得写入重试是不开启的。

要回复问题请先登录注册