2017-03-02 23 views
1

elasticsearchを1.7から5.2にアップグレードする正しい方法は何ですか?elasticsearchを1.7.xから5.2.xにアップグレード

私は最初に2.4バージョンにアップグレードしようとしましたが、再インデックス手順を実行してからelasticsearch v.5.2をインストールしました。 v.5.2は、ログに開始された場合は、このメッセージを見た:

3)エラーを注入コンストラクタ、java.lang.IllegalStateException: インデックス[[logstash-2017年1月15日/ TK1-FBLGTQGl0vVW1xxPpg]]が で作成されましたバージョン[1.7.3]ですが、最小互換バージョンは[2.0.0-beta1]です。 にアップグレードする前に、Elasticsearch 2.xで再インデックスする必要があります。5.2.2。

official documentationを見ると
+0

どのように再インデックスを行いますか? – yershalom

+0

私は2つのクエリを使用します:この記事[link](https://www.elastic.co/guide/en/elasticsearch/reference/current)のように、 'curl -XPOST 'http:// localhost:9200/_reindex'を再インデックスします。 /docs-reindex.html)、古いインデックスを削除します。 –

答えて

1

あなたはElasticsearch 1.xのクラスタを実行している場合、あなたは2つのオプションがあります。

  • まず5にアップグレードその後、Elasticsearch 2.4.xのにアップグレード古いインデックスのインデックスを再作成。バツ。
  • 新しい5.xクラスタを作成し、reindex-from-remoteを使用してインデックスを1.xクラスタから直接インポートします。

Reindex in place

場所に古い(1.1)インデックスのインデックスを再作成する最も簡単な方法は、Elasticsearch移行プラグインを使用することです。まず、Elasticsearch 2.3.xまたは2.4.xにアップグレードする必要があります。移行プラグインで提供

REINDEXユーティリティは、以下のん:

  • はマッピングと設定をコピー、古いインデックス名(例えばmy_index-2.4.1)に追加Elasticsearchバージョンと新しいインデックスを作成します。古いインデックスから新しいインデックスではリフレッシュが無効になり、効率的な再インデックス作成のためにレプリカ数が0に設定されます。
  • 古い索引にデータが書き込まれないように、古い索引を読み取り専用に設定します。
  • 古いインデックスから新しいインデックスにすべてのドキュメントを再インデックスします。
  • refresh_intervalとnumber_of_replicasを古いインデックスで使用された値にリセットし、インデックスが緑色になるのを待ちます。
  • 古いインデックスに存在していたエイリアスを新しいインデックスに追加します。
  • 古いインデックスを削除します。
  • 古いインデックス名を持つ新しいインデックスにエイリアスを追加します。エイリアスmy_indexはインデックスmy_index-2.4.1を指します。

このプロセスが終了すると、Elasticsearch 5.xクラスタで使用できる新しい2.xインデックスが作成されます。

Upgrading with reindex-from-remote

あなたは1.xのクラスタを実行しているし、最初の2.xのに移行せず5.xのに直接移行したい場合は、REINDEX-からリモートを使用して行うことができます。

既存の1.xクラスタと一緒に5.xクラスタを設定する必要があります。5.xクラスタは、1.xクラスタのREST APIにアクセスする必要があります。

  • は、適切なマッピングおよび設定での5.xに新しいインデックスを作成します:あなたは5.xのクラスターに転送したい各1.xの指標については

    は、あなた を行う必要があります。
  • refresh_intervalを-1に設定し、再インデックスの高速化のためにnumber_of_replicasを0に設定します。
  • reindex-from-remoteを使用して、1.xインデックスのドキュメントを新しい5.xインデックスにプルします。バックグラウンドでreindexジョブを実行すると(wait_for_completionがfalseに設定されている場合)、再インデックス要求はtask_idを返します。タスクIDは、タスクAPIのGET _tasks/TASK_IDにある再インデックスジョブの進行状況を監視するために使用できます。
  • 再インデックスが完了したら、refresh_intervalとnumber_of_replicasを目的の値に設定します(デフォルトはそれぞれ30秒と1です)。
  • 新しいインデックスのレプリケーションが完了したら、古いインデックスを削除できます。
関連する問題