MST
星途 面试题库

面试题:ElasticSearch选主相关配置的动态调整 - 基础应用

在ElasticSearch中,简要说明涉及选主相关的主要配置参数有哪些,并阐述如何在不重启集群的情况下动态调整其中一个关键配置参数,以适应集群规模的变化?
41.9万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

选主相关主要配置参数

  1. node.master
    • 作用:定义该节点是否有资格成为主节点。设置为 true 表示该节点有资格参与主节点选举,false 则无资格。例如,在数据节点上可将此参数设为 false,以避免其参与主节点竞选,减少资源消耗。
  2. discovery.seed_hosts
    • 作用:指定用于发现集群中其他节点的主机列表。这些主机是集群启动时进行节点发现的初始种子节点。例如,在一个包含三个节点的集群中,可以设置为 ["node1:9300", "node2:9300", "node3:9300"],使得节点启动时能通过这些种子节点发现集群中的其他节点。
  3. cluster.initial_master_nodes
    • 作用:在集群首次启动时,用于指定哪些有资格成为主节点的节点将参与初始化主节点选举。例如,对于一个新的三节点集群,可设置为 ["node1", "node2", "node3"],其中 node1node2node3 为有资格成为主节点的节点名称。这有助于在首次启动时快速、准确地选举出主节点,避免脑裂等问题。

动态调整关键配置参数(以 cluster.initial_master_nodes 为例)

  1. 使用 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 参数,以适应集群规模的变化,比如添加或移除有资格成为主节点的节点。在实际操作前,要确保新添加的节点已正确配置且可被集群发现,移除节点时要确认该节点已安全下线,避免集群出现异常。