ES集群修改指数副本数报错:只读/允许删除索引

  

ES集群修改指数副本数,报错:指数只读/允许删除(api)

  
原因:
  

es集群数据量增速过快,导致个别es节点节点磁盘使用率在% 80以上,接近% 90,由于西文新节点的数据目录数据存储空间不足,导致从主主节点接收同步数据的时候失败,此时es集群为了保护数据,会自动把索引分片指数置为只读只读的。

  
故障处理办法:
  

1:集群加节点,简单粗暴;

  

2:降低集群指数副本数量;

  

3:其它:增加磁盘,删除历史数据等;

  

我们采用方案2,作为临时应对方案,待集群可以正常数据写入后,再指向步骤1或3者的操作彻底解决问题;

  
操作步骤:
  

1:在Kibana的开发工具开发工具中执行(或在服务器上通过卷发工具发起把请求,下文同)

  

修改索引副本数量为1

  
 <代码>把48 _hot_v1/_settings
  {
  "指数":{
  “number_of_replicas”:“1”
  }
  } 
  
报错如下:
  

api接口执行操作

  
 <代码> {
  “类型”:“cluster_block_exception”,
  “原因”:“被:(禁止/12/索引只读/允许删除(api)];”
  } 
  
报错原因:
  

es磁盘已满而无法索引更多文档,则elasticsearch将切换为只读。它确保了只读查询的可用性.Elasticsearch不会自动切换回来,可以使用如下方法切换回正常模式:

  
 <代码>旋度-XPUT - h“application/json - type:”http://localhost: 9200/_all index.blocks/_settings - d ' {”。read_only_allow_delete”:零}” 
  

或者,在Kibana的开发工具开发工具中执行

  
 <代码> _settings
  {
  "指数":{
  “块”:{
  “read_only_allow_delete”:“假”
  }
  }
  }
   之前
  
验证:查看指定索引的设置信息h5> <代码>得到48 _hot_v1/_settings      查找内容如下:   },   “块”:{   “read_only_allow_delete”:“假”   },    之前   
配置生效后集群开始删除指数副本数据,datanode节点磁盘空间逐步释放。

ES集群修改指数副本数报错:只读/允许删除索引