背景
最近使用脚本将 50w+ 数据写入Elasticsearch中时,中途报错:'error': {'type': 'cluster_block_exception', 'reason': 'blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];'}
;后来查询才知道是 ES 认为磁盘存储百分比低于阈值时自动将其转为只读模式。
解决方法
Solution 1: free up disk space
首先清理磁盘空间,然后解锁索引;
$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Solution 2: change the flood stage watermark setting
降低磁盘阈值百分比或者绝对值
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.disk.watermark.low": "100gb",
"cluster.routing.allocation.disk.watermark.high": "50gb",
"cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
"cluster.info.update.interval": "1m"
}
}