如何设置ES群集?

假设我有5台机器,我想运行一个elasticsearch集群,并且它们都连接到共享驱动器。 我把一个elasticsearch的副本放在共享驱动器上,这样三个人都可以看到它。 我是否可以在我的机器上启动对共享驱动器的弹性search,并且集群会自动运行它的魔法? 或者我必须configuration特定的设置,以获得elasticsearch,以实现它在5台机器上运行? 如果是这样,那么相关的设置是什么? 我应该担心configuration副本还是自动处理?

它超级简单。

您需要每台机器都拥有自己的ElasticSearch副本(只需复制您现在拥有的副本),原因是每台机器/节点都将保留自己的文件,这些文件在整个群集中被分割。

你唯一需要做的就是编辑configuration文件来包含集群的名字。

如果所有机器具有相同的群集名称,elasticsearch将自动完成剩余的机器(只要机器全部位于同一networking中)

在这里阅读,让你开始: https : //www.elastic.co/guide/en/elasticsearch/guide/current/deploy.html

当你创build索引(数据去的地方)时,你可以定义你想要的副本数量(它们将分布在集群周围)

它通常是自动处理的。

如果自动发现不起作用。 通过启用单播发现来编辑弹性searchconfiguration文件

节点1:

cluster.name: mycluster node.name: "node1" node.master: true node.data: true discovery.zen.ping.multicast.enabled: false discovery.zen.ping.unicast.hosts: ["node1.example.com"] 

节点2:

  cluster.name: mycluster node.name: "node2" node.master: false node.data: true discovery.zen.ping.multicast.enabled: false discovery.zen.ping.unicast.hosts: ["node1.example.com"] 

依此类推节点3,4,5。 使节点1主,其余只作为数据节点。

编辑:请注意,通过ES规则,如果您有N节点,那么按照惯例, N/2+1节点应该是主机故障切换机制,但它们可能是也可能不是数据节点。

此外,如果自动发现不起作用,最可能的原因是因为networking不允许(因此禁用)。 如果跨多台服务器发生过多的自动发现ping,则pipe理这些ping的资源将阻止其他服务正常运行。

例如,考虑一个10,000个节点的集群和所有的10000个节点进行自动ping。

我尝试了@KannarKK在ES 2.0.2上build议的步骤,但是我无法启动集群并运行。 显然,我想出了一些东西,因为我在主设备上设置了tcp端口号,在从属configurationdiscovery.zen.ping.unicast.hosts需要主端口号和IP地址(tcp端口号)以供发现。 所以当我尝试下面的configuration时,它适用于我。

节点1

 cluster.name: mycluster node.name: "node1" node.master: true node.data: true http.port : 9200 tcp.port : 9300 discovery.zen.ping.multicast.enabled: false # I think unicast.host on master is redundant. discovery.zen.ping.unicast.hosts: ["node1.example.com"] 

节点2

 cluster.name: mycluster node.name: "node2" node.master: false node.data: true http.port : 9201 tcp.port : 9301 discovery.zen.ping.multicast.enabled: false # The port number of Node 1 discovery.zen.ping.unicast.hosts: ["node1.example.com:9300"]