Elasticsearch - 配置集群感知后所有副本分片都未分配
Elasticsearch - all replica shards are unassigned after configuring cluster awareness
我有一个 (Elasticsearch) 7 节点集群:
6 个节点是 data 和 master 合格节点。
一个是见证和投票节点。
我有两个数据中心,A1 和 A2。
我最近重新配置了 6 个具有集群路由分配意识的数据节点,具体取决于它们所在的数据中心:
A1
node.attr.ABC: A1
cluster.routing.allocation.awareness.attributes: ABC
A2
node.attr.ABC: A2
cluster.routing.allocation.awareness.attributes: ABC
因为我设置了这个并重新启动了所有节点,我看到我所有的副本分片现在都没有分配,并且 只有 个主分片被分配给节点。
如果我尝试使用 allocate_replica 并将其中一个副本移动到 A1/A2 -
上的任一节点
{
"commands": [
{
"allocate_replica": {
"index": "MY_INDEX",
"shard": 0,
"node": "node1.local"
}
}
]
}
我会得到错误:
节点不包含感知属性[A1];所需属性集群设置
我该如何解决这个问题并将我的副本分片正确地重新分配给节点?
GET _cluster/allocation/explain
的回复提供了以下线索:
node does not contain the awareness attribute [A1]; required attributes cluster setting [cluster.routing.allocation.awareness.attributes=A1
您的集群设置似乎包含
cluster.routing.allocation.awareness.attributes: A1
而不是你提到的
cluster.routing.allocation.awareness.attributes: ABC
我有一个 (Elasticsearch) 7 节点集群: 6 个节点是 data 和 master 合格节点。 一个是见证和投票节点。
我有两个数据中心,A1 和 A2。
我最近重新配置了 6 个具有集群路由分配意识的数据节点,具体取决于它们所在的数据中心:
A1
node.attr.ABC: A1
cluster.routing.allocation.awareness.attributes: ABC
A2
node.attr.ABC: A2
cluster.routing.allocation.awareness.attributes: ABC
因为我设置了这个并重新启动了所有节点,我看到我所有的副本分片现在都没有分配,并且 只有 个主分片被分配给节点。
如果我尝试使用 allocate_replica 并将其中一个副本移动到 A1/A2 -
上的任一节点{
"commands": [
{
"allocate_replica": {
"index": "MY_INDEX",
"shard": 0,
"node": "node1.local"
}
}
]
}
我会得到错误:
节点不包含感知属性[A1];所需属性集群设置
我该如何解决这个问题并将我的副本分片正确地重新分配给节点?
GET _cluster/allocation/explain
的回复提供了以下线索:
node does not contain the awareness attribute [A1]; required attributes cluster setting [cluster.routing.allocation.awareness.attributes=A1
您的集群设置似乎包含
cluster.routing.allocation.awareness.attributes: A1
而不是你提到的
cluster.routing.allocation.awareness.attributes: ABC