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

ElasticSearch的安装部署-----图文介绍

文章目录

  • 背景
  • 什么是ElasticSearch
    • 使用场景
  • ElasticSearch的在linux环境下的安装部署
    • 前期准备
    • 分配权限(正式实操)
    • 启动ElasticSearch
      • 创建用户组
      • 创建用户,并设置密码
      • 用户添加到elasticsearch用户组
      • 指定用户操作目录的一个操作权限
      • 切换用户
    • 解压elasticsearch
    • 修改es的配置文件
    • 修改jvm.option,调整jvm堆内存大小
    • 可能出现的问题
    • 启动
    • 验证是否启动成功
  • 总结提升

背景

最近项目中要做一个根据某关键字查询商家名称或查询聊天记录的一个功能。这里需要考虑到一个性能的问题,如果聊天的内容很多,怎么才能快速检索的要查询的信息。这里查阅了相关的资料,发现使用ElastSearch比较合适。下面展开关于ElasticSearch的相关内容介绍。

什么是ElasticSearch

Elasticsearch 被设计用于处理大规模数据集并实时查询。它可以快速地索引和搜索各种类型的数据,包括结构化、非结构化和地理空间数据。
是一个高度可扩展的分布式搜索和分析引擎,它能够处理海量数据的索引和检索,并提供实时查询和分析功能。它基于Apache Lucene库构建,使用倒排索引来高效地存储和搜索数据。

在Elasticsearch中,数据被划分为多个分片(shard),每个分片可以在不同的节点上进行复制和分布。这种分布式架构使得Elasticsearch具有高可用性和容错性,即使某个节点或分片发生故障,系统仍然可以继续工作。

Elasticsearch支持各种类型的数据,包括结构化数据、半结构化数据和非结构化数据。它不仅可以用于全文搜索,还可以进行复杂的查询、聚合分析和地理空间分析。您可以通过使用JSON格式来索引和查询数据,而无需预先定义数据模式。

通过使用Elasticsearch的RESTful API,您可以轻松地与其进行交互。您可以使用HTTP请求来执行各种操作,如索引文档、搜索、删除和更新数据。同时,Elasticsearch还提供了强大的查询DSL(Domain Specific Language),以便更灵活地构建查询语句。

除了核心功能之外,Elasticsearch还提供了插件生态系统,可以方便地扩展其功能。这些插件可以用于数据可视化、安全认证、监控和集成到其他工具和系统中。
它具有以下特点:

1、分布式架构:Elasticsearch 使用分片和复制机制来将数据分布在多个节点上,实现数据的水平扩展和高可用性。
2、实时搜索:Elasticsearch 提供了近乎实时的搜索性能,能够在毫秒级别内返回结果。
3、多种查询方式:Elasticsearch 支持全文搜索、精确匹配、模糊搜索、范围搜索等多种查询方式,以满足不同的搜索需求。
4、多样化的数据分析功能:Elasticsearch 提供了丰富的聚合(aggregation)和数据分析功能,如统计、分组、排序、过滤等,可以进行数据探索和可视化。
5、开放性和可扩展性:Elasticsearch 提供了丰富的 RESTful API,易于集成和扩展,同时还支持插件和扩展来满足各种定制化需求。
6、Elasticsearch 被广泛应用于各种场景,如搜索引擎、日志和事件数据分析、实时监控、产品推荐、安全分析等。它的使用范围涵盖了互联网公司、企业组织、科研机构和个人开发者等不同领域。

使用场景

Elasticsearch 在许多不同的场景中都有广泛的应用。以下是一些常见的使用场景:

1、搜索引擎和文档检索:Elasticsearch 能够快速地索引大量的文档数据,并提供高效的全文搜索功能。它被广泛用于构建搜索引擎、内容管理系统(CMS)和知识库等应用。

2、实时日志和事件数据分析:Elasticsearch 可以接收和索引实时产生的日志和事件数据,并提供强大的搜索和分析能力。它被广泛用于系统日志、应用日志、安全日志和运营监控等领域。

3、电子商务和产品推荐:Elasticsearch 可以用于构建电子商务网站的商品搜索和过滤功能。它还可以与机器学习算法结合,实现个性化的推荐系统。

4、数据分析和聚合:Elasticsearch 提供了丰富的聚合功能,可以对索引的数据进行统计、分组、排序和过滤等操作。它可以用于从大规模数据集中提取有价值的信息和洞察。

5、地理空间数据分析:Elasticsearch 内置了地理空间功能,可以索引和查询地理位置数据。它适用于地理信息系统(GIS)、位置搜索和地理可视化等应用。

6、全文搜索和自动补全:Elasticsearch 提供了强大的全文搜索功能,支持各种类型的查询,如模糊搜索、关键词匹配和范围搜索。它还可以通过自动补全功能提供即时的搜索建议。

7、实时监控和报警:Elasticsearch 可以接收和处理实时产生的指标数据,并提供实时的仪表板和报警功能。它被广泛用于应用性能监控、系统运维和大规模分布式系统的监控。

8、智能搜索和语义分析:Elasticsearch 可以与自然语言处理(NLP)技术结合,实现智能搜索和语义分析功能。它可以理解查询意图,提供更准确的搜索结果。

此外,由于 Elasticsearch 具有高可扩展性和开放性,它还可以应用于更多的场景,如推荐系统、社交媒体分析、网络爬虫、数据挖掘和机器学习等。

ElasticSearch的在linux环境下的安装部署

前期准备

确保系统满足要求:检查您的 Linux 系统是否满足 Elasticsearch 的最低系统要求。例如,
1、确保您的系统具有足够的内存和磁盘空间,并且已经安装了 Java 运行时环境(JRE)。

2、安装 Java:Elasticsearch 是用 Java 编写的,因此您需要在系统上安装适当版本的 Java。可以使用以下命令验证 Java 是否已安装:

java -version

3、创建一个非特权用户:为了安全起见,建议使用专用的非特权用户来运行 Elasticsearch。您可以使用以下命令创建新用户并切换到该用户:

sudo adduser elasticsearch
sudo su - elasticsearch

下载 Elasticsearch:访问 Elasticsearch 官方网站https://www.elastic.co/cn/elasticsearch/下载合适的版本。您可以选择稳定版或预览版,根据自己的需求选择正确的版本。

分配权限(正式实操)

ES不能使用root来启动,必须使用普通用户才能安装启动。

启动ElasticSearch

创建用户组

创建了一个名字为elasticsearch的用户组

groupadd elasticsearch

创建用户,并设置密码

useradd gys
passwd xxx

用户添加到elasticsearch用户组

usermod -G elasticsearch gys

指定用户操作目录的一个操作权限

这里的前提是已经把elasticsearch压缩包解压,然后把gys用户的操作权限加到该文件下

chown -R gys /usr/local/elasticsearch/elasticsearch-7.6.1

使用

visudo

编辑权限,在root ALL=(ALL) ALL的下面加一段话,

gys ALL=(ALL) ALL

在这里插入图片描述
添加成功之后保存退出(esc,:wq)

切换用户

su gys

解压elasticsearch

在解压的过程中,可能会有人使用tar -zxvf+压缩文件,这里可能会遇到错误是:gzip: stdin: unexpected end of file,这样的错误信息。
那么可以把解压命令中的z去掉,也就是 tar-xvf。
或者可能有人会使用finalshell直接把文件进去,可能也会遇到类似的问题,这里建议使用上传文件,如果直接拖进去可能会造成压缩包的文件缺失。

修改es的配置文件

进入到es的config目录

cd /usr/local/elasticsearch/elasticsearch-7.6.1/config

修改相关信息

vim elasticsearch.yml

把cluster.name…解开注释
在这里插入图片描述
node.name解开注释
在这里插入图片描述
network.host解开注释,并设置为0.0.0.0,任意主机都能访问到
在这里插入图片描述
http.port解开注释
在这里插入图片描述
cluster.initial_master_nodes解开注释,这里和节点的名称是一致的
在这里插入图片描述
把这些信息加到配置文件的最后

bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true   //设置跨域
http.cors.allow-origin: "*"

具体含义:
bootstrap.system_call_filter: false:该配置用于禁用 Elasticsearch 在启动时检查系统调用过滤器。系统调用过滤器是一种安全机制,用于限制 Elasticsearch 进程能够执行的系统调用。通过将此配置设置为 false,Elasticsearch 将跳过系统调用过滤器的检查。

bootstrap.memory_lock: false:Elasticsearch 使用内存锁定(mlock)来确保其分配的堆内存不会被交换到磁盘或页面文件中。将该配置设置为 false 表示禁用内存锁定。禁用内存锁定可能会导致 Elasticsearch 在高负载情况下出现性能问题,因为操作系统可能会将内存页交换到磁盘上。

http.cors.enabled: true:该配置用于启用跨源资源共享(CORS)。CORS 是一种浏览器安全机制,用于控制不同源网站之间的资源访问权限。通过将此配置设置为 true,Elasticsearch 将允许来自任何源的跨域 HTTP 请求。

http.cors.allow-origin: “*”:该配置指定允许的跨域请求的来源。通配符 * 表示允许来自任何源的跨域请求。您也可以指定特定的域名或 IP 地址。
在这里插入图片描述
然后保存并退出

修改jvm.option,调整jvm堆内存大小

cd /usr/local/elasticsearch/elasticsearch-7.6.1/configvi jvm.options

在这里插入图片描述

可能出现的问题

1、普通用户打开文案金的最大数限制
问题错误信息描述:
max file descriptors [4096]for elasticsearch process likely too low.increase to at least [65536]
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除Iiux系统当中打开文件最大数目的限制,不然ES启动就会抛错
三台机器使用baiqil用户执行以下命令解除打开文件数据的限制

进入文件:

sudo vi /etc/security/limits.conf

加入以下内容:

* soft nofile 65535
* hard nofile 65535

保存退出

启动

进入到elassearch的bin目录下:
执行:

./elasticsearch -d

上面这种是后台运行,也就是服务器退出之后该程序还在运行状态中
或者使用该命令也是后台运行

nohup ./bin/elasticsearch > nohup.out 2>&1 &

验证是否启动成功

使用ip+9200在浏览器运行,如果出现下面这些说明是已经运行成功了。
在这里插入图片描述

总结提升

Elasticsearch 是一个开源的分布式搜索和分析引擎,具有强大的全文搜索能力和实时数据分析功能。下面是关于 Elasticsearch 的总结提升:

高性能的全文搜索:Elasticsearch 使用倒排索引和分布式搜索算法,能够快速地对海量数据进行全文搜索。它支持复杂的查询语法,并且能够智能地处理词干、拼写错误纠正和近义词等搜索相关性问题。

水平扩展和高可用性:Elasticsearch 可以轻松地水平扩展到多个节点,以应对高并发和大规模数据存储的需求。它使用分片和复制机制来保证数据的可靠性和高可用性,即使有节点故障也能确保系统的正常运行。

实时数据分析:Elasticsearch 不仅可以用于搜索,还可以用于实时数据分析和聚合。它支持聚合操作、多维度分析和可视化。通过与 Kibana 等工具的集成,可以方便地创建仪表盘和报表,帮助用户深入理解数据。

强大的插件生态系统:Elasticsearch 拥有丰富的插件生态系统,可以满足各种不同的业务需求。例如,通过插件可以实现与其他数据源的集成、自定义分析器和搜索过滤器、数据监控和警报等功能扩展。

多种语言支持:Elasticsearch 提供了多种语言的客户端库,方便开发者在各种编程语言中使用 Elasticsearch。无论是 Java、Python、JavaScript 还是其他主流语言,都可以轻松地与 Elasticsearch 进行交互。

易于安装和部署:Elasticsearch 的安装和部署相对简单,官方提供了各个操作系统的安装包和文档教程。它也适合在云环境中部署,如 AWS、Azure 和 Google Cloud 等。

总的来说,Elasticsearch 是一个功能强大、性能卓越的搜索和分析引擎,适用于各种场景,如电子商务网站的商品搜索、日志分析、实时监控等。通过合理的配置和优化,可以将其性能发挥到极致,提供快速、可靠的数据搜索和分析服务。

相关文章:

ElasticSearch的安装部署-----图文介绍

文章目录 背景什么是ElasticSearch使用场景 ElasticSearch的在linux环境下的安装部署前期准备分配权限(正式实操)启动ElasticSearch创建用户组创建用户,并设置密码用户添加到elasticsearch用户组指定用户操作目录的一个操作权限切换用户 解压elasticsearch修改es的配…...

Unity粒子系统ParticleSystem各模块及其参数学习

粒子系统控制面板默认有4个模块:Particle System(主模块),Emission(发射模块), Shape(形状模块),Renderer(渲染器模块) 1.Particle …...

vue3实现卡片翻牌

vue3实现塔罗牌翻牌 前言一、操作步骤1.布局2.操作3.样式 总结 前言 最近重刷诡秘之主,感觉里面的塔罗牌挺有意思,于是做了一个简单的塔罗牌翻牌动画(vue3vitets) 一、操作步骤 1.布局 首先我们定义一个整体的塔罗牌盒子&…...

算法训练营day45|动态规划 part07:完全背包 (LeetCode 70. 爬楼梯(进阶)、322. 零钱兑换、279.完全平方数)

文章目录 70. 爬楼梯(进阶)(求排列方法数)思路分析代码实现 322. 零钱兑换(求等于背包重量的最小物品数)思路分析代码实现思考总结 279.完全平方数 (求等于背包重量的最小物品数)思路分析代码实现 70. 爬楼梯(进阶)(求排列方法数) 题目链接🔥 假设你正在爬楼梯。需…...

【大模型】更强的开源可商用的中英文大语言模型baichuan2来了,从零开始搭建

【大模型】更强的开源可商用的中英文大语言模型baichuan2来了,从零开始搭建 Baichuan 2 介绍技术报告github 地址 模型下载开放协议协议 测试评估通用领域测试7B 模型结果13B 模型结果 法律、医疗7B 模型结果13B 模型结果 数学、代码7B 模型结果13B 模型结果 多语言…...

ElasticSearch系列-简介与安装详解

全文检索 讲ElasticSearch之前, 需要先提一下全文检索.全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 …...

Layui + Flask | 表单组件(组件篇)(07)

http://layui.dev/docs/2.8/form 表单组件 form 是包含输入框、选择框、复选框、开关、单选框等表单项组件的集合,主要用于对表单域进行各类动态化渲染和相关的交互操作。form是 Layui 最常用的组件之一。 表单布局 form 组件自身的普通布局。其要点为: 通过 class="lay…...

【实践篇】Redis最强Java客户端Redisson

文章目录 1. 前言2. Redisson基础概念2.1 数据结构和并发工具2.1.1 对Redis原生数据类型的封装和使用2.1.2 分布式锁实现和应用2.1.3 分布式集合使用方法 2.2 Redisson的高级特性2.2.1 分布式对象实现和使用2.2.2 分布式消息队列实现和使用2.2.3 分布式计数器实现和使用 3. 参考…...

esxi扩容磁盘

esxi扩容磁盘 fdisk -l没用扩容 登录Esxi管理界面扩容磁盘 进入服务器查看 没用变化 (有些可能进去磁盘就是更新,直接就是扩容的,但是没扩容就需要执行下面的命令) [root234-ces /]# fdisk -l Disk /dev/sda: 85.9 GB, 858993…...

核心实验21_BGP高级(了解)(配置略)_ENSP

项目场景: 核心实验21_BGP基础_ENSP 通过bgp实现省市互通。 实搭拓扑图: 具体操作: 其他基础配置略(接口地址,ospf) 1.BGP邻居建立: R1: [R1]bgp 200 [R1-bgp]peer 10.2.2.2 as-number 200 …...

宝塔安装python和openssl

宝塔安装python和openssl OpenSSL Centos7 openssl 升级 1.1.1k.tar.gz centos7系统安装Vicuna(小羊驼)聊天机器人 CentOS中输入yum报错:sudo: unable to execute /bin/yum: No such file or directory opensslrpm安装指南-让你的网站更加…...

TDengine 3.1.1.0 来啦!更新如下

自 3.0 版本发布以来,在研发人员和社区用户的不断努力下,TDengine 做了大量更新,产品稳定性和易用性也在不断提升。近日,TDengine 3.1.1.0 成功发布,本文将向大家简单介绍一下该版本涉及的重大更新。 写在前面 伴随 …...

YSA Toon (Anime/Toon Shader)

这是一个Toon着色器/Cel阴影着色器,用于Unity URP 此着色器的目的是使角色或物体阴影实时看起来尽可能接近真实的动画或卡通效果 可以用于游戏,渲染,插图等 着色器特性,如:面的法线平滑、轮廓修复、先进的边缘照明、镜面照明、完全平滑控制 这个文档包括所有的功能https:/…...

LabVIEW通过IEC61508标准验证ITER联锁系统

LabVIEW通过IEC61508标准验证ITER联锁系统 保护环境要求系统能够保护机器免受工厂系统故障或机器危险操作造成的严重损坏。负责此功能的ITER系统是联锁控制系统(ICS)。该系统通过中央联锁系统(CIS)监督和控制不同的工厂联锁系统&…...

如何处理日期和时间?

处理日期和时间是计算机编程中的常见任务&#xff0c;无论是在C语言还是其他编程语言中。C语言提供了一些库函数来处理日期和时间&#xff0c;主要是通过<time.h>头文件中的函数来完成的。在本文中&#xff0c;我将详细解释如何在C语言中处理日期和时间&#xff0c;包括日…...

【开发】视频集中存储/直播点播平台EasyDSS点播文件分类功能优化

视频推拉流EasyDSS视频直播点播平台&#xff0c;集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体&#xff0c;可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 TSINGSEE青犀视频的EasyDSS平台具有点播文件分类展示方法&#xf…...

论文多级编号-word2010

多级列表-定义新的多级列表 注意1.1中的两个1必须是灰色&#xff08;如果不是灰色&#xff0c;解决方法放在文本文末了&#xff09; 如果定义过程中发现1.1中的1不是灰色&#xff0c;如下图&#xff0c;那么需要操作下述步骤 点击文件-选项 取消勾选自动编号列表。确定后关闭文…...

Jetpack Compose基础组件之 — Text

Text的源码参数预览 Composable fun Text(text: String,modifier: Modifier Modifier,color: Color Color.Unspecified,fontSize: TextUnit TextUnit.Unspecified,fontStyle: FontStyle? null,fontWeight: FontWeight? null,fontFamily: FontFamily? null,letterSpac…...

动手学深度学习——Windows下的环境安装流程(一步一步安装,图文并配)

目录 环境安装官网步骤图文版安装Miniconda下载包含本书全部代码的压缩包使用conda创建虚拟&#xff08;运行&#xff09;环境使用conda创建虚拟环境并安装本书需要的软件激活之前创建的环境打开Jupyter记事本 环境安装 文章参考来源&#xff1a;http://t.csdn.cn/tu8V8 官网…...

打印日志遇到的问题,logback与zookeeper冲突

在做项目时需要打印日志引入了logback打印日志&#xff0c;但是一直无法打印&#xff0c;于是一路查找原因。发现zookeeper中默认带的有个logback和我自己引入的logback版本冲突了&#xff0c;这样直接使用exclusions标签将zookeeper中自带的日志框架全部排除即可 按理说到这一…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...