ElasticSearch集群搭建

1.概述

Es是一款开源的基于Lucene的搜索引擎。本文基于es7.17.7和kibana7.17.7版本进行实操。
es7.17.7支持使用JDK1.8。注意不同的版本配置会有差异,要根据具体版本进行配置。

2.单机模式

下载后直接启动即可,没有任何难度。启动后浏览器访问如下地址:

http://127.0.0.1:9200

image.png

3.集群模式

集群模式也只需要简单的配置,三个节点的配置如下,配置文件的路径在目录config下。
节点一

#集群名称,保证唯一
cluster.name: es-cluster
#节点名称,必须不一样
node.name: node-1
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

节点二

#集群名称,保证唯一
cluster.name: es-cluster
#节点名称,必须不一样
node.name: node-2
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9202
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9302
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

节点三

#集群名称,保证唯一
cluster.name: es-cluster
#节点名称,必须不一样
node.name: node-3
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9203
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9303
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

分别启动三个节点,需要等待一会,然后访问如下地址

http://127.0.0.1:9203/_cat/health?v

image.png

集群成功。

4.kibana单机

kibana单机也一样简单,这里演示连接集群,仅需修改配置文件kibana.yml文件中的一个属性。

elasticsearch.hosts: ["http://localhost:9201","http://localhost:9202","http://localhost:9203"]

访问地址

http://localhost:5601

出现界面就标识访问成功

5.总结

部署这套集群环境碰上了一些问题,花费了一些时间才处理成功,总结如下

  • 一开始es采用单机模式启动,生成了单机模式的data文件,集群的时候要删除
  • es的配置参考搜索的内容,由于版本不一致,配置参数不一样,导致集群一致无法正常启动,神奇的问题是一开始居然提示集群成功,为kibana的启动失败问题买下了伏笔
  • kibana启动失败,日志显示创建索引失败,缺少经验,没有发现是es集群的问题,而es的集群提示居然是成功的,这里花费了较多时间排查问题

最终成功的操作是重新es做了一次集群,删除了es的data文件,重新生成。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容