2017-03-21 27 views
2

私は5つのプライマリーシャードとレプリカなしのインデックスを持っています。特定のシャードからデータを削除する方法

私のシャード(シャード1)の1つが割り当てられていない状態です。私は、ログファイルをチェックすると、私はエラーの下に見つけた:私は、インデックスをチェックすると

2obv65.nvd, _2vfjgt.fdx, _3e3109.si, _3dwgm5_Lucene45_0.dvm, _3aks2g_Lucene45_0.dvd, _3d9u9f_76.del, _3e30gm.cfs, _3cvkyl_es090_0.tim, _3e309p.nvd, _3cvkyl_es090_0.blm]]; nested: FileNotFoundException[_101a65.si]; ]]

は、私はシャード1ため101a65.siファイルを見つけることができませんでした。

紛失した.siファイルを見つけることができません。私はたくさん試しましたが、シャード1をもう一度割り当てることができませんでした。

シャード1もう一度割り当てることはできますか?またはシャード1のデータをすべて削除する必要がありますか?

お勧めします。

+0

Val..could @あなたはこの上で私を助けてください。 –

+0

どのようにノードは、クラスタで実行していますか? (また、少なくとも1つのレプリカを持っていますか?そうであれば、同じ動作をしますか?)また、実行中のElasticsearchのバージョンは? – Adonis

+0

クラスタに3つのノードがあります。 3つのうち、2つのノードはデータノードであり、1つはマスターノードである。クラスタにレプリカが存在しません。 かなり古いバージョンつまり1.1.2を使用しています。 –

答えて

0

通常、スタックトレースに使用すると、破損したシャードへのパスを参照する必要があり、MMapIndexInput(path="path/to/es/db/nodes/node_number/indices/name_of_index/1/index/some_file)のようなもの(ここでははシャードの数である)

は通常path/to/es/db/nodes/node_number/indices/name_of_index/1はシャードの回復を助ける必要があります削除。あなたはまだそれが割り当てられていない試みはあなたのクラスタにこのコマンドを送信して表示された場合(通常the documentationあたりとして、それが動作するはずです、私はES 1.xの構文とコマンドについてはよく分からないが):

POST _cluster/reroute 
{ 
    "commands" : [ 
     { 
      "allocate" : { 
       "index" : "myIndexName", 
       "shard" : 1, 
       "node" : "myNodeName", 
       "allow_primary": true 
      } 
     } 
    ] 
} 
+0

割り当てられていないシャードが割り当てられるようにクラスタを再起動する必要はありますか? 私は示唆しているように、私は/ var/opt/elasticsearch/data/elasticsearch-sp/nodes/0/index/twitter/1/indexの を削除しましたが、未割り当てのまま。 –

+0

再割り当てコマンドを試しましたか?あなたはまだログにエラーがありますか? – Adonis

+0

それは働いていました...私は再割り当てコマンドを使用してみましたが、シャードは開始状態です。 これはelasticsearch.logファイルで確認できます: [2017-03-21 16:56:11,412] [ INFO] [cluster.routing.allocation] [Agent]クラスタの状態が[RED]から[YELLOW]に変更されました(理由:[shards started [[twitter] [1]] ...)。 おかげさまで、あなたのお世話になりました。 –

関連する問題