elasticsearch节点数据迁移

最近笔者的es集群有一个节点的机器有硬件问题,准备置换新机器,所以想把这台机器上的所有es数据都迁移到别的节点上面(一台机器5T左右的数据,生产网段不考虑物理迁移)。

下面讲一下迁移的步骤及方法:

首先我的集群的所有index是没有副本的,所以靠副本来做,是不行的,只能通过es官网提供的https://www.elastic.co/guide/en/elasticsearch/reference/5.5/allocation-filtering.html这个方式来做。

  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" : " "
      }
    }
     

         

 

你可能感兴趣的:(elasticsearch)