也可以使用下面的参数设置不迁移:
<span class="pln" style="color:#000000;">curl </span><span class="pun" style="color:#66660;">-</span><span class="pln" style="color:#000000;">XPUT localhost</span><span class="pun" style="color:#66660;">:</span><span class="lit" style="color:#06666;">9200</span><span class="pun" style="color:#66660;">/</span><span class="pln" style="color:#000000;">_cluster</span><span class="pun" style="color:#66660;">/</span><span class="pln" style="color:#000000;">settings </span><span class="pun" style="color:#66660;">-</span><span class="pln" style="color:#000000;">d </span><span class="str" style="color:#0880;">'{</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="str" style="color:#0880;">"transient"</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">:</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">{</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="str" style="color:#0880;">"cluster.routing.allocation.enable"</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">:</span><span class="pln" style="color:#000000;"> </span><span class="str" style="color:#0880;">"none"</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="pun" style="color:#66660;">}</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="pun" style="color:#66660;">}</span><span class="str" style="color:#0880;">'</span>
<span class="pln" style="color:#000000;">curl </span><span class="pun" style="color:#66660;">-</span><span class="pln" style="color:#000000;">XPUT localhost</span><span class="pun" style="color:#66660;">:</span><span class="lit" style="color:#06666;">9200</span><span class="pun" style="color:#66660;">/</span><span class="pln" style="color:#000000;">_cluster</span><span class="pun" style="color:#66660;">/</span><span class="pln" style="color:#000000;">settings </span><span class="pun" style="color:#66660;">-</span><span class="pln" style="color:#000000;">d </span><span class="str" style="color:#0880;">'{</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="str" style="color:#0880;">"transient"</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">:</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">{</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="str" style="color:#0880;">"cluster.routing.allocation.enable"</span><span class="pln" style="color:#000000;"> </span><span class="pun" style="color:#66660;">:</span><span class="pln" style="color:#000000;"> </span><span class="str" style="color:#0880;">"all"</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="pun" style="color:#66660;">}</span><span class="pln" style="color:#000000;"><br style="" /> </span><span class="pun" style="color:#66660;">}</span><span class="str" style="color:#0880;">'</span>
======================================
cluster.routing.allocation.disable_allocation:
字面理解就是不分配shard。由于Elasticsearch数据迁移的时候必然涉及shard的重新分配,所以这个配置是用来防止在重启节点时,ES的数据发生来回的迁移。
具体测试:
1. 设置不迁移
curl -XPUT localhost:9200/_cluster/settings -d'{"transient":{"cluster.routing.allocation.disable_allocation":true}}'
2. 关闭节点nvlkv14之前
3. 关闭节点nvlkv14之后,可以看出没有做数据迁移
4. 重启几点nvlkv14之后,没有恢复数据
5. 设置迁移
curl -XPUTlocalhost:9200/_cluster/settings -d'{"transient":{"cluster.routing.allocation.disable_allocation":false}}'
数据恢复跟之前的分布式完全一样的
6. 没有设置不能迁移,集体重启之后,数据恢复跟重启之前一样