2016-11-12 13 views
1

私のESクラスタでは、10個のシャードと5個のノードを持つ2つのレプリカがあります。私はクラスタに新しいノードを追加したばかりで、クラ​​スタと同期しています。ステータスは緑色で、クラスタAPIによれば、クラスタには6つのアクティブなデータノードがあります。しかし、 `` http://localhost:9200/_cat/shards 'をチェックすると、このノードにはシャードが割り当てられません。したがって、新しく追加されたこのノードには、弾性クエリは送られません。このノードのログファイルには特別なものはありません。新しく追加されたノードにelasticsearchシャードが割り当てられていません

[2016-11-12 14:39:21,114][INFO ][node      ] [xxx] initializing ... 
[2016-11-12 14:39:22,801][INFO ][plugins     ] [xxx] modules [reindex, lang-expression, lang-groovy], plugins [], sites [] 
[2016-11-12 14:39:22,843][INFO ][env      ] [Chak] using [1] data paths, mounts [[/ (/dev/sda1)]], net usable_space [531gb], net total_space [879.9gb], spins? [no], types [ext4] 
[2016-11-12 14:39:22,843][INFO ][env      ] [xxx] heap size [989.8mb], compressed ordinary object pointers [true] 
[2016-11-12 14:39:22,844][WARN ][env      ] [xxx] max file descriptors [65535] for elasticsearch process likely too low, consider increasing to at least [65536] 
[2016-11-12 14:39:31,375][INFO ][node      ] [xxx] initialized 
[2016-11-12 14:39:31,377][INFO ][node      ] [xxx] starting ... 
[2016-11-12 14:39:32,616][INFO ][transport    ] [xxx] publish_address {192.168.200.8:9300}, bound_addresses {192.168.200.8:9300} 
[2016-11-12 14:39:32,637][INFO ][discovery    ] [xxx] divar_elastic/GwfnlWtzTDGv42bZA2PcMA 
[2016-11-12 14:39:36,042][INFO ][cluster.service   ] [xxx] detected_master {xxx}{907DRgSbTv2T-dcDOwPfSw}{192.168.200.7}{192.168.200.7:9302}, added {{xxx}{TAgbh6SmShKCPEPBtUXyXw}{192.168.200.3}{192.168.200.3:9300},{xxx}{907DRgSbTv2T-dcDOwPfSw}{192.168.200.7}{192.168.200.7:9302},{xxx}{C_b3gDlpTfu1zt0RdDlckw}{192.168.200.13}{192.168.200.13:9300},{xxx}{lYOnZzFPTiuJr7JoMNfK5g}{192.168.200.4}{192.168.200.4:9300},{xxx}{BSzFHsAMRyq8cqMh22GSKg}{192.168.200.11}{192.168.200.11:9300},}, reason: zen-disco-receive(from master [{Nar}{907DRgSbTv2T-dcDOwPfSw}{192.168.200.7}{192.168.200.7:9302}]) 
[2016-11-12 14:39:36,143][INFO ][cluster.routing.allocation.decider] [Foo] updating [cluster.routing.allocation.disk.watermark.low] to [93%] 
[2016-11-12 14:39:36,143][INFO ][cluster.routing.allocation.decider] [Foo] updating [cluster.routing.allocation.disk.watermark.high] to [97%] 
[2016-11-12 14:39:37,661][INFO ][http      ] [xxx] publish_address {192.168.200.8:9200}, bound_addresses {192.168.200.8:9200} 
[2016-11-12 14:39:37,664][INFO ][node      ] [xxx] started 

この問題を解決する方法についての特別な意見はありますか?

+0

問題は解決され、ここで解決されます:http://superuser.com/questions/980607/elasticsearch-not-assigning-shards-to-a-new-node – Pooya

答えて

0

これにはいくつかの理由が考えられます。

ノードがクラスタを離れるか、マスターノードが一時的に不リバランスの破片上のリソースの浪費を避けるためにシャードの再割り当てを遅らせる参加し
  1. 。 遅延タイムアウトを確認してください。

    curl -XPUT 'localhost:9200/<INDEX_NAME>/_settings' -d ' { "settings": { "index.unassigned.node_left.delayed_timeout": "30s" } }

  2. あなたはシャードの割り当てがfalseに設定されているかどうかを確認する必要があります。シャードの再割り当てを再度有効にする。

    curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "all" } }'

上記のすべてが良好である場合は、それがノードにデータを与えていない理由として、マスターログを確認する必要があります。最悪の場合は、クラスタを再起動する必要があります。一度に1つのノードのローリング・ストップ・スタートを実行できます。

0

新しいノードを追加すると、Elasticsearchはデータの再調整をトリガーしません。実際には、ネットワークを飽和させたり、文書の索引付けや問合せに集中する必要がある場合には、クラスタに負担をかける可能性があります。

手動APIを再ルーティング/ _cluster経由で新しいノードに破片を移動することができます(https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html

別のオプション(と、私はこのようなもののために使用する傾向がある1)あなたへの過渡的設定を適用することができますですディスクベースの透かし(例:https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html)。 /_cat/allocation?vを見て、古いノードが(たとえば)60%のディスク使用率を持っていることに気がついたら、古いウォーターマークの設定を55%のようなものに下げることができます。ディスク容量を消費します。これを行う場合は、ESがデータを移動した後に一時的な設定をリセットするようにしてください。

関連する問題