zoukankan      html  css  js  c++  java
  • elasticsearch 手动控制分片分布

    elasticsearch可以通过reroute api来手动进行索引分片的分配。 
    不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点。 

    一共有三种操作,分别为:移动(move),取消(cancel)和分配(allocate)。下面分别介绍这三种情况: 
    移动(move) 
    把分片从一节点移动到另一个节点。可以指定索引名和分片号。 
    取消(cancel) 
    取消分配一个分片。可以指定索引名和分片号。node参数可以指定在那个节点取消正在分配的分片。allow_primary参数支持取消分配主分片。 
    分配(allocate) 
    分配一个未分配的分片到指定节点。可以指定索引名和分片号。node参数指定分配到那个节点。allow_primary参数可以强制分配主分片,不过这样可能导致数据丢失。 

    下面是个简单的例子: 

    1. curl -XPOST 'localhost:9200/_cluster/reroute' -d '
      {
      
          "commands": [
              {
                  "move": {
                      "index": "test", 
                      "shard": 0, 
                      "from_node": "node1", 
                      "to_node": "node2"
                  }, 
                  "cancel": {
                      "index": "test", 
                      "shard": 0, 
                      "node": "node1"
                  }
              }, 
              {
                  "allocate": {
                      "index": "test", 
                      "shard": 1, 
                      "node": "node3"
                  }
              }
          ]
      } 

     来个奇葩的 比如es节点所有都挂掉了  恢复的时候主副分片什么的都自动恢复不了,这个时候我们得自己指定 主分片

    curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
        "commands": [{
            "allocate": {
                "index": "my-index",
                "shard": 4,
                "node": "search03",
                "allow_primary": 1
            }
        }]
    }'
  • 相关阅读:
    在windows环境中使用varnish
    CENTOS 5.5 64位 编译安装 webbench 1.5网站压力测试工具
    CentOS设置时间
    Tomcat性能优化
    Squid 2.6 2.7 3.0 3.1 以及 varnish 2.1.5 性能对比测试
    Varnish加速网站图片显示
    保护你的Web服务器 iptables防火墙脚本全解读
    纯静态文件环境下的Nginx优化思路
    tomcat报 Context [] startup failed due toprevious errors
    siege工具安装
  • 原文地址:https://www.cnblogs.com/huangpeng1990/p/4364350.html
Copyright © 2011-2022 走看看