ElasticSearch7入门(七)搭建ElasticSearch集群

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ElasticSearch7入门(七)搭建ElasticSearch集群

背景


前面我们使用单节点时,在Kibana看到ElasticSearch的状态是yellow,引用第一篇文章的说明:

image.png

注意这里标出当前的statusyellow,ElasticSearch集群健康状态最佳时为green。现在是因为我们仅启动了一个节点,鉴于ElasticSearch本身极为强大的横向扩展能力,实际生产环境中都是以集群的方式提供服务,方便各节点间数据的同步以实现弹性可扩展,ES要求单节点的集群状态达不到green,最佳只是yellow。当然,如果状态为red,那就要引起注意了,集群数据有问题了。。


了解了ElasticSearch的基本操作,接下来试试ElasticSearch的集群搭建:


  • ES集群扩容极其便捷;
  • 可以避免单点故障;
  • 实现负载均衡,应对高并发场景;


配置


采用3个节点,单机模拟集群环境,不同的节点端口不同,伪集群。将之前的单节点再复制两份,组成3个服务,各自的elasticsearch.yml配置如下:


  • 节点0配置(主节点)
# cors
http.cors.enabled: true
http.cors.allow-origin: "*"
# cluster
cluster.name: heartsuit
node.name: master
node.master: true
network.host: 127.0.0.1
  • 节点1配置
# cors
http.cors.enabled: true
http.cors.allow-origin: "*"
# cluster
cluster.name: heartsuit
node.name: slave01
network.host: 127.0.0.1
http.port: 9210
discovery.zen.ping.unicast.hosts: ["127.0.0.1","127.0.0.1:9210","127.0.0.1:9220"]
  • 节点2配置
# cors
http.cors.enabled: true
http.cors.allow-origin: "*"
# cluster
cluster.name: heartsuit
node.name: slave02
network.host: 127.0.0.1
http.port: 9220
discovery.zen.ping.unicast.hosts: ["127.0.0.1","127.0.0.1:9210","127.0.0.1:9220"]

Notes:


  1. 关于报错:由于之前的单节点在运行后,已经有了data,若直接启动上述3个节点,报错:with the same id but is a different node instance,解决方法是,将复制出的两个节点下的data目录删除,重新启动即可,master节点的data将会自动同步过来。


  1. 关于配置:集群环境下,配置需要注意:


  • 所有的节点的cluster.name均相同,表示属于一个集群;


  • 所有的节点的node.name不可相同,用以标识不同的节点;


  • 由于使用单机模拟,端口不同(http.port),实际生产环境可部署至不同的机器,采用相同的端口;


  • 其中discovery.zen.ping.unicast.hosts用于指定集群的seed nodes ip集合,可指定端口,默认transport.profiles.default.port或者transport.port,仔细观察两个slave节点,可以看到有如下输出,即:ES会自动调整transport.port


  • slave01: published_address {127.0.0.1:9301},bound_addresses {127.0.0.1:9301}


  • slave01: published_address {127.0.0.1:9302},bound_addresses {127.0.0.1:9302}


测试


  • 使用API查看集群信息


  1. 查看集群节点状况:http://localhost:9210/_cat/nodes 其中带*的表示主节点
127.0.0.1 28 75 20    dilm - slave01
127.0.0.1 35 75 20    dilm * master
127.0.0.1 22 75 20    dilm - slave02
  1. 查看集群健康状况: http://localhost:9200/_cluster/health
{
  "cluster_name": "heartsuit",
  "status": "green",
  "timed_out": false,
  "number_of_nodes": 3,
  "number_of_data_nodes": 3,
  "active_primary_shards": 4,
  "active_shards": 8,
  "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
}

重点关注statusred: 数据不完整yellow: 数据完整,但是没有完整的副本green: 一切正常,有完整的主版本和副本


  • 使用Head插件查看ES集群信息

image.png

Note: Head插件的使用可参考blog.csdn.net/u013810234/…


  • 使用Kibana查看ES集群信息

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
存储 Java API
Elasticsearch 7.8.0从入门到精通
这篇文章详细介绍了Elasticsearch 7.8.0的安装、核心概念(如正排索引和倒排索引)、RESTful风格、各种索引和文档操作、条件查询、聚合查询以及在Spring Boot中整合Elasticsearch的步骤和示例。
141 1
Elasticsearch 7.8.0从入门到精通
|
3月前
|
数据可视化 Java Windows
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
本文介绍了如何在Windows环境下安装Elasticsearch(ES)、Elasticsearch Head可视化插件和Kibana,以及如何配置ES的跨域问题,确保Kibana能够连接到ES集群,并提供了安装过程中可能遇到的问题及其解决方案。
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
|
3月前
|
存储 负载均衡 Java
Elasticsearch集群面试系列文章一
【9月更文挑战第9天】Elasticsearch(简称ES)是一种基于Lucene构建的分布式搜索和分析引擎,广泛用于全文搜索、结构化搜索、分析以及日志实时分析等场景。
109 7
|
3月前
|
存储 关系型数据库 MySQL
浅谈Elasticsearch的入门与实践
本文主要围绕ES核心特性:分布式存储特性和分析检索能力,介绍了概念、原理与实践案例,希望让读者快速理解ES的核心特性与应用场景。
|
20天前
|
存储 监控 安全
Elasticsearch 集群
【11月更文挑战第3天】
95 54
|
12天前
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
33 5
|
13天前
|
存储 JSON Java
ELK 圣经:Elasticsearch、Logstash、Kibana 从入门到精通
ELK是一套强大的日志管理和分析工具,广泛应用于日志监控、故障排查、业务分析等场景。本文档将详细介绍ELK的各个组件及其配置方法,帮助读者从零开始掌握ELK的使用。
|
16天前
|
监控 API 索引
Elasticsearch集群健康检查
【11月更文挑战第4天】
32 3
|
2月前
|
存储 缓存 监控
深入解析:Elasticsearch集群性能调优策略与最佳实践
【10月更文挑战第8天】Elasticsearch 是一个分布式的、基于 RESTful 风格的搜索和数据分析引擎,它能够快速地存储、搜索和分析大量数据。随着企业对实时数据处理需求的增长,Elasticsearch 被广泛应用于日志分析、全文搜索、安全信息和事件管理(SIEM)等领域。然而,为了确保 Elasticsearch 集群能够高效运行并满足业务需求,需要进行一系列的性能调优工作。
108 3
|
2月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
44 4