• es集群、


    集群

    单机的elasticsearch做数据存储,面临两个问题:海量数据问题,单点故障问题

    • 海量数据存储问题:将索引库从逻辑上拆分为N个分片,存储到多个节点
    • 单点故障问题:将分片数据在不同节点备份

    部署es集群

    部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间

    首先编写一个docker-compose文件,内容如下:

    version: '2.2'
    services:
      es01:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
        container_name: es01
        environment:
          - node.name=es01
          - cluster.name=es-docker-cluster
          - discovery.seed_hosts=es02,es03
          - cluster.initial_master_nodes=es01,es02,es03
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - data01:/usr/share/elasticsearch/data
        ports:
          - 9200:9200
        networks:
          - elastic
      es02:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
        container_name: es02
        environment:
          - node.name=es02
          - cluster.name=es-docker-cluster
          - discovery.seed_hosts=es01,es03
          - cluster.initial_master_nodes=es01,es02,es03
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - data02:/usr/share/elasticsearch/data
        networks:
          - elastic
      es03:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
        container_name: es03
        environment:
          - node.name=es03
          - cluster.name=es-docker-cluster
          - discovery.seed_hosts=es01,es02
          - cluster.initial_master_nodes=es01,es02,es03
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - data03:/usr/share/elasticsearch/data
        networks:
          - elastic
    
    volumes:
      data01:
        driver: local
      data02:
        driver: local
      data03:
        driver: local
    
    networks:
      elastic:
        driver: bridge
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70

    es运行需要修改一些linux系统权限,修改/etc/sysctl.conf文件

    vi /etc/sysctl.conf
    
    • 1

    添加下面的内容:

    vm.max_map_count=262144
    
    • 1

    然后执行命令,让配置生效:

    sysctl -p
    
    • 1

    通过docker-compose启动集群:

    docker-compose up -d
    
    • 1

    4.2.集群状态监控

    kibana可以监控es集群,不过新版本需要依赖es的x-pack 功能,配置比较复杂。

    这里推荐使用cerebro来监控es集群状态,官方网址:https://github.com/lmenezes/cerebro

    课前资料已经提供了安装包:

    解压即可使用,非常方便。

    进入对应的bin目录

    双击其中的cerebro.bat文件即可启动服务。

    访问http://localhost:9000 即可进入管理界面:

    输入你的elasticsearch的任意节点的地址和端口,点击connect即可:

    绿色的条,代表集群处于绿色(健康状态)。

    4.3.创建索引库

    1)利用kibana的DevTools创建索引库

    在DevTools中输入指令:

    PUT /itcast
    {
      "settings": {
        "number_of_shards": 3, // 分片数量
        "number_of_replicas": 1 // 副本数量
      },
      "mappings": {
        "properties": {
          // mapping映射定义 ...
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2)利用cerebro创建索引库

    利用cerebro还可以创建索引库

    填写索引库信息:

    点击右下角的create按钮:

    4.4.查看分片效果

    • 回到首页,即可查看索引库分片效果
  • 相关阅读:
    信息学奥赛一本通:1173:阶乘和
    栈与队列 | 有效的括号、删除字符串中的所有相邻元素、逆波兰表达式求值、滑动窗口的最大值、前K个高频元素 | leecode刷题笔记
    性能测试【第三篇】Jmeter的使用
    【SCI征稿】中科院2区SCI,可接收计算机大部分领域,征稿主题如图模式识别、图形数据挖掘、图像分类、目标检测、语义分割、位置检测、神经网络、主动学习等
    【云原生】-国产开源数据库openGauss容器部署
    【C++】函数重载
    Mojo: 轻量级Perl框架的魔力
    简单理解函数f(x;θ)中分号的含义
    【前段基础入门之】=>CSS 的常用属性
    好好吃饭、不焦虑打工、潮酷同行,这些公司的新年礼盒越来越会玩~
  • 原文地址:https://blog.csdn.net/qq_57907966/article/details/126567448