作者回复: 3个节点,不设置成2,万一有一个节点因为网络问题和另外两个节点断开连接,自己成为一个active master节点,这也是就是所谓的脑裂。设置成2,这一个节点就不会成为主节点
作者回复: 如果没有大量的写入,count值基本还是准确的。但是万一集群的性能出现了一些问题,数据在持续不断的写入时,你就有可能碰到count数值忽大忽小到的情况。因为统计来自不同的分片,而分片上的数据还在同步,并没有完成达到一致。
作者回复: ES的每个节点都设置一个相同的集群名字,他们就会自动组成一个集群。 理论上你访问每个节点的hostname+9200端口,就可以访问整个集群上的数据。 再生产环境,通常会设置一个负载均衡,将http请求,分发到后面的每一个节点上
作者回复: 任何节点都会承担coordinate node 节点。如果你把master ingest 或者data设置成false,那就是一台dedicated 的coordinate 节点。 所以你说的情况不存在:)
作者回复: 启动两个节点会挤掉active master 这个问题我没碰到过,有相关的日志吗? 发生了脑裂,会导致数据问题,所以应该是定期备份,发生脑裂后才能实现数据的恢复。
作者回复: 黄色 代表有副本分片无法分配。你可以通过> curl localhost:9200/_cat/allocation?v 查看具体的信息
作者回复: 报什么错?
作者回复: 不同机器的集群,不是很明白指的是什么?
作者回复: 看不到具体的数据,这个我很难回答。不知道你是否设置了什么定时的任务?或者同hypervisor上跑了什么任务? 你可以尝试通过安装packetbeat,结合kibana对网络数据做出分析。 packetbeat的安装你可以自行查阅文档,相关的课程最近也会放出。
作者回复: 第一个问题:如果你有用到pipeline,如果你唯一的ingest node 挂了,那pipeline将无法正常工作,会影响数据写入。如果你将写操作发给coordinating node 也可以 第二个问题:当集群中,丢了两个master 节点,只剩下一个节点。因为你之前设置了最小的选举数,因此,一个master 节点无法正常工作。所以,你应该尽量避免 master 节点处于同一台机器,或者是同一个机架上