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": "我们去电影院吧"
}'

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

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

相关文章

uniapp中实现评分组件,多用于购买商品后,对商品进行评价等场景

前言 uni-rate是uniapp框架中提供的一个评分组件。它可以用于用户评价、打分等场景。uni-rate组件可以根据设定的星星总数,展示用户评分的效果,用户可以通过点击星星或滑动星星的方式进行评分。同时,uni-rate组件也支持自定义星星图标、星星…

Vue 技术进阶 day2 数据监视的原理、其他内置指令、自定义指令、生命周期、组件化、VueComponent构造函数

目录 1.Vue监测数据的原理 1.1 原理 1.1.1 数据劫持 1.1.2 观察者模式(Vue内部的实现) 1.1.3 更新组件 1.1.4 计算属性和侦听器 1.2 后添加属性做响应式(Vue.set / vm.$set) 1.3 对象和数组的响应式 1.4 数据监视案例 2.指令 2.1 内置指令 2.…

丹摩智算平台部署 Llama 3.1:实践与体验

文章目录 前言部署前的准备创建实例 部署与配置 Llama 3.1使用心得总结 前言 在最近的开发工作中,我有机会体验了丹摩智算平台,部署并使用了 Llama 3.1 模型。在人工智能和大模型领域,Meta 推出的 Llama 3.1 已经成为了目前最受瞩目的开源模…

初识Linux · O(1)调度算法

目录 前言: O(1)调度算法 前言: 在初识进程的那一块,我们已经知道了进程并不是一直占用cpu资源的,而是存在时间片的概念,即,每个进程都有一定的时间来执行该进程,时间一到,该进程…

C++:类中的特殊关键字,运算重载符

1.My_string类中重载以下的运算符&#xff1a; 、[] 、>、<、、>、<、&#xff01;、、输入输出(>>、<<) 主函数&#xff1a; #include <iostream> #include "my_string.h"using namespace std;int main() {My_string s1("cat…

centos72009源码编译R语言

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhadoop.version3.4.0 -Pkubernetes spark3.5.3 源码版本 ./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -P…

[Python学习日记-31] Python 中的函数

[Python学习日记-31] Python 中的函数 简介 语法定义 函数的参数 简介 引子&#xff1a; 你是某公司的一个高级程序员&#xff0c;现在老板让你写一个监控程序&#xff0c;需要24小时全年无休的监控公司网站服务器的系统状况&#xff0c;当 CPU、Memory、Disk 等指标的使用…

计算机毕业设计 基于Python高校岗位招聘和分析平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

【C++掌中宝】类和对象(二):隐藏的this指针

文章目录 引言1. 定义与用法1.1 隐式存在的 this 指针1.2 this 指针的用途与示例 2. 本质3. 特点4. this 指针的作用机制5. 成员函数中的 this 指针6. 空指针与 this 指针的特殊情况7. 注意事项8. 总结结语 引言 在 C 编程中&#xff0c;类是面向对象编程的核心&#xff0c;而…

【代码实现】opencv 高斯模糊和pytorch 高斯模糊

wiki百科 Gaussian Blur&#xff0c;也叫高斯平滑&#xff0c;是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果&#xff0c;通常用它来减少图像噪声以及降低细节层次。 opencv实现 opencv实现高斯滤波有两种方式&#xff0c; 1、是使用自带的cv2…

在MacOS上安装MongoDB数据库

一、安装方法 1.1 安装包安装 首先&#xff0c;打开MongoDB 官网下载安装包&#xff0c;下载链接&#xff1a;https://www.mongodb.com/try/download/community。 根据自己的系统环境自行选择下载的版本。将下载好的 MongoDB 安装包解压缩&#xff0c;并将文件夹名改为 mon…

机器学习基本上就是特征工程——《特征工程训练营》

作为机器学习流程的一部分&#xff0c;特征工程是对数据进行转化以提高机器学习性能的艺术。 当前有关机器学习的讨论主要以模型为中心。更应该关注以数据为中心的机器学习方法。 本书旨在介绍流行的特征工程技术&#xff0c;讨论何时以及如何运用这些技术的框架。我发现&…

yolov8实例分割重要图片

训练分割要准备好数据集和分割预训练权重文件 下面这张图是数据集的格式 下面这张图配置数据集&#xff0c;下面names 要和labelme转txt里配置的一样 下面这张图进行训练&#xff0c;配置一些全局参数 &#xff0c;初始的yolov8s-seg.pt文件需要到github上yolov8开源项目里下 l…

ERROR [internal] load metadata for docker.io/library/openjdk:8

ERROR: failed to solve: DeadlineExceeded: DeadlineExceeded: DeadlineExceeded: openjdk:8: failed to do request: Head “https://registry-1.docker.io/v2/library/openjdk/manifests/8”: dial tcp 202.160.129.6:443: i/o timeout 在构建docker镜像时从docker.io/libr…

论文笔记(四十七)Diffusion Policy: Visuomotor Policy

Diffusion Policy: Visuomotor Policy 文章概括摘要1. 介绍2. 扩散策略的公式化2.1 去噪扩散概率模型2.2 DDPM 训练2.3 用于视觉运动策略学习的扩散模型 3 关键设计决策3.1 网络架构选项3.2 视觉编码器3.3 噪声计划3.4 加速实时控制的推理 4. 扩散策略的四个引人入胜的特性4.1 …

【Python报错已解决】error: subprocess-exited-with-error

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

004集—— txt格式坐标写入cad(CAD—C#二次开发入门)

如图所示原始坐标格式&#xff0c;xy按空格分开&#xff0c;将坐标按顺序在cad中画成多段线&#xff1a; 坐标xy分开并按行重新输入txt&#xff0c;效果如下&#xff1a; 代码如下 &#xff1a; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; us…

一文详解WebRTC、RTSP、RTMP、SRT

背景 好多开发者&#xff0c;希望对WebRTC、RTSP、RTMP、SRT有个初步的了解&#xff0c;知道什么场景该做怎样的方案选择&#xff0c;本文就四者区别做个大概的介绍。 WebRTC 提到WebRTC&#xff0c;相信好多开发者第一件事想到的就是低延迟&#xff0c;WebRTC&#xff08;W…

HarmonyOS Next应用开发——瀑布流WaterFlow

瀑布流WaterFlow 瀑布流容器&#xff0c;由“行”和“列”分割的单元格所组成&#xff0c;通过容器自身的排列规则&#xff0c;将不同大小的“项目”自上而下&#xff0c;如瀑布般紧密布局。 瀑布流容器的子组件只能是FlowItem&#xff0c;可以配合ForEach、LazyForEach进行循…

聚星文社——绘唐科技有什么区别!

聚星文社和绘唐科技是两个不同的公司&#xff0c;有一些区别。下面是它们的一些区别&#xff1a; 绘唐科技——聚星文社https://iimenvrieak.feishu.cn/docx/ZhRNdEWT6oGdCwxdhOPcdds7nof 行业领域&#xff1a;聚星文社主要从事文化娱乐行业&#xff0c;包括出版、影视制作等&…