1、Elasticsearch 8.X 概述与安装

第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: truekeystore.path: /opt/module/elasticsearch-8.1.0/config/certs/http.p12truststore.path: /opt/module/elasticsearch-8.1.0/config/certs/http.p12
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: 
/opt/module/elasticsearch-8.1.0/config/certs/elastic-certificates.p12truststore.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: falsekeystore.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.rhkb.cn/news/141739.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局域网点歌系统

网盘下载 1、先打开服务端,设置好IP地址 2、客户端打开连接服务器 3、客户端点歌,服务器即可播放

【RV1103】RTL8723bs (SD卡形状模块)驱动开发

文章目录 前言硬件分析Luckfox Pico的SD卡接口硬件原理图LicheePi zero WiFiBT模块总结 正文Kernel WiFi驱动支持Kernel 设备树支持修改一:修改二: SDK全局配置支持 wifi全局编译脚本支持编译逻辑拷贝rtl8723bs的固件到文件系统的固定目录里面去 上电后手…

jvs-rules(规则引擎)和jvs智能bi(自助式数据分析)9.22更新内容

规则引擎更新功能 新增: 1.新增节点匹配筛选 用于做多个条件的数据筛选,以便将符合条件的数据传递给下一个节点进行处理,通常用于实现复杂的查询逻辑。 2.复合变量节点新增判断条件选项说明 用户可以根据自己的需求,为复合变量节点添加不…

深入学习计算机组成原理文章体系

大家好,欢迎阅读《计算机组成原理》的系列文章,本系列文章主要教内容是从零学习计算机组成原理,内容通俗易懂,大家好好学习吧!!! 更多的优质内容,请点击以下链接查看哦~~ 序号链接…

Java深入理解线程的三大特性

目录 1 CPU缓存导致可见性问题2 线程切换导致原子性问题3 性能优化导致有序性问题4 JMM(Java Memory Model)5 volatile6 synchronized 1 CPU缓存导致可见性问题 线程的三大特性: 可见性:Visibility有序性:Ordering原子性:Atomic…

ShapeableImageView 不只是圆形ImageView

偶然间看到了这位老哥的 https://juejin.cn/post/6869376452040196109#comment 文章&#xff0c;发现了ShapeableImageView–一个多形状的ImageView &#xff0c;虽然似乎发布了很久了&#xff0c;现在学习不晚。 效果图 布局文件 <com.google.android.material.imageview.S…

图形处理软件Photoshop Elements 2020 mac中文版 ps简化版

Photoshop Elements 2020 mac是一款非常实用的图形处理工具。ps elements 2020 mac中文版可以帮助您自动生成照片和视频作品的功能&#xff0c;采用Adobe Sensei AI技术可进行图像组织、编辑和创建等。Photoshop Elements 2020 for Mac激活版可以帮助您轻松整理照片和视频&…

【LeetCode热题100】--189.轮转数组

189.轮转数组 数组翻转&#xff1a; 当我们将数组的元素向右移动k次后&#xff0c;尾部k mod n个元素会移动至数组 头部&#xff0c;其余元素向后移动k mod n个位置 该方法为数组的翻转&#xff1a;我们可以先将所有元素翻转&#xff0c;这样尾部k mod n个元素就被移至数组头…

ROS2 从头开始:第 08/8回 - 使用 ROS2 生命周期节点简化机器人软件组件管理

一、说明 欢迎来到我在 ROS2 上的系列的第八部分。对于那些可能不熟悉该系列的人,我已经涵盖了一系列主题,包括 ROS2 简介、如何创建发布者和订阅者、自定义消息和服务创建、

医学影像SAM

医学影像SAM 1. 医学影像SAM1.1. MedSAM1.2. SAM-Adapter1.3. Medical-SAM-Adapter1.4. sam-med2d1.5. MS-SAM 下面整理了一些比较好的博客。 1. 医学影像SAM 由于sam在医学影像上表现不是特别好&#xff0c;在该类型数据集上就需要再训练。 1.1. MedSAM MedSAM&#xff1a…

WebGL绘制圆形的点

目录 前言 如何实现圆形的点&#xff1f; 片元着色器内置变量&#xff08;gl_FragCoord、gl_PointCoord&#xff09; gl_PointCoord的含义 示例程序&#xff08;RoundedPoint.js&#xff09; 代码详解 前言 本文将讨论示例程序RoundedPoint&#xff0c;该程序绘制了圆…

Tomcat 开启远程调试

Tomcat 部署的 war包工程开启远程调试 Linux服务器下&#xff0c;编辑Tomcat bin 目录下的 startup.sh 文件 vim startup.sh在第一行加入&#xff1a;(不换行&#xff0c;在同一行) declare -x CATALINA_OPTS"-server -Xdebug -Xnoagent -Djava.compilerNONE -Xrunjdwp:…

vue3+eleement plus日历选择季度

<template><div class"el-quarter-wrap"><el-popover width"280" v-model"visible"><template #reference><el-input v-model"quarterDate" placeholder"请选择季度" clearable :prefix-icon&qu…

[old]TeamDev DotNetBrowser Crack

TeamDev DotNetBrowser将 Chromium Web 浏览器添加到您的 .NET 应用程序中。在 WPF 和 WinForms 中显示现代网页。使用 DOM、JS、网络、打印等。在 Windows x86/x64/ARM64、macOS x64/Apple Silicon、Linux x64/ARM64 上运行&#xff0c;支持.NET Framework 4.5 特征 HTML5、C…

手机资讯:华为Mate60 Pro上手体验三天的使用体验

最近华为Mate60 Pro开售的消息引爆了整个数码科技圈&#xff0c;毕竟还没开发布会就直接开售新机&#xff0c;这放在整个手机界都是绝无仅有的&#xff0c;并且华为也官方放出了华为Mate60系列的所有参数配置&#xff0c;但唯独没有公开芯片型号和网络信号类型&#xff0c;不免…

图片分割处理(以玉米颗粒的图片分割为例)

问题&#xff1a; 为完成玉米颗粒分类任务&#xff0c;现需要处理训练图片&#xff0c;将以下图片中的玉米颗粒进行分割&#xff1a; 目标&#xff1a; 操作步骤&#xff08;完整代码附在最后&#xff0c;该部分为解释说明&#xff09; 一、提取通道并进行二值化 # 提取蓝…

利用ChatGPT写申请文书?国外大学对此有何看法?

现在&#xff0c;人工智能的发展确实引起了广泛的关注&#xff0c;尤其是在自然语言处理领域。 Chat GPT&#xff08;Generative Pre-trained Transformer&#xff09;作为一种人工智能驱动的自然语言处理工具&#xff0c;具有令人瞩目的功能。 它可以根据用户提出的需求&…

智慧工地工程项目管理平台源码,塔机安全监控管理系统;吊钩可视化管理系统;升降机监控系统;高支模监控系统;

智慧工地是指运用信息化手段&#xff0c;通过三维设计平台对工程项目进行精确设计和施工模拟&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生态圈&#xff0c;并将此数据在虚拟现实环境下与物联网采集到的工程信息进行数据挖掘分…

Netflix 零配置服务网格与按需集群发现

本文翻译自由 David Vroom, James Mulcahy, Ling Yuan, Rob Gulewich 编写的 Netflix 博客 Zero Configuration Service Mesh with On-Demand Cluster Discovery。 Netflix 相信大家并不陌生&#xff0c;在 Spring Cloud 生态中就有 Netflix 全家桶。多年前&#xff0c;我也曾…

【计算机网络】——数据链路层(应用:介质访问控制)

//仅做个人复习和技术交流&#xff0c;图片取自王道考研&#xff0c;侵删 一、大纲 1、介质访问控制 信道划分介质访问控制 随机访问介质访问控制 2、局域网 3、广域网 4、数据链路层设备 二、介质访问控制 省流&#xff1a;把广播信道通过介质访问控制机制 逻辑上转换为 …