容器化部署ES集群
文章目录
- 一、ElasticSearch基本概念
- 1、索引(Index)
- 2、文档(Document)
- 3、分片和副本
- 4、映射(Mapping)
- 二、容器部署ElasticSearch集群
- 三、容器部署ElasticSearch伪集群
一、ElasticSearch基本概念

1、索引(Index)
在ElasticSearch中,索引是文档的集合,类似于关系数据库中的数据库,它是文档的主要存储单位,每个文档都属于一个索引。
1、创建索引:
PUT /index_name
2、查看索引:
GET /index_name
3、删除索引:
DELETE /index_name
2、文档(Document)
在Elasticsearch中,文档是存储在索引中的基本数据单元。每个文档都有一个唯一的 ID,并且是以 JSON 格式存储的,一个文档对应一条数据。
1、创建文档:
POST /index_name/_doc/2783862{"title": "实例文档","content": "实例文档的内容..."
}
- index_name:创建文档的索引,文档存放在索引中;
- _doc:是文档类型,通常用 _doc;
- 2783862:是文档的唯一 ID;
2、查看文档:
GET /index_name/_doc/2783862
这将返回包含文档内容的 JSON 响应,例如:
{"_index": "qinziteng666","_type": "_doc","_id": "2783862","_version": 1,"_seq_no": 3,"_primary_term": 1,"found": true,"_source": {"title": "实例文档","content": "实例文档的内容..."}
}
3、删除文档:
DELETE /index_name/_doc/2783862
4、查看索引中所有文档:
GET /index_name/_search
3、分片和副本
- 分片(Shard):索引可以分成多个分片,每个分片是一个独立的Lucene索引。分片允许在集群中分布和并行处理数据。
- 副本(Replica):每个分片可以有零个或多个副本。副本提供了数据的冗余备份和提高搜索性能的能力。
1、查看索引分片信息:
GET /_cat/shards/index_name?v
2、查看集群中所有索引的分片信息:
GET /_cat/shards?v
3、查看分片分配情况和状态:
GET /_cat/allocation?v
4、查看集群健康状态和分片情况:
GET /_cluster/health
5、查看集群中所有索引详细信息:
GET /_cluster/state
4、映射(Mapping)
映射定义了索引中每个字段的数据类型和属性。它类似于关系数据库中表的模式定义。
1、创建索引,并在请求体中定义索引的设置和映射
PUT /index_name
{"settings": {"number_of_shards": 3,"number_of_replicas": 2},"mappings": {"properties": {"title": { "type": "text" },"description": { "type": "text" },"created_at": { "type": "date" }}}
}
- settings:包含了索引的设置,例如分片数和副本数;
- mappings: 定义了索引中文档的结构,指定每个字段的类型和分析器等信息。
2、查看索引,返回索引的详细信息,包括设置、Mapping 和索引状态等。
GET /index_name
3、只查看映射:
GET /index_name/_mapping
4、更新映射
PUT /index_name/_mapping
{"properties": {"title": { "type": "text" },"tags": { "type": "keyword" },"views": { "type": "integer" }}
}
5、删除映射,直接删除索引即可
DELETE /index_name
二、容器部署ElasticSearch集群
1、环境信息:
| IP地址 | ES节点 |
|---|---|
| 16.32.15.115 | node1 |
| 16.32.15.200 | node2 |
| 16.32.15.201 | node3 |
2、compose信息如下:
node1配置:
version: '3'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: elasticsearchrestart: on-failure:3network_mode: hostvolumes:- /home/software/elasticsearch/data:/usr/share/elasticsearch/data- /home/software/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/software/elasticsearch/logs:/usr/share/elasticsearch/logs- /etc/localtime:/etc/localtime- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.name=node1- node.master=true- node.data=true- network.host=0.0.0.0- discovery.seed_hosts=16.32.15.115,16.32.15.200,16.32.15.201- cluster.initial_master_nodes=node1,node2,node3- cluster.name=es-cluster- ES_JAVA_OPTS=-Xms256m -Xmx256m
node2配置:
version: '3'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: elasticsearchrestart: on-failure:3network_mode: hostvolumes:- /home/software/elasticsearch/data:/usr/share/elasticsearch/data- /home/software/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/software/elasticsearch/logs:/usr/share/elasticsearch/logs- /etc/localtime:/etc/localtime- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.name=node2- node.master=true- node.data=true- network.host=0.0.0.0- discovery.seed_hosts=16.32.15.115,16.32.15.200,16.32.15.201- cluster.initial_master_nodes=node1,node2,node3- cluster.name=es-cluster- ES_JAVA_OPTS=-Xms256m -Xmx256m
node3配置:
version: '3'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: elasticsearchrestart: on-failure:3network_mode: hostvolumes:- /home/software/elasticsearch/data:/usr/share/elasticsearch/data- /home/software/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/software/elasticsearch/logs:/usr/share/elasticsearch/logs- /etc/localtime:/etc/localtime- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.name=node2- node.master=true- node.data=true- network.host=0.0.0.0- discovery.seed_hosts=16.32.15.115,16.32.15.200,16.32.15.201- cluster.initial_master_nodes=node1,node2,node3- cluster.name=es-cluster- ES_JAVA_OPTS=-Xms256m -Xmx256m
注意:如果是已经运行很久的单节点升级为集群(保留单节点ES数据),需要删除这台单节点的几个文件,如下:
- data/nodes/0/_state/node-0.st
- 这个文件记录了特定节点(例如节点编号为 0 的节点)的状态信息和元数据。
- 包括节点的唯一标识符、IP 地址、端口号等基本信息。
- 集群配置信息,如节点所属的集群名称、集群的一些全局设置。
- 索引的元数据,包括映射(mapping)、分片(shard)的分配情况、每个分片所在的节点等。
- 分片的状态信息,如每个分片的健康状态、复制状态等。
- 路由表信息,记录了集群中每个索引分片的路由信息,用于数据的定位和检索。
- data/nodes/0/_state/manifest-0.st
- 这个文件是 Elasticsearch 的数据文件描述符(manifest)。
- 主要用于描述和管理索引和分片的元数据信息。
- 记录了每个索引的结构信息、分片的位置和状态、每个分片的文件列表等。
- 提供了索引数据的元信息,帮助 Elasticsearch 了解如何访问和处理索引数据。
三、容器部署ElasticSearch伪集群
PS:伪集群只在单台服务器中部署的ES集群,并没有分散开,当次服务器宕机后ES集群也就没了,生产环境建议走上面的分散到不通服务器的集群,如果只是测试,伪集群是很好的选择。
1、创建ES集群所需目录
mkdir /home/es/{node1/{data,plugins,logs},node2/{data,plugins,logs},node3/{data,plugins,logs}} -p
chmod -R 777 /home/es
2、创建docker-compose.yaml文件 并启动集群
version: '3'
services:es-node1:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: es-node1restart: on-failure:3volumes:- /home/es/node1/data:/usr/share/elasticsearch/data- /home/es/node1/plugins:/usr/share/elasticsearch/plugins- /home/es/node1/logs:/usr/share/elasticsearch/logs- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.name=es-node1- node.master=true- node.data=true- network.host=0.0.0.0- discovery.seed_hosts=es-node1,es-node2,es-node3- cluster.initial_master_nodes=es-node1,es-node2,es-node3- cluster.name=es-cluster- ES_JAVA_OPTS=-Xms256m -Xmx256mports:- 9200:9200es-node2:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: es-node2restart: on-failure:3volumes:- /home/es/node2/data:/usr/share/elasticsearch/data- /home/es/node2/plugins:/usr/share/elasticsearch/plugins- /home/es/node2/logs:/usr/share/elasticsearch/logs- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.name=es-node2- node.master=true- node.data=true- network.host=0.0.0.0- discovery.seed_hosts=es-node1,es-node2,es-node3- cluster.initial_master_nodes=es-node1,es-node2,es-node3- cluster.name=es-cluster- ES_JAVA_OPTS=-Xms256m -Xmx256mports:- 8200:9200es-node3:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: es-node3restart: on-failure:3volumes:- /home/es/node3/data:/usr/share/elasticsearch/data- /home/es/node3/plugins:/usr/share/elasticsearch/plugins- /home/es/node3/logs:/usr/share/elasticsearch/logs- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.name=es-node3- node.master=true- node.data=true- network.host=0.0.0.0- discovery.seed_hosts=es-node1,es-node2,es-node3- cluster.initial_master_nodes=es-node1,es-node2,es-node3- cluster.name=es-cluster- ES_JAVA_OPTS=-Xms256m -Xmx256mports:- 7200:9200
3、查看集群
curl http://localhost:9200/_cat/nodes

相关文章:
容器化部署ES集群
文章目录 一、ElasticSearch基本概念1、索引(Index)2、文档(Document)3、分片和副本4、映射(Mapping) 二、容器部署ElasticSearch集群三、容器部署ElasticSearch伪集群 一、ElasticSearch基本概念 1、索引(Index) 在ElasticSearch中,索引是文档的集合,类…...
使用排名前三的华为解锁工具来绕过忘记的华为锁屏密码
如果您在未使用“设置”应用的情况下将华为手机恢复出厂设置,同时启用了出厂重置保护 (FRP) 安全功能,您的华为设备将卡在帐户验证界面。您可以使用帐户凭据轻松绕过此锁定。但是,假设您无法回忆起旧的帐户信息。在这种情况下,您应…...
战神之父和前暴雪总裁都很期待《黑神话》:太酷想玩
近日《战神》之父David Jaffe在油管上发布视频,分享了他对《黑神话:悟空》的看法。他表示自己一直很关注这款游戏,该作的最终预告画面让他惊讶。而战斗部分更是让他大呼:“OMG”。 David Jaffe表示:“我必须要购买《黑…...
用户体验的优化:观测云在用户行为分析中的应用
在数字化商业环境中,用户体验的质量直接影响到品牌形象和客户忠诚度。观测云平台,作为一款专业的数据监控和分析工具,为企业提供了一个全面的解决方案,以深入分析用户行为并优化用户体验。 观测云的核心优势在于其能够实时处理和…...
ModelScope 部署 Flux 模型
Flux 文生图模型,是 Black Forest Labs 最近发布的模型,图片生成清晰度很高,模型可以在 ModelScope 上进行下载,本文将在本地环境中部署 Flex。使用环境如下 2080 TI 22GUbuntu 22Amd R7 2700 / 128G 启动 Model Scope 容器 Mo…...
ArkTs基础语法-声明式UI-基本概念
声明式UI语法 基本概念声明式UI描述创建组件无参数有参数 配置属性配置事件 配置子组件 基本概念 装饰器:用于装饰类、结构、方法及变量,并赋予其特殊的含义。 例如: Entry 有该装饰器的自定义组件,可以在UIAbility中使用…...
Day26 线程学习
线程相关知识总结 在多线程编程中,线程的管理和控制是非常重要的部分。本文将对线程的创建、取消、资源回收、竞争及顺序等方面进行详细总结。 一、线程的基本操作 pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*…...
eNSP 华为三层交换机实现VLAN间通信
华为三层交换机实现VLAN间通信 三层交换机: <Huawei>sys [Huawei]sys SW-3 [SW-3]vlan batch 10 20 [SW-3]int vlan 10 [SW-3-Vlanif10]ip address 192.168.10.254 24 [SW-3-Vlanif10]int vlan 20 [SW-3-Vlanif20]ip add 192.168.20.254 24 [SW-3-Vlanif20]in…...
【多模态大模型】LLaMA in arXiv 2023
一、引言 论文: LLaMA: Open and Efficient Foundation Language Models 作者: Meta AI 代码: LLaMA 特点: 该方法在Transformer的基础上增加了Pre-normalization (RMSNorm)、SwiGLU activation function (SwiGLU)、Rotary Embed…...
(转)java中restful接口和普通接口的区别
RESTful接口是一种遵循REST(Representational State Transfer)架构风格的网络接口,设计上更倾向于资源的表述,通过HTTP方法(如GET、POST、PUT、DELETE)直接操作资源,使得接口更简洁、易于理解和维护。 与普通接口相比…...
灵办AI免费ChatGPT4人工智能浏览器插件快速便捷(多功能)
灵办AI就是您所需的最佳助手!我们为您带来了一款多功能AI工具,不仅能为您提供精准翻译,还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI,真正让工作和学习变得轻松高效! 推荐使…...
VulnHub:BlueMoon
准备工作 靶机下载地址,下载完成后使用virtualbox打开虚拟机,网络设置修改为桥接。 信息收集 主机发现 攻击机ip:192.168.31.218,nmap扫描攻击机同网段存活主机。 nmap 192.168.31.0/24 -Pn -T4 目标靶机ip为:192…...
处理filter里抛出的异常
Filter 的异常是在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()这里扔出来的。Filter是tomcat负责调用执行的,所以会比 servlet(尤其是SpringMVC 的dispatcherServlet )先执行,所以 Filter 里的错误&…...
IndexedDB深度解析:JavaScript的客户端数据库
IndexedDB是一个在用户浏览器中运行的低等级API,用于存储大量结构化数据。作为NoSQL数据库,IndexedDB为Web应用程序提供了丰富的数据存储能力,支持键值对存储、索引、事务和复杂查询等功能。本文将详细介绍IndexedDB的基本概念、工作原理、使…...
C语言中的函数指针和返回值为数组的函数指针对比
函数指针 //定义一个函数指针,函数的参数是int型,返回值为int typedef int (*func)(int);//定义一个函数指针,函数的参数是int*型,返回值为int* typedef int* (*func)(int *);定义一个返回值为数组指针的函数 //定义…...
根据字符串的长度和字符值的大小来对字符串切片进行排序
在 Go 语言中,根据字符串的长度和字符值的大小来对字符串切片进行排序。示例如下: package mainimport ("fmt""sort" )// 自定义类型,以实现排序接口 type byLengthAndValue []string// 实现 sort.Interface 的 Len 方法 func (s b…...
RabbitMQ 的工作原理
下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器,打开一个channel。 2、客户端声明一个exchange,并设置相关属性。 3、客户端声明一个queue,并设置相关属性。 4、客户端使用routing key, 在exchange和queue 之间…...
WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定
资源 对象级别独立文件 静态资源使用(StaticResource)指的是在程序载入内存时对资源的一次性使用,之后就不再去访问这个资源了。 动态资源使用(DynamicResource)使用指的是在程序运行过程中仍然会去访问资源。 显然,如果你确定…...
vue3-03-创建响应式数据的几种方法
响应式数据 一、 ref 创建:响应式数据1)ref 创建:基本类型的响应式数据2)ref 创建:对象类型的响应式数据3)volar 插件自动添加 .value4)customRef 自定义 ref 二、 reactive 创建:响…...
stm32智能颜色送餐小车(openmv二维码识别+颜色识别+oled显示)
大家好啊,我是情谊,今天我们来介绍一下我最近设计的stm32产品,我们在今年七月份的时候参加了光电设计大赛,我们小队使用的就是stm32的智能送餐小车,虽然止步于省赛,但是还是一次成长的经验吧,那…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
