[解決済み] ElasticSearchです。未割り当てのシャード、修正方法は?
2022-04-29 01:47:03
質問
4つのノードを持つESクラスタを持っています。
number_of_replicas: 1
search01 - master: false, data: false
search02 - master: true, data: true
search03 - master: false, data: true
search04 - master: false, data: true
search03を再起動したところ、問題なくクラスタに再加入しましたが、未割り当てのシャードが7つほど残っていました。
{
"cluster_name" : "tweedle",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 4,
"number_of_data_nodes" : 3,
"active_primary_shards" : 15,
"active_shards" : 23,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 7
}
現在、私のクラスタは黄色い状態になっています。 この問題を解決する最良の方法は何でしょうか?
- シャードを削除(キャンセル)しますか?
- シャードを別のノードに移動しますか?
- ノードにシャードを割り当てるか?
- number_of_replicas' を 2 に更新しますか?
- 全く別のもの?
興味深いことに、新しいインデックスが追加されると、そのノードはそのインデックスに対して作業を開始し、クラスタの他の部分とうまく連携し、未割り当てのシャードはそのまま放置されました。
続いての質問ですが、そもそもこのようなことが起こるのは、私が何か間違ったことをしているのでしょうか? ノードを再起動したときにこのような挙動をするクラスタにはあまり信頼性がありません。
注意 何らかの理由でシングルノードクラスターを運用している場合、単純に以下のようにする必要があるかもしれません。
curl -XPUT 'localhost:9200/_settings' -d '
{
"index" : {
"number_of_replicas" : 0
}
}'
解決方法は?
OK、ESのサポートに助けてもらって解決しました。 全ノード(または原因と思われるノード)のAPIに対して、以下のコマンドを発行してください。
curl -XPUT 'localhost:9200/<index>/_settings' \
-d '{"index.routing.allocation.disable_allocation": false}'
ここで
<index>
は、原因と思われるインデックスです。 心当たりがない場合は、すべてのノードでこれを実行してください。
curl -XPUT 'localhost:9200/_settings' \
-d '{"index.routing.allocation.disable_allocation": false}'
この行をyaml設定に追加して以来、サーバーやサービスの再起動は問題なく行われています。 シャードはすぐに再割り当てされました。
ただし、マシンの RAM が 60G 未満の場合は、利用可能なメモリの半分に設定します。
参考文献
関連
-
SpringBootとElasticsearchの連携
-
Elasticsaerch起動エラー。スレッド "main" で例外発生 java.nio.file.AccessDeniedException:
-
Elasticsearch がエラーで実行される:java.lang.ClassCastException: org.joda.time.DateTime は org.elastic にキャストできない。
-
[解決済み] ElasticSearchからデータを削除する
-
[解決済み] Elasticsearchのシャードとレプリカ
-
[解決済み] タイプを削除せずにインデックス/タイプからすべてのドキュメントを削除する
-
[解決済み] ElasticSearchです。未割り当てのシャード、修正方法は?
-
[解決済み] Elasticsearchと標準的なSQLクエリを比較した場合のユースケースは?[クローズド]
-
[解決済み] Elasticsearch 用語」「マッチフレーズ」「クエリストリング」の違いについて
-
[解決済み] ElasticSearchで単語の一部を検索する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SpringBootとElasticsearchの連携
-
Elasticsaerch起動エラー。スレッド "main" で例外発生 java.nio.file.AccessDeniedException:
-
Elasticsearch がエラーで実行される:java.lang.ClassCastException: org.joda.time.DateTime は org.elastic にキャストできない。
-
[解決済み] ElasticSearchからデータを削除する
-
[解決済み] タイプを削除せずにインデックス/タイプからすべてのドキュメントを削除する
-
[解決済み] Elasticsearch では Content-Type ヘッダ [application/x-www-form-urlencoded] はサポートされていません。
-
[解決済み] ElasticSearchです。未割り当てのシャード、修正方法は?
-
[解決済み] Elasticsearchと標準的なSQLクエリを比較した場合のユースケースは?[クローズド]
-
[解決済み] Elasticsearch 用語」「マッチフレーズ」「クエリストリング」の違いについて
-
[解決済み] ElasticSearchで単語の一部を検索する方法