当前位置: 首页 > news >正文

容器化部署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.115node1
16.32.15.200node2
16.32.15.201node3

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中使用&#xf…...

Day26 线程学习

线程相关知识总结 在多线程编程中,线程的管理和控制是非常重要的部分。本文将对线程的创建、取消、资源回收、竞争及顺序等方面进行详细总结。 一、线程的基本操作 pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*…...

eNSP 华为三层交换机实现VLAN间通信

华为三层交换机实现VLAN间通信 三层交换机&#xff1a; <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

一、引言 论文&#xff1a; LLaMA: Open and Efficient Foundation Language Models 作者&#xff1a; Meta AI 代码&#xff1a; LLaMA 特点&#xff1a; 该方法在Transformer的基础上增加了Pre-normalization (RMSNorm)、SwiGLU activation function (SwiGLU)、Rotary Embed…...

(转)java中restful接口和普通接口的区别

RESTful接口是一种遵循REST(Representational State Transfer)架构风格的网络接口&#xff0c;设计上更倾向于资源的表述&#xff0c;通过HTTP方法&#xff08;如GET、POST、PUT、DELETE&#xff09;直接操作资源&#xff0c;使得接口更简洁、易于理解和维护。 与普通接口相比…...

灵办AI免费ChatGPT4人工智能浏览器插件快速便捷(多功能)

灵办AI就是您所需的最佳助手&#xff01;我们为您带来了一款多功能AI工具&#xff0c;不仅能为您提供精准翻译&#xff0c;还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI&#xff0c;真正让工作和学习变得轻松高效&#xff01; 推荐使…...

VulnHub:BlueMoon

准备工作 靶机下载地址&#xff0c;下载完成后使用virtualbox打开虚拟机&#xff0c;网络设置修改为桥接。 信息收集 主机发现 攻击机ip&#xff1a;192.168.31.218&#xff0c;nmap扫描攻击机同网段存活主机。 nmap 192.168.31.0/24 -Pn -T4 目标靶机ip为&#xff1a;192…...

处理filter里抛出的异常

Filter 的异常是在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()这里扔出来的。Filter是tomcat负责调用执行的&#xff0c;所以会比 servlet&#xff08;尤其是SpringMVC 的dispatcherServlet &#xff09;先执行&#xff0c;所以 Filter 里的错误&…...

IndexedDB深度解析:JavaScript的客户端数据库

IndexedDB是一个在用户浏览器中运行的低等级API&#xff0c;用于存储大量结构化数据。作为NoSQL数据库&#xff0c;IndexedDB为Web应用程序提供了丰富的数据存储能力&#xff0c;支持键值对存储、索引、事务和复杂查询等功能。本文将详细介绍IndexedDB的基本概念、工作原理、使…...

C语言中的函数指针和返回值为数组的函数指针对比

函数指针 //定义一个函数指针&#xff0c;函数的参数是int型&#xff0c;返回值为int typedef int &#xff08;*func)(int);//定义一个函数指针&#xff0c;函数的参数是int*型&#xff0c;返回值为int* typedef int* (*func)(int *);定义一个返回值为数组指针的函数 //定义…...

根据字符串的长度和字符值的大小来对字符串切片进行排序

在 Go 语言中&#xff0c;根据字符串的长度和字符值的大小来对字符串切片进行排序。示例如下: package mainimport ("fmt""sort" )// 自定义类型&#xff0c;以实现排序接口 type byLengthAndValue []string// 实现 sort.Interface 的 Len 方法 func (s b…...

RabbitMQ 的工作原理

下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器&#xff0c;打开一个channel。 2、客户端声明一个exchange&#xff0c;并设置相关属性。 3、客户端声明一个queue&#xff0c;并设置相关属性。 4、客户端使用routing key&#xff0c; 在exchange和queue 之间…...

WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定

资源 对象级别独立文件 静态资源使用(StaticResource)指的是在程序载入内存时对资源的一次性使用&#xff0c;之后就不再去访问这个资源了。 动态资源使用&#xff08;DynamicResource&#xff09;使用指的是在程序运行过程中仍然会去访问资源。 显然&#xff0c;如果你确定…...

vue3-03-创建响应式数据的几种方法

响应式数据 一、 ref 创建&#xff1a;响应式数据1&#xff09;ref 创建&#xff1a;基本类型的响应式数据2&#xff09;ref 创建&#xff1a;对象类型的响应式数据3&#xff09;volar 插件自动添加 .value4&#xff09;customRef 自定义 ref 二、 reactive 创建&#xff1a;响…...

stm32智能颜色送餐小车(openmv二维码识别+颜色识别+oled显示)

大家好啊&#xff0c;我是情谊&#xff0c;今天我们来介绍一下我最近设计的stm32产品&#xff0c;我们在今年七月份的时候参加了光电设计大赛&#xff0c;我们小队使用的就是stm32的智能送餐小车&#xff0c;虽然止步于省赛&#xff0c;但是还是一次成长的经验吧&#xff0c;那…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...