繁体   English   中英

如何在 AWS Elasticsearch 中分配分片?

[英]How to assign shards in AWS Elasticsearch?

在此处输入图片说明

但是因为我在 AWS 上托管,所以我不允许调用/_settings/_cluster那么我该如何分配这些分片呢?

POST/_cluster时遇到的错误:

{
  "Message": "Your request: '/_cluster' is not allowed."
}

默认情况下,每个主分片创建一个副本分片,并且由于您只有一个节点,因此无法分配副本。

您只需要在创建索引时传递number_of_replicas:0

PUT /my-index
{
    "settings" : {
        "index" : {
            "number_of_shards" : 1, 
            "number_of_replicas" : 0
        }
    }
}

如果以后因为添加新节点而想增加副本分片的数量,可以这样做:

PUT /my-index/_settings
{
    "index" : {
        "number_of_replicas" : 1
    }
}

您尚未提供有关您的系统和要求的其他信息,但我会假设:

1)您不想更改分片的数量(不推荐)。

2 ) 您希望集群状态为绿色。

因此,您似乎需要为您的域分配更多节点。

考虑将主节点的数量增加到 3 个,并确保将它们拆分为 3 个可用区,如下面的 UI 控制台所示:

在此处输入图片说明

检查分配:

$ curl -XGET ES_Endpoint/_cat/allocation?v

您应该会看到您的 8 个主分片在主节点之间平均分配:

shards   disk.indices disk.used disk.avail   disk.total     disk.percent host        ip      node
     3       16.8mb    69.2mb      9.7gb      9.8gb            0        x.x.x.x   x.x.x.x   98da03fa1
     3       11.3mb    63.7mb      9.7gb      9.8gb            0        x.x.x.x   x.x.x.x   aea0f9c9
     2       18.2mb    70.6mb      9.7gb      9.8gb            0        x.x.x.x   x.x.x.x   af7fe965

我还建议您阅读 AWS 上的这篇文章:

我们建议您向每个生产 Amazon ES 域添加三个专用主节点。 永远不要选择偶数个专用主节点。

1 ) 一个专用的主节点意味着在发生故障时您没有备份。

2 ) 两个专用主节点意味着您的集群没有必要的仲裁节点来在发生故障时选择新的主节点。

法定人数是专用主节点的数量 / 2 + 1(向下取整为最接近的整数),Amazon ES 在您创建域时将其设置为 discovery.zen.minimum_master_nodes。

在这种情况下,2 / 2 + 1 = 2。因为一个专用的主节点发生故障,只有一个备份存在,集群没有法定人数,无法选举新的主节点。

3 ) 三个专用主节点,推荐数量,在主节点故障和必要的仲裁 (2) 以选举新主节点时提供两个备份节点。

4 ) 四个专用主节点不超过三个,如果您使用多个可用区,可能会导致问题。

如果一个主节点发生故障,则您有法定人数 (3) 来选举新的主节点。 如果两个节点发生故障,您将失去仲裁,就像使用三个专用主节点一样。

在三可用区配置中,两个可用区有一个专用主​​节点,一个可用区有两个。 如果该可用区出现中断,其余两个可用区将没有必要的法定人数 (3) 来选举新的主节点。

5 ) 拥有五个专用主节点和三个一样有效,并允许您在保持法定人数的同时失去两个节点。 但是由于在任何给定时间只有一个专用主​​节点处于活动状态,因此这种配置意味着要为四个空闲节点付费。 许多用户发现这种故障转移保护级别过高。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM