【Elasticsearch】同一台服务器部署集群

【Elasticsearch】同一台服务器部署集群

  • [1. 同一台服务器搭建ES集群](#1. 同一台服务器搭建ES集群)
  • [2. 配置不同的node节点](#2. 配置不同的node节点)
  • [3. ES集群中安装IK分词器](#3. ES集群中安装IK分词器)
  • [4. 启动es集群](#4. 启动es集群)
  • [5. Kibana访问集群](#5. Kibana访问集群)
  • [6. es-head](#6. es-head)
  • [7. 集群中创建索引](#7. 集群中创建索引)
    • [7.1 什么是分片以及分片的好处](#7.1 什么是分片以及分片的好处)
    • [7.2 副本(Replication)](#7.2 副本(Replication))
    • [7.3 通过es-head创建索引](#7.3 通过es-head创建索引)
  • [8. 集群工作原理](#8. 集群工作原理)
  • [9. 在Java中操作ES的客户端](#9. 在Java中操作ES的客户端)

1. 同一台服务器搭建ES集群


2. 配置不同的node节点


第一台机器 elasticsearch.yml

其他两台机器需要修改的地方

3. ES集群中安装IK分词器

在9201的包下面的plugins里面的ik分词器解压,解压出一个elasticsearch文件夹,将elasticsearch文件夹改名为analysis-ik的文件夹

然后再把这个analysis-ik的文件夹复制到9202、9203各一份


4. 启动es集群

  1. es启动
    windows操作系统可以直接启动elasticsearch.bat
    centos or mac 直接运行elasticsearch脚本
  2. 集群启动
    mac 下的集群启动,三台机器都运行elasticsearch脚本

5. Kibana访问集群

在第一台机器的kibana.yml中修改为9201

运行kibana

6. es-head

连接的时候9201、9202、9203都可以

7. 集群中创建索引

集群中创建索引与单台机器创建索引是一样的。

分片的数量:默认是5,这里设置为3

分片是指 将数据拆分成多个部分,并分别存储在不同的服务器或节点上,从而实现数据水平扩展(scale out)。

副本数量:这里设置为1,每个分片一个备份,一个原始数据共计2份。

7.1 什么是分片以及分片的好处

分片(Sharding)

概念:分片是指 将数据拆分成多个部分,并分别存储在不同的服务器或节点上,从而实现数据水平扩展(scale out)。

  1. 特点
    数据拆分:每个分片存储不同的数据子集,不同分片之间的数据通常不重复。
    提高可扩展性:当数据量过大时,可以通过增加分片来分担存储和查询压力。
    减少单点瓶颈:每个分片可以独立处理查询,提高整体性能。
  2. 示例
    假设有一个包含 1 亿条用户数据 的数据库,直接存储在一个节点上会导致性能瓶颈。
    采用分片策略,可以 按照用户 ID 进行范围分片:
    服务器 A 存储 ID 1-30,000,000 的用户数据
    服务器 B 存储 ID 30,000,001-60,000,000 的用户数据
    服务器 C 存储 ID 60,000,001-100,000,000 的用户数据
    这样,每个服务器只处理自己的一部分数据,整体性能更高。

7.2 副本(Replication)

概念:副本是指复制数据的多个拷贝,并存储在不同的服务器或节点上,以提高系统的高可用性和 数据冗余度。

  1. 特点
    数据一致性:所有副本存储的是相同的数据,并通过同步机制保持一致。
    提高高可用性:当一个节点故障时,其他副本可以继续提供服务。
    读写分离:主副本负责写入,其他副本可以分担读取压力,提高查询性能。
  2. 示例
    一个数据库采用 主从复制(Master-Slave Replication):
    主数据库(Master) 负责写入操作,并将数据同步到多个 从数据库(Slaves)。
    读取请求可以由多个从库分担,从而减少主库压力,提高查询效率。
    如果 主库宕机,可以通过 选举 让某个从库升级为新的主库,保证系统的高可用性。

7.3 通过es-head创建索引

这里注意一个问题:


8. 集群工作原理

shard分片

9. 在Java中操作ES的客户端


相关推荐
熬夜苦读学习34 分钟前
Linux文件系统
linux·运维·服务器·开发语言·后端
荔枝荷包蛋6661 小时前
【网络】高级IO——Reactor版TCP服务器
运维·服务器
GGGGGGGGGGGGGG.2 小时前
hapxory-ACL基础介绍及案例
运维·服务器·网络
黑牛先生2 小时前
【Linux】匿名管道
linux·运维·服务器
Java Fans4 小时前
微信小程序——访问服务器媒体文件的实现步骤
服务器·微信小程序·小程序
yourkin6665 小时前
HTTPS(下)
服务器·网络协议·https
KingDol_MIni5 小时前
Spring Boot 集成 T-io 实现客户端服务器通信
java·服务器·spring boot
元气满满的热码式5 小时前
logstash中的input插件(http插件,graphite插件)
网络·网络协议·http·elasticsearch·云原生
神一样的老师6 小时前
超越云计算:计算连续体中的无服务器函数
服务器
ITPUB-微风6 小时前
美团MTSQL特性解析:技术深度与应用广度的完美结合
java·服务器·开发语言