允许 Elasticsearch 分配索引

编辑

允许 Elasticsearch 分配索引

编辑

数据分配可以使用 启用分配配置来控制。在某些情况下,用户可能希望暂时禁用或限制数据分配。

忘记重新允许所有数据分配可能会导致未分配的分片。

为了(重新)允许所有数据被分配,请按照以下步骤操作

为了让分片被分配,我们需要将限制分片分配的 配置值更改为 all

使用 Kibana

  1. 登录到 Elastic Cloud 控制台
  2. Elasticsearch Service 面板上,单击您的部署名称。

    如果您的部署名称被禁用,则您的 Kibana 实例可能不健康,在这种情况下,请联系 Elastic 支持。如果您的部署不包含 Kibana,您只需 先启用它即可。

  3. 打开您部署的侧边导航菜单(位于左上角的 Elastic 徽标下),然后转到 Dev Tools > 控制台

    Kibana Console
  4. 检查具有未分配分片的索引的 index.routing.allocation.enable 索引设置

    resp = client.indices.get_settings(
        index="my-index-000001",
        name="index.routing.allocation.enable",
        flat_settings=True,
    )
    print(resp)
    response = client.indices.get_settings(
      index: 'my-index-000001',
      name: 'index.routing.allocation.enable',
      flat_settings: true
    )
    puts response
    const response = await client.indices.getSettings({
      index: "my-index-000001",
      name: "index.routing.allocation.enable",
      flat_settings: "true",
    });
    console.log(response);
    GET /my-index-000001/_settings/index.routing.allocation.enable?flat_settings

    响应将如下所示

    {
      "my-index-000001": {
        "settings": {
          "index.routing.allocation.enable": "none" 
        }
      }
    }

    表示当前配置的值,用于控制是否允许索引部分或完全分配。

  5. 更改 配置值,以允许索引完全分配。

    resp = client.indices.put_settings(
        index="my-index-000001",
        settings={
            "index": {
                "routing.allocation.enable": "all"
            }
        },
    )
    print(resp)
    response = client.indices.put_settings(
      index: 'my-index-000001',
      body: {
        index: {
          'routing.allocation.enable' => 'all'
        }
      }
    )
    puts response
    const response = await client.indices.putSettings({
      index: "my-index-000001",
      settings: {
        index: {
          "routing.allocation.enable": "all",
        },
      },
    });
    console.log(response);
    PUT /my-index-000001/_settings
    {
      "index" : {
        "routing.allocation.enable" : "all" 
      }
    }

    my-index-000001 索引的 allocation.enable 配置的新值已更改为允许分配所有分片。