1. 程式人生 > >elasticsearch節點資料遷移

elasticsearch節點資料遷移

最近筆者的es叢集有一個節點的機器有硬體問題,準備置換新機器,所以想把這臺機器上的所有es資料都遷移到別的節點上面(一臺機器5T左右的資料,生產網段不考慮物理遷移)。

下面講一下遷移的步驟及方法:

  1. 由於我是單機器跑兩個節點,所以我的節點遷移是分開做的(怕產生太多流量)

    首先遷移一個節點
    PUT _cluster/settings
    {
      "transient" : {
        "cluster.routing.allocation.exclude._name" : " ES5_DATANODE23 "
      }
    }

  2. 觀察叢集,直至沒有任何分片操作。

    遷移第二個節點:
    PUT _cluster/settings
    {
      "transient" : {
        "cluster.routing.allocation.exclude._name" : "ES5_DATANODE3,ES5_DATANODE23"
      }
    }
    觀察叢集,直至沒有任何分片操作。
    到這裡該臺機器應該是沒有任何分片了

  3. 因為筆者的index是保留歷史15天,但是以上的操作是不會操作關掉的index的,所以防止新的index,繼續在這臺機器上產生分片,需做以下操作
    PUT _cluster/settings
    {
      "transient" : {
        "cluster.routing.allocation.exclude._ip" : "127.0.0.1 "(填寫機器ip地址)
      }
    }

  4. 15天后取消該設定,同時下線該機器,value設定為空即可
    PUT _cluster/settings
    {
      "transient" : {
        "cluster.routing.allocation.exclude._name" : " "
      }
    }