【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的客户端


相关推荐
lost_n_found20 小时前
Linux-CentOS从零搭建Jenkins(上),包教包会
jenkins
宁zz21 小时前
乌班图安装jenkins
运维·jenkins
FixBug_Nick21 小时前
使用Docker安装及使用最新版本的Jenkins
docker·容器·jenkins
无名之逆21 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
Elasticsearch1 天前
Elasticsearch:使用机器学习生成筛选器和分类标签
elasticsearch
rainFFrain1 天前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon1 天前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
xujiangyan_1 天前
nginx的反向代理和负载均衡
服务器·网络·nginx
GalaxyPokemon1 天前
Muduo网络库实现 [十] - EventLoopThreadPool模块
linux·服务器·网络·c++
自由鬼1 天前
开源虚拟化管理平台Proxmox VE部署超融合
linux·运维·服务器·开源·虚拟化·pve