• 九、ES集群实验


    一、ES集群说明

    1、什么是数据分片

    跟MySQL不同的是,ES数据库叫分片,主库叫主分片,用粗框表示,域名前用黑色五角星标识
    从库叫副分片,用细框表示,域名前用黑色的圆标识

    主分片:实际存储数据,负责读写
    副分片:主分片数据的副本,提供读(只是建议,当然也支持写),同步主分片的数据

    副分片相当于主分片的备份,且副本数量可以自定义

    2、集群健康状态

    接着看上图,集群健康值:green这里是绿色的,集群健康状态分为三种颜色

    绿色:所有数据都完整,副本分片都正常
    黄色:所有数据都完整,但是有个别副本分片宕机
    红色:一个或多个索引数据不完整,索引相当于MySQL的库,也就是数据库数据不完整
    

    3、数据分片颜色

    看上图所示,数据分片颜色是绿色的,也就是有个框里面有个0的颜色。
    数据分片的颜色除了绿色还有其他颜色,如下所示,不明白不要紧,接下来用实验来证明。

    紫色:正在迁移数据
    黄色:正在复制数据
    绿色:正常
    

    二、故障转移实验

    主机名 服务 IP
    es01 es+kibana 10.0.0.80
    es02 es 10.0.0.81
    es03 es 10.0.0.82

    1、实验一

    实验要求
    模拟es01宕机,查看数据分片颜色变化

    目前集群状态

    关闭es01的es服务,集群状态如下图所示

    这时会发现集群健康值变为黄色,是因为原本预设的一主一副分片,即有一份原始数据,一份备份数据,因为es01宕机,原本副本分片变为主分片,没有备份数据,所以变黄。

    过一会完成迁移,这时集群es02跟es03组成主备,数据满足一个主分片,一个副本分片,所以集群健康值变为绿色

    2、实验二

    实验要求
    向es02插入数据,启动es01,查看数据迁移中的分片颜色变化

    目前集群状态

    向es02插入多条数据,这里注意不写ID,让其随机生成ID号

    #多执行几次如下命令,多添加一些数据
    $ curl -XPOST 'http://10.0.0.81:9200/linux/_doc/' -H 'Content-Type:application/json' -d '
    {
      "name":"tz",
      "age":"68"
    }'
    

    启动es01服务

    systemctl start elasticsearch
    

    会发现es02数据分片变为紫色,紫色表示正在迁移数据,迁移的是kibana的索引,并在es01上成为主分片

    这里linux索引没有迁移到es01上,因为主分片副本分片是随机分布在服务器上的,但是迁移的是kibana的索引,也看到了分片颜色变化的过程

    完成迁移

    3、实验三

    实验要求
    关闭es01跟es02,查看集群状态

    使用es-head连接es03,发现连接不上

    使用curl访问es03的服务,发现是可以的

    健康状态无法查看,一直卡在此页面

    查看集群日志

    看第一行,MasterNotDiscoveredException,找不到主节点了,故保证集群正常运行需要至少两个节点存活才行。

    4、补充

    补充一下集群颜色为红色的情况,这里的.kibana索引所在的节点宕机了,在其他节点没有备份,所以数据不完整,故集群颜色为红色。

    这里仅为演示集群健康值为红色的情况,其他内容可在后续章节学到

    4、实验总结

    1. 插入数据跟读写数据在任何节点都能执行
    2. es-head插件可以连接集群内任何一台存活的es服务器
    3. 主节点负责读写,数据节点(也就是副本分片)负责读,当然这是建议。
    4. 主节点宕机,数据节点会升级为主节点
    5. 主分片坏掉,副本分片会升级为主分片
    6. 如果副本数不满足(默认是一个主分片,一个副本分片),会复制数据到其他节点成为新的副本分片
    7. ES至少两个节点存活集群才能正常工作
    8. 集群宕机节点恢复上线会自动同步数据
    9. ES工作端口有9200跟9300,如果开启防火墙需要放行这两个端口

    参考资料
    老男孩教育_day105_视频

  • 相关阅读:
    索引使用及注意事项
    Explain详解与索引
    JVM常量池了解
    认识Mysql索引
    JVM调优工具及了解
    JVM垃圾收集器
    JVM垃圾回收相关算法
    JVM字节码文件结构剖析
    JVM对象创建与内存分配机制
    JVM内存参数设置
  • 原文地址:https://www.cnblogs.com/tz90/p/15212684.html
Copyright © 2020-2023  润新知