首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何搭建ES集群?

如何搭建ES集群?
EN

Stack Overflow用户
提问于 2013-05-30 02:16:07
回答 4查看 106.4K关注 0票数 83

假设我有5台机器,我想在上面运行一个elasticsearch集群,它们都连接到一个共享驱动器。我将elasticsearch的一个副本放到了那个共享驱动器上,这样三个人都可以看到它。我只是在我所有机器上的共享驱动器上启动elasticsearch,集群就会自动发挥它的魔力吗?或者,我是否必须配置特定的设置才能让elasticsearch意识到它在5台机器上运行?如果有,相关的设置是什么?我是应该担心副本的配置,还是应该自动处理?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-30 02:23:52

这非常简单。

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

您真正需要做的唯一一件事就是编辑配置文件,使其包含集群的名称。

如果所有机器都有相同的集群名称,elasticsearch将自动完成其余工作(只要机器都在同一网络上)

从这里开始阅读:https://www.elastic.co/guide/en/elasticsearch/guide/current/deploy.html

当您创建索引(数据所在的位置)时,您将定义需要多少个副本(它们将分布在集群中)

票数 53
EN

Stack Overflow用户

发布于 2014-03-04 15:11:48

它通常是自动处理的。

如果自动发现不起作用。通过启用单播发现,编辑弹性搜索配置文件

节点1:

代码语言:javascript
复制
    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:

代码语言:javascript
复制
    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操作。

票数 53
EN

Stack Overflow用户

发布于 2016-01-24 22:40:47

我尝试了@KannarKK在ES 2.0.2上建议的步骤,但是,我无法启动和运行集群。显然,我发现了一些问题,因为我已经在主服务器上设置了TCP端口号,在Slave配置中,discovery.zen.ping.unicast.hosts需要主服务器的端口号和IP地址(TCP端口号)来进行发现。因此,当我尝试以下配置时,它对我来说是有效的。

节点1

代码语言:javascript
复制
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

代码语言:javascript
复制
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"]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16821101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档