elasticsearch学习四:elasticsearch集群

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: elasticsearch学习四:elasticsearch集群

ES集群概念

elasticsearch集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能,一个elasticsearch集群由一个唯一的名字标识,默认为:"elasticsearch"

分片


ES索引可能存储超过1T的数据,但是一个节点可能只有500G的空间,这个时候,ES集群可以通过分片方案,将文档分别存储到多个节点中.

ES提供了将索引划分多份的能力,这些份就是"分片"

image.png

在图中,节点1,2,3分别存储了索引index的 分片1,2,3,假设这个时候node2节点宕机了,会出现什么情况呢?

当node2节点宕机了,index索引存储的3个分片将剩下2个,就会导致整个索引无法使用,ES集群无法再提供服务

复制

为了避免这个问题,ES创建分片的一份或者多份拷贝,这些拷贝叫做 "复制分片",或者直接叫"复制"

image.png

当node2节点宕机之后,在node1中的复制分片将可以提供服务

集群搭建

我们需要准备3台服务器安装docker,没有3台的可以直接单机起3个容器

docker pull elasticsearch:8.5.2

增加文件句柄数,在/etc/sysctl.conf 新增一行

vm.max\_map\_count=262144    
sysctl -p

docker-compose文件:

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.5.2
    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
      - xpack.security.enabled=false
      - xpack.security.transport.ssl.enabled=false
      - "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:8.5.2
    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"
      - xpack.security.enabled=false
      - xpack.security.transport.ssl.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.5.2
    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
      - xpack.security.enabled=false
      - xpack.security.transport.ssl.enabled=false
      - "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

运行docker-compose up -d即可

root@tioncico:~/elasticsearch# docker-compose up -d
root@tioncico:~/elasticsearch# docker ps
CONTAINER ID   IMAGE                                                 COMMAND                  CREATED          STATUS         PORTS                                                 NAMES
834e72d63235   docker.elastic.co/elasticsearch/elasticsearch:8.5.2   "/bin/tini -- /usr/l…"   12 seconds ago   Up 4 seconds   9200/tcp, 9300/tcp                                    es02
644bf94a5e48   docker.elastic.co/elasticsearch/elasticsearch:8.5.2   "/bin/tini -- /usr/l…"   12 seconds ago   Up 4 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp   es01
8ae4ceab7226   docker.elastic.co/elasticsearch/elasticsearch:8.5.2   "/bin/tini -- /usr/l…"   12 seconds ago   Up 4 seconds   9200/tcp, 9300/tcp                                    es03
root@tioncico:~/elasticsearch#

如果运行失败的话,可以通过 docker logs es01 查看失败日志

节点测试:

root@tioncico:~/elasticsearch# curl -X PUT 127.0.0.1:9200/test
{"acknowledged":true,"shards_acknowledged":true,"index":"test"}
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
505 1
|
3月前
|
自然语言处理 Java 网络架构
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
这篇文章是关于如何自定义Elasticsearch的ik分词器配置以满足特定的中文分词需求。
196 0
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
|
2月前
|
存储 监控 安全
Elasticsearch 集群
【11月更文挑战第3天】
107 54
|
1月前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
50 0
|
2月前
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
72 5
|
2月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
61 1
|
2月前
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
74 1
|
2月前
|
监控 安全 网络安全
Elasticsearch集群的网络设置
Elasticsearch集群的网络设置
67 3
|
2月前
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
102 4
|
2月前
|
存储 监控 固态存储
Elasticsearch集群硬件与资源分配
Elasticsearch集群硬件与资源分配
43 2