允许 Elasticsearch 在系统中分配数据
编辑允许 Elasticsearch 在系统中分配数据
编辑Elasticsearch 部署中的数据分配可以使用启用集群分配配置进行控制。在某些情况下,用户可能希望临时禁用或限制系统中数据的分配。
忘记重新允许所有数据分配可能导致未分配的分片。
为了(重新)允许分配所有数据,请按照以下步骤操作
为了使分片被分配,我们需要更改限制分片分配的配置的值,以允许分配所有分片。
我们将通过检查系统范围的 cluster.routing.allocation.enable
集群设置并将配置的值更改为 all
来实现此目的。
使用 Kibana
- 登录到 Elastic Cloud 控制台。
-
在 Elasticsearch Service 面板上,单击您的部署的名称。
如果您的部署的名称被禁用,则您的 Kibana 实例可能不健康,在这种情况下,请联系 Elastic 支持。如果您的部署不包含 Kibana,您只需先启用它即可。
-
打开您的部署的侧边导航菜单(位于左上角的 Elastic 徽标下),然后转到 Dev Tools > Console。
-
检查
cluster.routing.allocation.enable
集群设置resp = client.cluster.get_settings( flat_settings=True, ) print(resp)
response = client.cluster.get_settings( flat_settings: true ) puts response
const response = await client.cluster.getSettings({ flat_settings: "true", }); console.log(response);
GET /_cluster/settings?flat_settings
响应将如下所示
-
resp = client.cluster.put_settings( persistent={ "cluster.routing.allocation.enable": "all" }, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'cluster.routing.allocation.enable' => 'all' } } ) puts response
const response = await client.cluster.putSettings({ persistent: { "cluster.routing.allocation.enable": "all", }, }); console.log(response);
为了使分片被分配,我们需要更改限制分片分配的配置的值,以允许分配所有分片。
我们将通过检查系统范围的 cluster.routing.allocation.enable
集群设置并将配置的值更改为 all
来实现此目的。
-
检查
cluster.routing.allocation.enable
集群设置resp = client.cluster.get_settings( flat_settings=True, ) print(resp)
response = client.cluster.get_settings( flat_settings: true ) puts response
const response = await client.cluster.getSettings({ flat_settings: "true", }); console.log(response);
GET /_cluster/settings?flat_settings
响应将如下所示
-
resp = client.cluster.put_settings( persistent={ "cluster.routing.allocation.enable": "all" }, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'cluster.routing.allocation.enable' => 'all' } } ) puts response
const response = await client.cluster.putSettings({ persistent: { "cluster.routing.allocation.enable": "all", }, }); console.log(response);