ElasticSearchにデータをインサートしようとしたところ、タイトルのエラーが出て困りました。本記事では対処方法をメモしておきます。
結論
ディスク容量を増やせば解決します。
私の場合、Dockerコンテナを使ってElasticSearchを起動しているため、以下のpruneコマンドで不要なDockerオブジェクト(イメージ、コンテナ、ボリューム、ネットワーク等)を削除すると解決しました。
docker system prune
Dockerを使っていない場合もPCのディスク容量を増やすと解決するようです。
詳細
ElasticSearchにデータをインサートしようとしたところ、以下のエラーに遭遇しました。
Elasticsearch::Transport::Transport::ServerError:
[429] {"error":{"root_cause":[{"type":"cluster_block_exception","reason":"index [<index_name>] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"}],"type":"cluster_block_exception","reason":"index [<index_name>] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"},"status":429}
ElasticSearchのドキュメントを確認したところ、ディスク容量が少なくなり、ディスク使用量が基準値(デフォルトで95%)以上になると、インデックスへの書き込みがブロックされるようです。
また、ディスク使用量が基準値を下回ると、自動的にブロックが解除されるようです。
よって、ディスク使用量を減らせばよいです。
私はElasticSearchをDockerコンテナとして起動していたため、上記のとおりpruneコマンドで不要なDockerオブジェクトを削除すると解決しました。
また、こちらの記事によると、Dockerコンテナを使わずにElasticSearchを使用している場合もディスク容量を増やすとデータの書き込みができるようになるようです。
以上、お役に立てれば幸いです。
参考にしたサイト
Fix watermark errors | Elasticsearch Guide [8.10] | Elastic
OpenSearchにデータをインサート時、TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete blockが発生する。 - 表参道25時
OpenSearchにデータを入れるときにエラーが発生し、解決までのメモ
Elasticsearch > index [foo_index] blocked by - Qiita
Macのローカル環境のElasticsearchにデータ追加時に、cluster_block_exceptionが表示された件現象Elasticsearchにデータを追加しようとした時に、書き込…
コメント