1、Elasticsearch 8.X 概述与安装

news2024/12/23 14:17:05

第1章 Elasticsearch 8.X 概述

1.1 Elasticsearch 8.X
距 2019 年 Elasticsearch 上一大版本 7.0 发布至今已经过去了 3 年。2022 年 2 月 11 日,Elasticsearch 发布了全新的 8.0 正式版本,这着实给了我们不
小的惊喜!新版本中通过改进 Elasticsearch 的矢量搜索功能、对现代自然语言处理模型的
原生支持、不断简化的数据上线过程,以及精简的安全防护体验
,在速度、扩展幅度、相关
性和简便性方面,让搜索引擎技术迎来了一个全新的时代。

1.2 Elasticsearch 新特性
从 2019 年 4 月 10 日 Elasticsearch7.0 版本的发布,到 2022 年 2 月 11 日 Elasticsearch8.0
版本的发布的近 3 年间,基于不断优化的开发设计理念,Elasticsearch 发布了一系列的小版
本。这些小版本在以下方面取得了长足的进步并同时引入一些全新的功能:
➢ 减少内存堆使用,完全支持 ARM 架构,引入全新的方式以使用更少的存储空间,从
而让每个节点托管更多的数据
➢ 降低查询开销,在大规模部署中成效尤为明显
➢ 提高日期直方图和搜索聚合的速度,增强了页面缓存的性能,并创建了一个新的
“pre-filter”搜索短语
➢ 在 Elasticsearch 7.3 和 Elasticsearch 7.4 版中,引入了对矢量相似函数的支持
在最新发布的 8.0 版本中,也同样增加和完善了很多新的功能
➢ 增加对自然语言处理 (NLP) 模型的原生支持,让矢量搜索功能更容易实现,让客户和
员工能够使用他们自己的文字和语言来搜索并收到高度相关的结果。
➢ 直接在 Elasticsearch 中执行命名实体识别、情感分析、文本分类等,而无需使用额外
的组件或进行编码。
➢ Elasticsearch 8.0 基于 Lucene 9.0 开发的,那些利用现代 NLP 的搜索体验,都可以借
助(新增的)对近似最近邻搜索的原生支持,快速且大规模地实现。通过 ANN,可以
快速并高效地将基于矢量的查询与基于矢量的文档语料库(无论是小语料库、大语料库
还是巨型语料库)进行比较。
➢ 可以直接在 Elasticsearch 中使用 PyTorch Machine Learning 模型(如 BERT),并在
Elasticsearch 中原生使用这些模型执行推理。

第2章 Elasticsearch 安装 & 使用
2.1 Java 17 安装
在这里插入图片描述
从官网截图上可以看到,Elasticsearch最新版本也终于开始拥抱号称史上最快的JDK了。
所以在安装 ES 软件前,需要下载使用 Java JDK17

2.1.1 下载软件
Java 的官方地址:https://www.oracle.com/java
下载地址:https://www.oracle.com/java/technologies/downloads

2.1.2 软件升级
对于 Java 开发人员来讲,更熟悉的开发版本应该是 JDK1.8,突然需要升级到 JDK17,
其实本身会感觉有点不适应,甚至会有点排斥。担心升级后会对现有的程序代码造成影响。
其实,对于 JDK1.8,最新版本的 JDK17 增加了很多的语法特性:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于大多数项目而言,想要利用这些新的特性,是需要修改代码的,但性能除外。也就是说,
升级 JDK 版本,现有代码即使不进行修改,也不会出现兼容问题,但性能会得到极大的提
升,并且高吞吐量垃圾回收器比低延迟垃圾回收器更快,更重要的是它可以免费商用。
对于升级版本而言,如果你依然有顾虑,一个好的消息就是我们可以下载含有适配 JDK
的 ES 版本,上面提到的内容基本上就不用考虑,一切就是这么顺滑,对吗?

2.2 Elasticsearch 安装 & 使用
2.2.1 下载软件
Elasticsearch 的官方地址:https://www.elastic.co/cn/
我们选择略早的 8.1.0 版本
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
在这里插入图片描述
可以根据情况自行选择不同操作系统的版本
在这里插入图片描述
2.2.2 安装软件
本课程着重讲解新版 ES 软件的特性及应用,所以采用 linux 集群配置。

  1. 集群规划
    为了演示软件的使用,我们这里准备三台 linux 虚拟机,用于配置 Elasticsearch 集群。
    启动集群后,每台虚拟机的进程如下:
    在这里插入图片描述
  2. 将压缩包 elasticsearch-8.1.0-linux-x86_64.tar.gz 上传到虚拟机中

解压缩文件到自定义路径,笔者解压路径为:/opt/module,解压后,软件路径为:
/opt/module/elasticsearch-8.1.0

# 切换目录
cd software
# 解压缩
tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz -C /opt/module

解压后的 Elasticsearch 的目录结构如下
在这里插入图片描述
在这里插入图片描述
3) 当前安装 ES 版本为 8.1.0,自带 JDK,所以当前 Linux 虚拟机节点无需配置 Java 环境
4) 创建 linux 新用户 es, 数据文件,证书目录, 并修改 Elasticsearch 文件拥有者

# 新增 es 用户
useradd es
# 为 es 用户设置密码
passwd es
# 创建数据文件目录
mkdir /opt/module/elasticsearch-8.1.0/data
# 创建证书目录
mkdir /opt/module/elasticsearch-8.1.0/config/certs
#切换目录
cd /opt/module/elasticsearch-8.1.0
# 修改文件拥有者
chown -R es:es /opt/module/elasticsearch-8.1.0
  1. 在第一台服务器节点 es-node-1 设置集群多节点通信密钥
# 切换用户
su es
# 签发 ca 证书,过程中需按两次回车键
bin/elasticsearch-certutil ca
# 用 ca 证书签发节点证书,过程中需按三次回车键
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 将生成的证书文件移动到 config/certs 目录中
mv elastic-stack-ca.p12 elastic-certificates.p12 config/certs
  1. 在第一台服务器节点 es-node-1 设置集群多节点 HTTP 证书
# 签发 Https 证书
bin/elasticsearch-certutil http
# 以下是每次要求输入时,需要输入的内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解压刚刚生成的 zip 包

# 解压文件
unzip elasticsearch-ssl-http.zip
将解压后的证书文件移动到 config/certs 目录中
# 移动文件
mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs
  1. 修改主配置文件:config/elasticsearch.yml
# 设置 ES 集群名称
cluster.name: es-cluster 
# 设置集群中当前节点名称
node.name: es-node-1
# 设置数据,日志文件路径
path.data: /opt/module/elasticsearch-8.1.0/data
path.logs: /opt/module/elasticsearch-8.1.0/log
# 设置网络访问节点
network.host: linux1
# 设置网络访问端口
http.port: 9200
# 初始节点
discovery.seed_hosts: ["linux1"]
# 安全认证
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
 enabled: true
 keystore.path: /opt/module/elasticsearch-8.1.0/config/certs/http.p12
 truststore.path: /opt/module/elasticsearch-8.1.0/config/certs/http.p12
xpack.security.transport.ssl:
 enabled: true
 verification_mode: certificate
 keystore.path: 
/opt/module/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
 truststore.path: 
/opt/module/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
# 此处需注意,es-node-1 为上面配置的节点名称
cluster.initial_master_nodes: ["es-node-1"]
http.host: [_local_, _site_]
ingest.geoip.downloader.enabled: false
xpack.security.http.ssl.client_authentication: none
  1. 启动 ES 软件
# 启动 ES 软件
bin/elasticsearch

第一次成功启动后,会显示密码,请记住,访问时需要。只有第一次才有哟!

在这里插入图片描述
上面图形内容因为涉及到多节点集群配置以及 kibana 配置,所以极其重要!!!
如果没有出现上面图片,出现下面图片也可以按照指定方式进行配置。
在这里插入图片描述
在这里插入图片描述
注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的
http 协议 RESTful 端口。
9) 访问服务器节点 https://虚拟机地址:9200
因为配置了安全协议,所以使用 https 协议进行访问,但由于证书是自己生成的,并不
可靠,所以会有安全提示
在这里插入图片描述
选择继续即可
在这里插入图片描述

输入账号,密码登录即可
在这里插入图片描述
10) 修改集群中其他节点的配置文件:config/elasticsearch.yml
linux2: 证书直接拷贝,其他步骤完全相同,配置文件中修改如下内容即可

# 设置节点名称
node.name: es-node-2
# 设置网络访问主机
network.host: linux2

linux3:证书直接拷贝,其他步骤完全相同,配置文件中修改如下内容即可

# 设置节点名称
node.name: es-node-3
# 设置网络访问主机
network.host: linux3
  1. 依次启动集群的三台服务器节点, 不要忘记切换用户后再启动
    linux1:
# 后台启动服务
bin/elasticsearch -d
linux2:
# 后台启动服务
bin/elasticsearch -d
linux3:
# 后台启动服务
bin/elasticsearch -d

2.2.3 问题解决
➢ Elasticsearch 是使用 java 开发的,8.1 版本的 ES 需要 JDK17 及以上版本。默认安装包
中带有 JDK 环境,如果系统配置 ES_JAVA_HOME 环境变量,那么会采用系统配置的
JDK。如果没有配置该环境变量,ES 会使用自带捆绑的 JDK。虽然自带的 JDK 是 ES
软件推荐的 Java 版本,但一般建议使用系统配置的 JDK。
➢ Windows 环境中出现下面的错误信息,是因为开启了 SSL 认证
在这里插入图片描述
修改 config/elasticsearch.yml 文件,将 enabled 的值修改为 false

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, 
and Agents
xpack.security.http.ssl:
 enabled: false
 keystore.path: certs/http.p12

➢ 启动成功后,如果访问 localhost:9200 地址后,弹出登录窗口

在这里插入图片描述
第一次启动时,因为开启了密码验证模式,在启动窗口中会显示输入账号和密码。如果
没有注意到或没有找到账号密码,可以设置免密登录:

# Enable security features
xpack.security.enabled: false

➢ 双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改
config/jvm.options 配置文件

# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配
内存
# Xms represents the initial size of total heap space
# 设置 JVM 最大可用内存为 1G
# Xmx represents the maximum size of total heap space
-Xms4g
-Xmx4g

➢ 启动后,如果密码忘记了,怎么办?可以采用指令重置密码

# 使用 es 用户,执行指令,重置 elastic 用户密码
bin/elasticsearch-reset-password -u elastic

在这里插入图片描述
如果只启动单一节点,此操作可能会失败,至少启动 2 个节点,测试成功

2.3 Kibana 安装 & 使用
Elasticsearch 的开源分析可视化工具,与存储在 Elasticsearch 中的数据进行交互
在这里插入图片描述
2.3.1 下载软件
Elasticsearch 下载的版本是 8.1.0,这里我们选择同样的 8.1.0 版本
下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana

在这里插入图片描述
2.3.2 安装软件
本课程着重讲解新版 ES 软件的特性及应用,所以对应的 Kibana 也采用 linux 集群配置。

  1. 将压缩包 kibana-8.1.0-linux-x86_64.tar.gz 上传到虚拟机中

解压缩文件到自定义路径,笔者解压路径为:/opt/module,解压后,软件路径为:
/opt/module/kibana-8.1.0

# 切换目录
cd software
# 解压缩
tar -zxvf kibana-8.1.0-linux-x86_64.tar.gz -C /opt/module

解压后的 kibana 的目录结构如下:
在这里插入图片描述
2) 给 Kibana 生成证书文件

# 在 ES 服务器中生成证书,输入回车即可
cd /opt/module/elasticsearch-8.1.0
bin/elasticsearch-certutil csr -name kibana -dns linux1
# 解压文件
unzip csr-bundle.zip
# 将解压后的文件移动到 kibana 的 config 目录中
mv kibana.csr kibana.key /opt/module/kibana-8.1.0/config/
# 生成 crt 文件
openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt
  1. 修改配置文件:kibana.yml
# 服务端口
server.port: 5601
# 服务主机名
server.host: "linux1"
# 国际化 - 中文
i18n.locale: "zh-CN"
# ES 服务主机地址
elasticsearch.hosts: ["https://linux1:9200"]
# 访问 ES 服务的账号密码
elasticsearch.username: "kibana"
elasticsearch.password: "fnqIYLQGv81iyW5nWeZ-"
elasticsearch.ssl.verificationMode: none
elasticsearch.ssl.certificateAuthorities: 
[ "/opt/module/elasticsearch-8.1.0/config/certs/elasticsearch-ca.pem" ]
server.ssl.enabled: true
server.ssl.certificate: /opt/module/kibana-8.1.0/config/kibana.crt
server.ssl.key: /opt/module/kibana-8.1.0/config/kibana.key
  1. 修改软件目录拥有者
# 切换目录
chown -R es:es /opt/module/kibana-8.1.0/
  1. 切换用户,启动软件
# 切换用户
su es
# 启动软件
bin/kibana
# 也可以后台启动
nohup /opt/module/kibana-8.1.0/bin/kibana >kibana.log 2>&1 &

2.3.3 应用软件
打开浏览器,输入访问地址
在这里插入图片描述
在这里插入图片描述
输入 elastic 账号和密码即可访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“优化”城市出行体验——山海鲸智慧交通解决方案

随着城市化进程的不断加速,城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。 山海鲸可视化打造城市智慧交通系列解决方案模板,解决方案以“数字孪生技术”为核心,通过数据分析、人工智能和物联…

[XR-FRAME] 1.O4 文档导览 || XR-FRAME / 让场景更丰富,环境数据

[XR-FRAME] 1.O4 文档导览 || XR-FRAME / 让场景更丰富&#xff0c;环境数据 文档导读&#xff0c;知识点整理。 开始 | 微信开放文档 新引入 标签 <xr-env env-data"xr-frame-team-workspace-day" /><xr-env> 描述&#xff1a;定义环境的标签。…

如何去构建高效软件:耦合、内聚与结构化策略(软件设计师笔记)

&#x1f600;前言 随着软件开发变得越来越复杂&#xff0c;如何有效、有序地构建和维护这些复杂系统成为了每一个开发者和设计师所面临的挑战。对于这一挑战&#xff0c;结构化开发方法为我们提供了答案。这一方法不仅帮助我们理解如何将大型系统分解为小模块&#xff0c;还为…

浅谈智能型电动机保护器在孟加拉水泥厂的应用

摘要&#xff1a;电动机设备是水泥企业中应用较广泛的动力装置&#xff0c;而水泥生产企业属于能耗高、污染大又需要设备连续不间断工作的行业&#xff0c;电动机作为水泥行业设备的动力来源&#xff0c;其安全、稳定可靠的运转对水泥行业的平稳生产起着至关重要的作用。 Abst…

Linux驱动开发笔记

疑问 file_operation中每个操作函数的形参中inode的作用 设备树中compatible属性中厂商和型号如何填写 file_operation定义了Linux内核驱动的所有的操作函数&#xff0c;每个操作函数与一个系统调用对应&#xff0c;对于字符设备来说&#xff0c;常用的函数有&#xff1a;lls…

【Vue.js】使用Element中的Mock.js搭建首页导航左侧菜单---【超高级教学】

一&#xff0c;Mock.js 1.1 认识Mock.js Mock.js是一个用于前端开发中生成随机数据、模拟接口响应的 JavaScript 库。模拟数据的生成器&#xff0c;用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率 总结来说&#xff0c;Element中的Mock.js是一个用于…

数据安全态势管理:什么是事实,什么是虚构?

考虑到组织存储大量数据的日益复杂的云环境&#xff0c;数据安全态势管理 ( DSPM )的兴起并不令人意外。使组织能够全面了解云数据资产和敏感数据的安全状况的流程对于当今的安全团队来说非常有价值。 尽管 DSPM 的重要性日益凸显&#xff0c;但人们对于它能为企业做什么和不能…

Qt中额外复制新类到工程中出现无法解析的外部符号

无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl FormCloudFilter::metaObject(v 错误原因&#xff1a;在C项目中&#xff0c;新添加了类之后&#xff0c;编译出现错误&#xff0c;原因是我们新添加的类未被Qt编译成moc文件。 解决方法&#xff1a; …

SpringCloud 学习(三)Ribbon 和 Feign

4. Netflix.Ribbon 4.1 简介 (1) 概念 Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡工具。 (2) 负载均衡&#xff08;LB&#xff1a;LoadBalance&#xff09;和集群架构 应用集群&#xff1a;将同一应用部署到多台机器上&#xff0c;组成处理集群&…

文档升级 | iTOP-RK3568开发板ADB工具的安装和使用

iTOP -RK3568开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 《iTOP-3568开发板ADB使用手册》进行了文档升级&#xff0c;对ADB工具的安装和使用进行了更全面的步骤介绍。 第1章 安装adb工…

git revert 撤销之前的提交

git revert 用来撤销之前的提交&#xff0c;它会生成一个新的 commit id 。 输入 git revert --help 可以看到帮忙信息。 git revert commitID 不编辑新的 commit 说明 git log 找到需要撤销的 commitID &#xff0c; 然后执行 git revert commitID &#xff0c;会提示如下…

DataGrip初始化设置

DataGrip初始化设置 自定义设置 具体配置项 Customize —> Allsettins… 外观 退出IDE之前无需确认 启动IDE自动打开之前的项目 Appearance & Behavior —> System Settings —> Confirm before exiting the IDE Appearance & Behavior —> System Settin…

写一个Chrome浏览器插件(manifest v3)

目录 1、创建manifest.json 文件 2、开始写popup页面以及对应的逻辑。 2.1 popup 页面 2.2 后台运行 background.js 2.3 content.js 2.4 popup页面的js文件 3、chrome 浏览器加载本项目 4、参考文档 1、创建manifest.json 文件 首先需要在项目的根目录下创建manifes…

深入剖析Redis系列- Redis数据结构之哈希

1.11.5哈希类型(hash) Redis的hash 是一个string类型的key和value的映射表&#xff0c;这里的value是一系列的键值对&#xff0c;hash特别适合用于存储对象。 哈希类型的数据操作总的思想是通过key和field操作value&#xff0c;key是数据标识&#xff0c;field是域&#xff0c;…

基于SSM+Vue的舞蹈网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

大二上Redis学习笔记

redis非关系型数据库NOSQL&#xff0c;用c语言编写的,基于内存的数据库&#xff0c;每秒支持十几万的读写操作&#xff0c;性能远超数据库&#xff0c;还支持集群、分布式、主从同步等配置。 Redis基本功能 1 发布订阅系统 2 地图信息分析 3 计时器和计数器 redis运行的图形界…

【腾讯云TDSQL-C Serverless 产品体验】使用 Python向TDSQL-C添加读取数据实现词云图

关于TDSQL-C Serverless介绍 TDSQL-C 是腾讯云自主研发的新一代云原生关系型数据库。 它融合了传统数据库、云计算和新硬件技术的优势,100%兼容 MySQL,为用户提供具有极致弹性、高性能、高可用性、高可靠性和安全性的数据库服务。 TDSQL-C 实现了超过百万每秒的高吞吐量,支持…

SpringCloud 学习(四)Hystrix

6. Netflix.Hystrix 6.1 简介 ● 扇出 多服务之间调用&#xff0c;若微服务 A 调用微服务 B 和微服务 C&#xff0c;微服务 B 和 微服务 C 又调用其他微服务&#xff0c;这就是扇出 ● 服务雪崩 若扇出的链路上某个微服务的调用响应时间过长或者不可用&#xff0c;么此扇出…

ESP32在CAN(TWAI)波特率不同时收发数据,导致总线错误无法恢复

问题描述&#xff1a; 总线上有两个设备&#xff0c;主机&#xff1a;100ms周期发送数据。从机&#xff1a;以不同波特率发送数据&#xff0c;再把从机波特率调节至主机波特率一致无法通信。 环境&#xff1a;VSCODE IDF-v5.0 问题分析&#xff1a; 我们先看下ESP32技术参…

Spring 学习(四)注解实现自动装配及注解开发

1. 注解实现自动装配 JDK 1.5 开始支持注解&#xff0c;Spring 2.5 开始支持注解。 使用须知 导入约束 配置注解的支持&#xff08; <context:annotation-config/> &#xff09; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns&qu…