ElasticSearch笔记系列(2)——ES分布式集群环境搭建

本文在前一篇单例ES节点搭建的基础上,介绍如何搭建分布式的Elastic集群。

我们本文的示例是在本地环境模拟搭建一个一主二从的ES分布式集群。

搭建主节点

我们在elasticesearch.yml的设置追加以下几个配置项。

集群名称为happybkscluster

节点名称命名为master,当然也可以叫别的

但是,设置为主节点,需要配置node.master为true

最后绑定自己的IP地址。


http.cors.enabled: true
http.cors.allow-origin: "*"


cluster.name: happybkscluster
node.name: master
node.master: true

network.host: 127.0.0.1

访问head插件的访问页面http://127.0.0.1:9100/

可以卡看到我们有一个主节点master。

请求http://127.0.0.1:9200/

{
  "name" : "master",
  "cluster_name" : "happybkscluster",
  "cluster_uuid" : "-mZesQGzQP6kVcuwhrIMVQ",
  "version" : {
    "number" : "5.6.8",
    "build_hash" : "688ecce",
    "build_date" : "2018-02-16T16:46:30.010Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

搭建一个从节点

然后我们再配置一个slave。

我因为是在windows上模拟整个过程,所以讲elastic文件夹另外拷贝了一份,然后配置其elasticsearch.yml

cluster.name: happybkscluster
node.name: slave1

network.host: 127.0.0.1
http.port: 9201

discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

(本文出自oschina博主happybks的博文:https://my.oschina.net/happyBKs/blog/1790804,转载请注明)

这里需要注意,slave的集群名称需要和刚才master的集群名称一致。

改slave我们命名为slave1

绑定IP仍是127.0.0.1,由于是本地模拟嘛。响应地,为了防止本地端口冲突,我们将slave1的端口设置为9201

最后我们需要配置一个discovery.zen.ping.unicast.host: ["127.0.0.1"]

它的作用是告诉从机,主机在哪里,配置值为一个IP地址列表,存放master的IP地址

然后我们启动slave的es实例

PS D:\IDE\elasticsearch-5.6.8-slave1\bin> .\elasticsearch.bat -d

这里需要注意的是 -d

还有个坑请大家注意:如果你和我一样是把刚才运行过的主机的elasticsearch的整包目录拷贝一份,并修改配置得到的从机elasticsearch实例目录。那么,请一定把从机elasticsearch的data目录清空,logs最好也一并清空。否则会出现问题。

我们可以看到,现在head页面上有两个节点实例了,五角星代表master节点,圆点代表slave节点,旁边的master和slave1都只是节点node的名称。

搭建第二个从节点

同样的,我们再复制一份elasticsearch目录,配置第二个slave,命名为slave2

cluster.name: happybkscluster
node.name: slave2

network.host: 127.0.0.1
http.port: 9202
#transport.tcp.port: 9302

discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

顺便说一下,transport.port是节点间的通信,可以不配置,es将自动分配。

可以参考两篇博文:

https://www.cnblogs.com/wxw16/p/6160186.html

https://www.cnblogs.com/hanyouchun/p/5163183.html

我们启动slave2的es实例:

命令什么日志信息都不会打印出现,这时候等待一段时间,刷新一下head主页,可以发现slave2出现了。如果没有出现,多等待一会儿。

总结:

从上面可以看出,ES的分布式扩容是十分容易的,只需要这样简单的复制和配置,就可以扩容ES分布式集群中的节点。

猜你喜欢

转载自my.oschina.net/happyBKs/blog/1790804