二つの比較的良いESクラスタがデータを移動する方法

3902 ワード

記事の目次
  • O、プロフィール
  • 、elasticdumpツールを使って
  • を移動します.
  • .nodejsをインストールします.(インストールしたら無視してください.)
  • .レベルアップnodejs
  • .elasticdumpツールをインストールする
  • .指定インデックスのsettings,mapping,data
  • を移動します.
  • 、ESの持参スナップショットを使ってファイルストアにバックアップして、
  • を移動します.
  • .ソースESクラスタ指定共有フォルダ
  • 1.ソースESクラスタにおいて、repository
  • を作成する.
  • .スナップショットを作成する
  • .移動源ESクラスタsnapshotからターゲットESクラスタの倉庫
  • .ターゲットESクラスタ作成repository
  • .新しいクラスタはスナップショット情報
  • を参照する.
  • .スナップショットから
  • を回復する.
    O、概要
    二つの比較的良いESクラスタがデータを移動する方法を紹介します.以下は2つの方法についての具体的な説明であり、実践的検証を経て通過した. 1、オープンソースツールelasticdumpを利用して移動します.利点は、操作が簡単であり、クラスタを再起動する必要がないことである.欠点は、伝送が遅いので、大きなデータ量の伝送には適用されず、集合群間でhttpポートを使用してクラスタ帯域幅を占有することである.主にまだ遅いです 2、ESが持参したスナップショットを使ってファイルストアにバックアップして移動します.ディスクを書くので、新しいクラスタサーバにコピーして、スナップショットから回復します.大きなデータ量のシーンに適用されます.
    一、elasticdumpツールを使って移動する
    0.nodejsをインストールする(インストールしたら無視してください)
    実行
    yum install -y nodejs
    
    1.アップグレードnodejs
    実行
    npm install -g n
    n latest
    
    2.elasticdumpツールのインストール
    実行
    npm install elasticdump -g
    
    3.指定された索引のsettings,mapping,dataを移動します.
    実行
    elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=settings
    elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=mapping
    elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=data
    
    二、ESの持参スナップショットを使ってファイルの保存に移します.
    0.ソースESクラスタ指定共有フォルダ
    保証/data/backupディレクトリが存在し、且つelastic起動ユーザに属する.
    mkdir /data/backups
    chown -R elastic:elastic /data/backups
    
    vim masterノードelasticsearch.yml追加行
    path.repo: ["/data/backups"]
    
    マスターノードを再起動して有効にします.
    1.ソースESクラスタにrepositoryを作成する
    実行コマンド
    curl -XPUT http://fromhost:9200/_snapshot/my_repository  -d '{
        "type": "fs", 
        "settings": {
            "location": "/data/backups" 
        }
    }'
    
    2.スナップショットを作成する(スナップバックデータ)
    curl -XPUT http://fromhost:9200/_snapshot/my_repository/snapshot_20191114?wait_for_completion=true  -d '{
        "indices": "indexname"
    }'
    
    バックアップ完了後のフォルダ/data/backupディレクトリの下にバックアップファイルがあります.
    3.移動ソースESクラスタsnapshotからターゲットESクラスタの倉庫まで
    コピー/data/backup/my_backupは新しいesクラスタマシンに行きます.
    4.ターゲットESクラスタ作成repository
    curl -XPUT http://tohost:9200/_snapshot/my_repository  -d '{
        "type": "fs", 
        "settings": {
            "location": "/data/backups" 
        }
    }'
    
    5.新しいクラスタはスナップショット情報を確認する
    curl -XGET http://tohost:9200/_snapshot/my_repository/_all
    
    6.スナップショットからの復帰
    curl -XPOST http://tohost:9200/_snapshot/my_repository/snapshot_20191114/_restore