假设我有5台机器,我想在上面运行一个elasticsearch集群,它们都连接到一个共享驱动器。我将elasticsearch的一个副本放到了那个共享驱动器上,这样三个人都可以看到它。我只是在我所有机器上的共享驱动器上启动elasticsearch,集群就会自动发挥它的魔力吗?或者,我是否必须配置特定的设置才能让elasticsearch意识到它在5台机器上运行?如果有,相关的设置是什么?我是应该担心副本的配置,还是应该自动处理?
发布于 2013-05-30 02:23:52
这非常简单。
您需要每台机器都有它自己的ElasticSearch副本(只需复制您现在拥有的副本) --原因是每台机器/节点都将保留它自己的文件,这些文件在集群中被分片。
您真正需要做的唯一一件事就是编辑配置文件,使其包含集群的名称。
如果所有机器都有相同的集群名称,elasticsearch将自动完成其余工作(只要机器都在同一网络上)
从这里开始阅读:https://www.elastic.co/guide/en/elasticsearch/guide/current/deploy.html
当您创建索引(数据所在的位置)时,您将定义需要多少个副本(它们将分布在集群中)
发布于 2014-03-04 15:11:48
它通常是自动处理的。
如果自动发现不起作用。通过启用单播发现,编辑弹性搜索配置文件
节点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节点应该是故障转移机制的主节点,它们可能是也可能不是数据节点。
此外,如果自动发现不起作用,最可能的原因是网络不允许它(因此被禁用)。如果在多个服务器上执行过多的自动发现ping操作,则管理这些ping操作的资源将阻止其他服务正常运行。
例如,假设有一个10,000个节点的集群,所有10,000个节点都执行自动ping操作。
发布于 2016-01-24 22:40:47
我尝试了@KannarKK在ES 2.0.2上建议的步骤,但是,我无法启动和运行集群。显然,我发现了一些问题,因为我已经在主服务器上设置了TCP端口号,在Slave配置中,discovery.zen.ping.unicast.hosts需要主服务器的端口号和IP地址(TCP端口号)来进行发现。因此,当我尝试以下配置时,它对我来说是有效的。
节点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"]https://stackoverflow.com/questions/16821101
复制相似问题