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

Elasticsearch7.7.1集群不能相互发现的问题解决以及Elasticsearch7.7.1安装analysis-ik中文分词插件的应用

一、Elasticsearch7.7.1集群不能相互发现的问题解决

    在使用elasticsearch7.7.1搭建集群,使用了3台服务器作为节点,但在搭建的过程中发现每台服务器的elasticsearch服务都正常,但是不能相互发现,期间进行了一些配置的修改偶尔出现了相互发现,但没过多久又断了联系。蛋疼了一阵子。今天全力排查这方面的问题,目前看集群已经稳定。主要原因还是elasticsearch7.*版本有些不一样,网上的资料各个版本都有,但都比较老,好多配置项在7版本中已经废弃了,而到网上一找到处都充斥着这些老版本的使用教程,新的太少。下面是我使用elasticsearch7.7.1搭建集群最后使用的配置。

    elasticsearch7.7主要的配置项discovery.seed_hosts和cluster.initial_master_nodes,这是7.中重要的发现和集群初始化设置项。

    discovery.seed_hosts: Elasticsearch将绑定到可用的回送地址,并将扫描本地端口9300至9305,以尝试连接到在同一服务器上运行的其他节点,这里ES提供了自动群集检查,而无需进行任何配置。如果要与其他主机上的节点组成集群,则必须设置discovery.seed_hosts,提供集群中其他主机的列表,每个值都采用 host:port 或者 host 形式。

    cluster.initial_master_nodes: 首次启动全新的Elasticsearch集群时,会出现集群选举情况,该步骤确定了在第一次选举中符合主机资格的节点的集合。当你开启新的集群是 生产模式,你必须明确列出首次选举中符合主机资格的节点,使用 cluster.initial_master_nodes参数设置该列表。重新启动集群或者有新节点加入集群时,不应使用此设置。
在elasticsearch7.*中我使用的elasticsearch.yml配置如下:

cluster.name: test-es
node.name: node01
path.data: /opt/elasticsearch/data
path.logs: /opt/elasticsearch/log
network.host: 192.21.17.15
http.port: 9200
discovery.seed_hosts: ["192.21.17.15", "192.41.19.66", "192.88.117.14"]
#只在一台服务器上配置了以下这行,重新启动集群或者有新节点加入集群时,不应使用此设置。
cluster.initial_master_nodes: ["192.21.17.15", "192.41.19.66", "192.88.117.14"]http.cors.enabled: true
http.cors.allow-origin: "*"

    默认安装的es日志目录在/var/lib/elasticsearch下面,只能root权限查看,建议修改一下path.logs或者改一下原path的权限,日志目录中会有:集群名称.log文件,在这里查看各种日志非常方便排查问题。比如cluster.initial_master_nodes会配置报错以及主服务器挂了之后,会进行主服务器的切换等都有相应的日志。
#配置的时候如果没有配置cluster.initial_master_nodes会报错

master not discovered yet, this node has not previously joined a bootstrapped
[2020-06-17T][WARN ][o.e.c.c.ClusterFormationFailureHelper] [node01] master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and [cluster.initial_master_nodes] is empty on this node: have discovered [{node01}{n7JrlaC_TMGwNBcALLIFnA}{lCwPWtwDQWeUNiGIrScq5A}
#当在集群运行过程中,其中一台主服务器挂了之后,会进行主服务器的切换
[2020-06-17T][INFO ][o.e.c.s.ClusterApplierService] [node02] master node changed {previous [], current [{node03}{A_hBOpISQ12L3tu5DCWjUA}{e3H0NrtBS3WE1HUwOW3P1g

    关于集群的配置number_of_replicas和number_of_shards。number_of_replicas可以热配置,number_of_shards在集群创建的时候配置好,后面不能热更改。更改会报错:{Can't update non dynamic settings [[index.number_of_shards]] for open indices},搭建好的截图如下:

二、Elasticsearch7.7.1安装analysis-ik中文分词插件的应用 

    analysis-ik中文分词插件的GITHUB地址: GitHub - infinilabs/analysis-ik: 🚌 The IK Analysis plugin integrates Lucene IK analyzer into Elasticsearch and OpenSearch, support customized dictionary. 在页面中列出了IK version与ES version的相对应版本,即你所需要下载的IK版本一定要与ES版本相适应,否则就不能用了。比如给Elasticsearch7.7.1安装IK7.4.0版本的话在启动ES时就会报错如下:

org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.7.1.jar:7.7.1] Caused by: java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 7.4.0 but version 7.7.1 is running

以下为安装过程记录

#第1种方式:自己下载zip文件安装
user@u007:/usr/share/elasticsearch/plugins/$ mkdir ik; cd ik
user@u007:/usr/share/elasticsearch/plugins/ik$ sudo wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.1/elasticsearch-analysis-ik-7.7.1.zip
user@u007:/usr/share/elasticsearch/plugins/ik$ sudo unzip elasticsearch-analysis-ik-7.7.1.zip
user@u007:/usr/share/elasticsearch/plugins/ik$ sudo rm -f elasticsearch-analysis-ik-7.7.1.zip
#解压完重启ES
user@u007:/usr/share/elasticsearch/plugins/ik$ sudo /etc/init.d/elasticsearch restart
[ ok ] Restarting elasticsearch (via systemctl): elasticsearch.service.
user@u007:/usr/share/elasticsearch/plugins/ik$ cd /usr/share/elasticsearch/bin
#通过elasticsearch-plugin list命令可以查看到已经安装的插件列表
user@u007:/usr/share/elasticsearch/bin$ sudo ./elasticsearch-plugin list
ik#第2种方式:直接使用elasticsearch-plugin工具安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.7.1.zip

 IK分词安装好了之后我们来试一下吧,IK分词器有两种分词设置,ik_max_word和ik_smart,有什么区别呢?
ik_smart: 会做最粗粒度的拆分,比如我们去电影院吧,里面的电影院就直接是电影院。
ik_max_word:会将文本做最细粒度的拆分,比如我们去电影院吧,里面的电影院会拆分成电影院和电影。
可以使用以下进行测试:

curl -XGET 'http://127.0.0.1:9200/online/_analyze?pretty' -H 'Content-Type: application/json' -d '
{"analyzer": "ik_smart","text": "我们去电影院吧"
}'curl -XGET 'http://127.0.0.1:9200/online/_analyze?pretty' -H 'Content-Type: application/json' -d '
{"analyzer": "ik_max_word","text": "我们去电影院吧"
}'

相关文章:

Elasticsearch7.7.1集群不能相互发现的问题解决以及Elasticsearch7.7.1安装analysis-ik中文分词插件的应用

一、Elasticsearch7.7.1集群不能相互发现的问题解决 在使用elasticsearch7.7.1搭建集群,使用了3台服务器作为节点,但在搭建的过程中发现每台服务器的elasticsearch服务都正常,但是不能相互发现,期间进行了一些配置的修改偶尔出现了…...

蓝牙Mesh介绍

蓝牙Mesh(Bluetooth Mesh)是一种基于蓝牙技术的无线通信网络拓扑,用于在设备之间创建大规模的多点到多点网络。蓝牙Mesh网络可以让多个蓝牙设备相互通信和协作,适合需要高覆盖范围和高可靠性的场景,例如智能家居、工业…...

Qt 窗口中鼠标点击事件的坐标探讨

// 鼠标点击事件 void Widget::mousePressEvent(QMouseEvent *event) {/*event->pos()、event->windowPos()和event->localPos()都表示鼠标点击位置在窗口中的位置,它们的值都是一样的,区别在于event->pos()是QPoint类型,event-&…...

服务器虚拟化的全面指南

1. 引言 在数字化转型的浪潮中,服务器虚拟化成为现代IT基础设施的核心组成部分。它通过将物理服务器资源分割成多个虚拟资源,极大地提高了资源利用率和灵活性。本篇文章将深入探讨服务器虚拟化的概念、优势、挑战、技术工具、最佳实践及未来发展趋势。 …...

Linux启动mysql报错

甲方公司意外停电,所有服务器重启后,发现部署在Linux上的mysql数据库启动失败.再加上老员工离职,新接手项目,对Linux系统了解不多,解决起来用时较多,特此记录。 1.启动及报错 1.1 启动语句1 启动语句1&a…...

基于大数据的二手房价数据可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

C++模拟实现vector容器【万字模拟✨】

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: 学习专栏C语言_Stark、的博客-CSDN博客 项目实战C系列_Stark、的博客-CSDN博客 数据结构与算法_Stark、的博客-CSDN博客 座右铭:梦想是一盏明灯&#xff…...

论文笔记:LAFF 文本到视频检索的新基准

整理了ECCV2022 Lightweight Attentional Feature Fusion: A New Baseline for Text-to-Video Retrieval 论文的阅读笔记 背景模型问题定义LAFF(Lightweight Attention Feature Fusion)LAFF Block 实验消融实验可视化对比试验 这篇文章提出了一种新颖灵活的特征融合方式&#x…...

iSTFT 完美重构的条件详解

目录 引言1. 短时傅里叶变换(STFT)与逆变换(iSTFT)概述2. 完美重构的条件3. 数学推导4. 实现要点5. 示例代码6. 总结 引言 在数字信号处理领域,短时傅里叶变换(Short-Time Fourier Transform,简…...

SSH(安全外壳协议)可以基于多种加密算法

SSH(安全外壳协议)可以基于多种加密算法,确保数据的机密性和完整性。以下是 SSH 中常见的加密类型: 1. 对称加密 对称加密算法用于加密会话中的数据,常见的算法包括: AES(高级加密标准&#…...

Navicat 工具 下载安装

准备工作 下载 下载链接:https://www.123865.com/ps/EF7OTd-kdAnH 演示环境 操作系统:windows10 产品:Navicat 版本: 15.0.25 注意:如果需要其他版本可以自行下载。 安装步骤 1、解压(如果解压中出现提示…...

家用高清投影仪怎么选?目前口碑最好的投影仪推荐

双十一马上要到了,而且今年还有投影仪的家电国补,所以大家入手投影仪的需求也越来越多,但是家用高清投影仪怎么选?什么投影仪最适合家用?家庭投影仪哪个牌子质量最好?今天就给大家做一个2024性价比高的家用…...

阿里云盾同步漏洞之限制请求数

阿里云sdk不支持一次性请求太多,所以我们需要限制每次请求最大1000条,此代码无任何参考意义。仅做记录 func VulList(hole_type string) ([]*sas20181203.DescribeVulListResponseBodyVulRecords, error) {pageSize : 20allItems : make([]*sas20181203…...

docker安装kafka-manager

kafkamanager docker安装_mob64ca12d80f3a的技术博客_51CTO博客 # 1、拉取镜像及创建容器 docker pull hlebalbau/kafka-manager docker run -d --name kafka-manager -p 9000:9000 --networkhost hlebalbau/kafka-manager# 2、增设端口 腾讯云# 3、修改防火墙 sudo firewall-…...

Android Studio 新版本 Logcat 的使用详解

点击进入官方Logcat介绍 一个好的Android程序员要会使用AndroidStudio自带的Logcat查看日志,会Log定位也是查找程序bug的第一关键。同时Logcat是一个查看和处理日志消息的工具,它可以更快的帮助开发者调试应用程序。 步入正题,看图说话。 点…...

基于php摄影门户网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

uniapp中uni.request的统一封装 (ts版)

文章目录 前言一、我们为什么要去封装?二、具体实现1.创建一个请求封装文件:2.封装 uni.request:3.如何去使用? 总结 前言 在uniapp中如何去更简洁高效的发送我们的请求,下面就介绍了uni.request()二次封装。 一、我们…...

记录一次gRpc流式操作(jedis版)

使用背景: 从redis队列中发送和消费消息.(使用gRpc的流式实现的消费消息) gRpc协议类定义 service方法定义 service MQDataService{ rpc sendFacebookAndroidMsg(google.protobuf.StringValue)returns (ResultProto); rpc receiveFacebookAndroidMsg(empty)returns (stream g…...

20241001国庆学习

n60f/p 这个n是指旋转磁场的速度。 极数表示旋转转子的永磁体极数,具有一对N极/S极的电机称为双极电机。 极数可以是2、4、6、8等。 (从电机控制的角度来看,当极数增加一倍时,转速将减半,当极数增加四倍时…...

基于SSM的农产品仓库管理系统【附源码】

基于SSM的农产品仓库管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 用户管…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...

二叉树-144.二叉树的前序遍历-力扣(LeetCode)

一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…...