Elasticsearch 主从复制部署记录

Elasticsearch 主从复制部署记录

本部署记录是在三台虚拟机的环境下搭建 Elasticsearch 主从复制集群,
默认三台虚拟机中已经存在正常运行的Elasticserch 实例,
如不满足条件则参考上一篇:《 03_Elasticsearch 主从复制部署记录 》

  • JDK的安装与配置:https://blog.csdn.net/qq_36623327/article/details/114255727
  • Elasticsearch 单实例部署:https://blog.csdn.net/qq_36623327/article/details/114255791
  • Elasticsearch 主从复制:https://blog.csdn.net/qq_36623327/article/details/114255871
  • Kibana 的安装:https://blog.csdn.net/qq_36623327/article/details/114255942

主从复制概念

设想有三台服务器,由其中一台服务器中的 Elasticserch 实例保存数据,我们称其为主节点,
其余的两台中的 Elasticserch 实例负责从主节点同步数据,我们称其为随从节点
当主节点出现故障,又两个随从节点自动选举出一个新的主节点提供服务,达到 “高可用的目的”

配置主从复制集群

集群的配置只需要修改 Elasticserch 文件夹中 config 文件夹中的 elasticserch.yml 配置文件,注意使用普通用户修改

主节点的修改

## 集群名称
cluster.name: es-itcast-cluster
## 当前节点名称
node.name: node01
## 是否有资格当选主节点
node.master: true
## 是否存储数据
node.data: true
## 链接地址
network.host: 0.0.0.0
## 端口号
http.port: 9200
## 实例之间的通信端口
transport.port: 9300
transport.tcp.port: 9300
## 集群信息
discovery.zen.ping.unicast.hosts: ["192.168.31.151","192.168.31.154","192.168.31.157"]
cluster.initial_master_nodes: ["192.168.31.151","192.168.31.154","192.168.31.157"]
## 最少主节点数量
discovery.zen.minimum_master_nodes: 1
## 开放网络权限
http.cors.enabled: true
http.cors.allow-origin: "*"

从节点的修改

cluster.name: es-itcast-cluster
## 从节点的修改和主节点相同,只需要修改节点名称即可
## *** 无论是主节点还是从节点,各个实例名称绝不能重复 ***
node.name: node02
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.31.151","192.168.31.154","192.168.31.157"]
cluster.initial_master_nodes: ["192.168.31.151","192.168.31.154","192.168.31.157"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"

重启Elasticsearch

## 删除所有 elasticsearch 实例中 data 文件夹下的节点数据
rm -rf ./elasticsearch/data/*
## 重启按照主从顺序重启集群节点

检查重启结果

  • 可以通过查看 elasticsearch 重启日志判断是否出现错误

  • 通过请求API查看集群健康状态

    http://192.168.31.151:9200/
    ---------------------------------------
    {
        "cluster_name": "es-itcast-cluster",
        "status": "green",
        "timed_out": false,
        ## 证明三个实例已经建立了链接
        "number_of_nodes": 3,
        "number_of_data_nodes": 3,
        "active_primary_shards": 1,
        "active_shards": 2,
        "relocating_shards": 0,
        "initializing_shards": 0,
        "unassigned_shards": 0,
        "delayed_unassigned_shards": 0,
        "number_of_pending_tasks": 0,
        "number_of_in_flight_fetch": 0,
        "task_max_waiting_in_queue_millis": 0,
        "active_shards_percent_as_number": 100
    }
    
  • 通过API查看主节点状态

    http://192.168.31.151:9200/_cat/nodes
    ---------------------------------------
    192.168.31.151 13 66 0 0.00 0.01 0.05 mdi - node01
    192.168.31.157 14 95 0 0.00 0.01 0.05 mdi - node03
    192.168.31.154 13 65 0 0.05 0.03 0.05 mdi * node02 ## 当选主节点
    

检查主从复制

创建索引

PUT http://192.168.31.154:9200/new_index

添加数据

POST http://192.168.31.154:9200/new_index/test/1
------------------------------------------------
{
  "title": "测试集群",
  "text":  "主从复制",
  "date":  "2021/02/05"
}

查询数据

GET http://192.168.31.157:9200/_search

测试选举

## 手动关闭当前主节点,重新访问 http://IP:9200/_cat/nodes,看结果中是否存在新的主节点

测试主从复制

## 再次查询数据,看是否可以得到数据
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Elasticsearch支持主从同步,也称为主备复制。主从同步是一种数据复制机制,其中一个节点(主节点)负责写入和查询数据,而其他节点(从节点)复制主节点的数据以提供读取操作和故障容错。 要设置主从同步,首先需要配置一个主节点和一个或多个从节点。主节点负责处理所有的写操作,并将数据复制到从节点上。从节点只能处理读操作,并且会自动从主节点同步最新的数据。 以下是配置主从同步的步骤: 1. 在elasticsearch.yml配置文件中,为每个节点指定一个唯一的集群名称和节点名称。确保所有节点都使用相同的集群名称。 2. 在主节点的配置文件中,设置`node.master: true`和`node.data: true`,这将使其成为主节点并存储数据。 3. 在从节点的配置文件中,设置`node.master: false`和`node.data: true`,这将使其成为从节点只负责数据复制。 4. 在每个节点的配置文件中,设置`discovery.seed_hosts`为您在集群中使用的所有节点的IP地址或主机名。 5. 启动所有节点,并确保它们都能够连接到彼此。 一旦所有节点都运行,并且在集群中建立了连接,主节点将开始复制数据到从节点。您可以使用Elasticsearch提供的API或插件来验证主从同步是否正常工作。 请注意,主从同步只提供了读取操作的负载均衡和故障容错,并不适用于高可用性或自动故障转移。如果主节点发生故障,您需要手动将一个从节点提升为新的主节点。 希望这个回答能够帮到您!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值