面试题答案
一键面试选主相关主要配置参数
- node.master:
- 作用:定义该节点是否有资格成为主节点。设置为
true
表示该节点有资格参与主节点选举,false
则无资格。例如,在数据节点上可将此参数设为false
,以避免其参与主节点竞选,减少资源消耗。
- 作用:定义该节点是否有资格成为主节点。设置为
- discovery.seed_hosts:
- 作用:指定用于发现集群中其他节点的主机列表。这些主机是集群启动时进行节点发现的初始种子节点。例如,在一个包含三个节点的集群中,可以设置为
["node1:9300", "node2:9300", "node3:9300"]
,使得节点启动时能通过这些种子节点发现集群中的其他节点。
- 作用:指定用于发现集群中其他节点的主机列表。这些主机是集群启动时进行节点发现的初始种子节点。例如,在一个包含三个节点的集群中,可以设置为
- cluster.initial_master_nodes:
- 作用:在集群首次启动时,用于指定哪些有资格成为主节点的节点将参与初始化主节点选举。例如,对于一个新的三节点集群,可设置为
["node1", "node2", "node3"]
,其中node1
、node2
、node3
为有资格成为主节点的节点名称。这有助于在首次启动时快速、准确地选举出主节点,避免脑裂等问题。
- 作用:在集群首次启动时,用于指定哪些有资格成为主节点的节点将参与初始化主节点选举。例如,对于一个新的三节点集群,可设置为
动态调整关键配置参数(以 cluster.initial_master_nodes
为例)
- 使用 Elasticsearch API:
- Elasticsearch 提供了动态更新集群设置的 API。首先,需要通过
PUT _cluster/settings
API 来进行操作。 - 示例请求:
PUT _cluster/settings { "persistent": { "cluster.initial_master_nodes": ["new_node1", "new_node2"] } }
- 上述请求中,
persistent
表示该设置会持久化到配置文件中,下次集群重启依然生效。通过这种方式,可以在不重启集群的情况下动态调整cluster.initial_master_nodes
参数,以适应集群规模的变化,比如添加或移除有资格成为主节点的节点。在实际操作前,要确保新添加的节点已正确配置且可被集群发现,移除节点时要确认该节点已安全下线,避免集群出现异常。
- Elasticsearch 提供了动态更新集群设置的 API。首先,需要通过