多机上的Elasticsearch集群-master选举

标签 elasticsearch cluster-computing

我正在尝试实现elasticsearch集群。我有 2 台机器,每台机器有 2 个节点。我在 yml 文件中有以下配置。我在每个节点上都给出了唯一的节点名称,它们都是主节点和数据节点。

cluster.name: elasticsearch
node.master: true
node.data: true
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["machine1", "machine2"]
discovery.zen.minimum_master_nodes: 3

集群中的四个节点工作正常。我想关闭其中一个节点,并让其他 3 个节点在集群中运行。当我尝试引入前三个之一时,集群出现故障,出现此错误

{
   "error": "ClusterBlockException[blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];]",
   "status": 503
}

如果我关闭加入集群的最后一个节点,则集群工作正常。我的理解是,如果我有 4 个主站,并且其中一个主站(任意)出现故障,则其他三个主站应该在集群中运行。我的配置有问题吗?

最佳答案

如果您在一台计算机上运行节点,最好将端口添加到您的配置中。

 discovery.zen.ping.unicast.hosts: ["machine1:9300", "machine2:9300", "machine2:9301"]

然后自己配置端口,以便知道哪个节点有哪个端口:

 transport.tcp.port: 9300
 http.port: 9200

关于多机上的Elasticsearch集群-master选举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113433/

相关文章:

elasticsearch - ElasticSearch错误:QueryParsingException [[mongoindex]找不到geo_point字段[pin.location]];

redis - 如何搭建一个简化的redis集群(支持数据分片、负载均衡)?

hadoop - 在 YARN 上运行 Spark-Submit 但不平衡(只有 1 个节点在工作)

azure - 如何维护部署在访问外部资源的多个集群中的 Service Fabric 微服务的状态

ejb - 如何在WebLogic中设置虚拟主机?

elasticsearch - ElasticSearch搜索查询处理

ruby-on-rails - Rails 中 ElasticSearch 和 AJAX 请求的 X-CSRF-Token 错误

elasticsearch - 应该使用哪个来搜索XGET或XPOST

java - 如何将 CRON 任务设置为每组实例仅运行一次?

ruby-on-rails - Elasticsearch,multi_match,ruby上的ruby