ElasticSearch搭建集群详解

        Elasticsearch如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群,三个Master节点最多只能故障一台Master节点,如果故障两个Master节点,Elasticsearch将无法组成集群.会报错,Kibana也无法启动,因为Kibana无法获取集群中的节点信息。

        我们可以在虚拟机中启动三台虚拟机或者购买三台服务器,考虑个人电脑同时打开3台虚拟机太卡或者购买服务器价格过高,可以使用在一台虚拟机或服务器安装三个ES实列,搭建伪集群,ES启动是比较耗内存的,启用之前先配置好内存使用大小限制。

es下载安装详解参考博文:Linux系统中安装elasticsearch详解_IT之一小佬的博客-CSDN博客

整体步骤:

本文以elasticsearch-7.17.6版本为例:

  1. 首先将下载解压后的elasticsearch-7.17.6文件夹复制3份,分别命名为elasticsearch-7.17.6-node1、elasticsearch-7.17.6-node2和elasticsearch-7.17.6-node3。
  2. 然后配置elasticsearch.yml文件内容。
  3. 然后分别启动node1、node2和node3节点。
  4. 最后打开浏览器输入:http://192.168.1.1:9201/_cat/health?v ,如果返回的node.total为3,则表示集群搭建成功。

集群的环境如下表所示:

cluster namenode nameIP Addrhttp端口/通信端口
es-clusternode1192.168.1.19201 / 9700
es-clusternode2192.168.1.19202 / 9800
es-clusternode3192.168.1.19203 / 9900

注意:本测试用例使用一台服务器,使用同一个IP地址,所以将端口号分别设置为不同的。

拷贝文件:

创建数据存储目录

授权给xxx用户

如:chown -R admin:admin ./logs

elasticsearch.yml配置文件:

elasticsearch-7.17.6-node1配置文件:

cluster.name: es_cluster
node.name: node1
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9700
discovery.seed_hosts: ["localhost:9700", "localhost:9800", "localhost:9900"]
cluster.initial_master_nodes: ["node1", "node2", "node3"]
path.data: /home/admin/es_cluster/data
path.logs: /home/admin/es_cluster/logs
# 详细介绍
# 集群名称
cluster.name: es_cluster
# 节点名称
node.name: node1
# 是不是有资格主节点
node.master: true
# 是否存储数据
node.data: true
# 最大集群数量
node.max_local_storage_nodes: 3
# IP地址
network.host: 0.0.0.0
http.port: 9201
# 节点之间沟通端口
transport.tcp.port: 9700
# 节点发现
discovery.seed_hosts: ["localhost:9700", "localhost:9800", "localhost:9900"]
# 初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2", "node3"]
# 数据和存储路径
path.data: /home/admin/es_cluster/data
path.logs: /home/admin/es_cluster/logs

elasticsearch-7.17.6-node2配置文件:

cluster.name: es_cluster
node.name: node2
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9800
discovery.seed_hosts: ["localhost:9700", "localhost:9800", "localhost:9900"]
cluster.initial_master_nodes: ["node1", "node2", "node3"]
path.data: /home/admin/es_cluster/data
path.logs: /home/admin/es_cluster/logs

elasticsearch-7.17.6-node3配置文件:

cluster.name: es_cluster
node.name: node3
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9203
transport.tcp.port: 9900
discovery.seed_hosts: ["localhost:9700", "localhost:9800", "localhost:9900"]
cluster.initial_master_nodes: ["node1", "node2", "node3"]
path.data: /home/admin/es_cluster/data
path.logs: /home/admin/es_cluster/logs

jvm.options文件配置

修改 jvm.options文件内存使用的大小,分别对三个文件修改

设置es的jvm占用内存参数,防止内存不足的错误或系统卡顿。

-xms:最小内存

-xmx:最大内存

启动节点

启动时可能报的错误:

查看: 

sudo sysctl -a|grep vm.max_map_count

 修改:

 sudo sysctl -w vm.max_map_count=262144

注意:上述方法在服务器或虚拟机重启后会恢复默认值,可以使用下述方法一劳永逸:

在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
即可永久修改

运行node1节点:

上述可以从日志中看到: master not discovered yet。还没有发现主节点。

访问单个node1节点:

访问集群状态信息:http://192.168.1.1:9201/_cat/health?v显示不成功。

当其它节点也启动时显示成功。

 当看到total为3时,表示集群启动成功!

 在elasticsearch-header中查看:

为了更好的管理集群,可以在kibana中进行配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值