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

linux搭建单机ES,集成ik分词器,文本抽取,Kibana可视化平台

Elasticsearch单机(Linux)

准备工作

第一项:

创建运行Elasticsearch和Kibana专用的普通用户,因为 elasticsearch 和 kibana 不允许使用 root用户启动,所以需要创建新用户启动。

linux用root权限创建一个用户赋权即可,注意权限要给足

第二项(启动没有报相关错误此项可以不做调整):

设置linux的虚拟内存

vim /etc/sysctl.conf

修改参数(自定义,我这里是设置成1024*256这么大)

vm.max_map_count=262144

虚拟内存生效

 sysctl -p

第三项(启动没有报相关错误此项可以不做调整):
修改linux系统句柄配置,通过以下命令

vim /etc/security/limits.conf

修改或添加配置(一定要放在# End of file之前)

nofile - 打开文件的最大数目
noproc - 进程的最大数目
soft 指的是当前系统生效的设置值
hard 表明系统中所能设定的最大值

* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 65536

使配置生效

source /etc/security/limits.conf

开始部署

第一步:

下载地址:官网下载地址
我这里下载的是7.16.0版本(下面网盘自取)

链接: https://pan.baidu.com/s/1GT47H3gdiYI361eYD6l5EA?pwd=abb2 提取码: abb2

第二步:

将下载的包放到服务器上,使用解压命令解压
解压命令

tar -zxvf  需要解压的包路径

如果需要解压其他目录,用命令

tar -zxvf  需要解压的包路径 -C 目标路径

第三步:

在服务器上创建两个文件夹用于ES修改配置时使用
一个存放es的data,一个存放es的log

Path to directory where to store the data (separate multiple locations by comma)
存储数据的目录的路径(用逗号分隔多个位置)
path.data: esdata的路径
Path to log files:
日志文件路径:
path.logs: eslog的路径

第四步:
修改配置文件内容
配置文件在ES的解压目录下的config目录下的elasticsearch.yml文件,修改配置文件

#集群名称
cluster.name: es-app
#集群节点名称
node.name: node-1
#存储数据的路径
path.data: /usr/local/esdata
#日志文件路径
path.logs: /usr/local/eslog
#网络公开的IP地址(设置为0.0.0.0表示所有IP都可以访问)
network.host: 0.0.0.0
#http端口
http.port: 9200
#集群节点IP列表
discovery.seed_hosts: ["127.0.0.1"]
#集群节点名称列表
cluster.initial_master_nodes: ["node-1"]

第五步:
修改ES的JVM
该配置文件在解压目录下的config目录下的jvm.options文件,修改以下配置

-Xms1g
-Xmx1g

第六步:
配置ES的java环境

从ES7.0之后,ES就自带jdk了,因为项目的正式环境所用的java环境有可能不适用于ES的java环境变量,ES从6.0就支持JAVA11了,如果项目正式环境的java环境符合ES的java环境,此步骤可以略过。

在解压目录下有一个jdk目录,这里就是ES自带的java环境,我们需要在解压目录下的bin目录下的elasticsearch-env文件,修改JAVA_HOME为ES自带的java环境

# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; thenJAVA="$ES_JAVA_HOME/bin/java"JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then# fallback to JAVA_HOMEecho "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2#JAVA="$JAVA_HOME/bin/java"#修改这一块********************************************JAVA="/usr/local/elasticsearch-7.16.0/jdk/bin/java"JAVA_TYPE="JAVA_HOME"#end*************************************************
else# use the bundled JDK (default)if [ "$(uname -s)" = "Darwin" ]; then# macOS has a different structureJAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"elseJAVA="$ES_HOME/jdk/bin/java"fiJAVA_TYPE="bundled JDK"
fiif [ ! -x "$JAVA" ]; thenecho "could not find java in $JAVA_TYPE at $JAVA" >&2exit 1
fi

修改完保存即可
注意:如果修改了还会出现JAVA环境变量的问题,可以把这一段的所有有关java的路径全都修改了

第七步:
启动ES
在解压目录下的bin目录下执行下面命令(后台启动)

./elasticsearch -d

查看日志:在自己配置的ES的log目录下的logs目录下查看日志

验证是否启动成功(如访问不到,请先开放linux防火墙的端口)
浏览器访问地址:IP+端口
出现以下信息即为启动成功
在这里插入图片描述

集成ik分词器

准备工作:

Elasticsearch部署成功
有maven环境可以使用mvn命令
在ES解压目录下的plugins目录下创建ik文件夹(mkdir ik)

第一步:
下载ik分词器,这里也准备了配套的ik分词器zip包,用的7.16.2版本,解压后与ES的版本一致,下面网盘自取

链接: https://pan.baidu.com/s/1ZISaAqK476DNl0RG8RPaqA?pwd=qr4f 提取码: qr4f

第二步:
把下载好的ik分词器zip包放到服务器上,方便操作可以放在在ES解压目录下的plugins目录下,通过下面命令解压

unzip ik分词器的zip包

第二步:
进入到解压后的ik分词器的目录中,执行下面命令打包

mvn clean install

第三步:
打包成功后可以在ik分词器解压目录下看到target目录,找到releases目录下的zip,移动到提前在ES解压目录下的plugins目录下创建好的ik目录下,我这里通过mv命令移动

mv releases目录下的zip 目标目录路径

第四步:
在ES解压目录下的plugins目录下的ik目录下解压刚才移动过来的zip包(使用unzip命令解压),解压后会看到如下图所示
在这里插入图片描述
把这里面的zip包删除,最后ik目录下的文件就下图所示即可
在这里插入图片描述
最后把与ik目录同级的ik分词器的zip包及其解压后的包删除

第五步:
重新启动ES,查看ik分词器插件是否集成成功
查看ES进程命令

ps -ef|grep elasticsearch

ES启动后会有两个进程,通过PPID的进程号kill掉就能停止ES

ES停止后在解压目录下的bin目录下执行下面命令重启ES(后台启动)

./elasticsearch -d

第六步:
检查插件是否安装,在ES解压目录下的bin目录下执行下面命令

./elasticsearch-plugin list

执行命令后出现以下内容即为ik分词器集成成功
在这里插入图片描述

文本抽取

准备工作

Elasticsearch部署成功

文本抽取是为了抽取上传的文件里面的内容,类似于文件内容的识别,可抽取word、excel、txt,pdf文件的内容,用于ES查询的时候可以对文件内容做模糊匹配查询

在ES解压目录下的bin目录下执行下面命令进行文本抽取插件的安装

elasticsearch-plugin install ingest-attachment

安装后同ik分词器一样需要重启ES以及通过插件查询命令查看是否集成成功

Kibana可视化平台(Linux)

准备工作:

Elasticsearch部署成功

第一步:
下载地址:官方下载地址
我这里下载的是7.16.0版本(下面网盘自取)

链接: https://pan.baidu.com/s/19N0RNifc0fxj7eoUUZQEKA?pwd=mmxt 提取码: mmxt

第二步:
将下载的包放到ES解压目录下并进行解压,解压命令参考ES部署的第二步

第三步:
修改Kibana配置
在Kibana的解压目录下的config目录下的kibana.yml文件,修改配置文件

#Kibana提供服务的端口
server.port: 5601
#指定Kibana服务器将绑定到的地址,设置为0.0.0.0表示所有IP都可以访问
server.host: "0.0.0.0"
#用于所有查询的Elasticsearch实例的url
elasticsearch.hosts: ["http://127.0.0.1:9200"]
#设置语言:英文 en,默认为中文 zh-CN。
i18n.locale: "zh-CN"

第四步:
启动Kibanaq启动命令如下:

nohup ./kibana &

查找Kibana进程的命令:

ps -ef|grep node

有 node 不一定就是 kibana 的进程。kibana 对外的 tcp 端口是 5601,如果改了自行调整命令,所以可以进一步使用如下命令查到进程号

netstat -tunlp|grep 5601

关闭命令,通过kill -9 杀死即可

第五步:

访问Kibana,通过IP+Kibana端口进行访问,如果访问不了,先查看下linux防火墙有没有开放端口

相关文章:

linux搭建单机ES,集成ik分词器,文本抽取,Kibana可视化平台

Elasticsearch单机(Linux) 准备工作 第一项: 创建运行Elasticsearch和Kibana专用的普通用户,因为 elasticsearch 和 kibana 不允许使用 root用户启动,所以需要创建新用户启动。 linux用root权限创建一个用户赋权即可…...

金融和大模型的“两层皮”问题

几年前,我采访一位产业专家,他提到了一个高科技到产业落地的主要困惑:两层皮。 一些特别牛的技术成果在论文上发表了,这是一层皮。企业的技术人员,将这些成果产品化、商品化的时候,可能出于工程化的原因&am…...

智能生活从这里开始:数字孪生驱动的社区

数字孪生技术,这个近年来备受瞩目的名词,正迅速渗透到社区发展领域,改变着我们居住的方式、管理的方式以及与周围环境互动的方式。它不仅仅是一种概念,更是一种变革,下面我们将探讨数字孪生技术如何推动社区智能化发展…...

Python计算机二级知识点整理

1.当一个进程在运行过程中释放了系统资源后要调用 唤醒进程原语 唤醒进程原语是把进程从等待队列里移出到就绪队列并设置进程为就绪状态,当一个进程在运行过程中释放了系统资源后进入就绪状态,调用唤醒进程原语。 2. 3. 4.在希尔排序法中&#x…...

双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图

双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图 昨晚完成了ROS的多机通讯,还没来得及整理相关操作步骤,在进行实际小车的实验之前,还是先打算在仿真环境中进行测试,熟悉相关的操作步骤,计划通过虚拟机&…...

(JavaEE)(多线程案例)线程池 (简单介绍了工厂模式)(含经典面试题ThreadPoolExector构造方法)

线程诞生的意义,是因为进程的创建/销毁,太重了(比较慢),虽然和进程比,线程更快了,但是如果进一步提高线程创建销毁的频率,线程的开销就不能忽视了。 这时候我们就要找一些其他的办法…...

单播与多播mac地址

MAC 地址(Media Access Control Address)是一个用于识别网络设备的唯一标识符。每个网络设备都有一个独特的 MAC 地址,用于在局域网中进行通信。 单播MAC地址:单播MAC地址用于单播通信,即一对一的通信模式。当设备发送…...

反向动力学Ik学习

参考文章:(非本人原创) 英文原文:Inverse Kinematics Techniques in Computer Graphics: A Survey (andreasaristidou.com) 知乎翻译文章: 【游戏开发】逆向运动学(IK)详解 - 知乎 (zhihu.co…...

基于Levenberg-Marquardt算法的声源定位matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .................................................................... %ML if (bML1)varxs…...

vscode的Emmet语法失效

解决方案:设置 -> 搜索Emmet -> 勾选 Emmet:Trigger Expansion On Tab和Emmet: Use Inline Completions -> 重启 注:Emmet语法是vscode自带的语法,可以快速生成HTML结构/CSS样式/格式化语法 Emmet语法 参考:关于vscode使…...

堆排序(大根堆)

堆的定义如下&#xff0c;n个关键字序列[1...n]称为堆&#xff0c;当且仅当满足&#xff1a; a(i)>a(2i)且a(i)>a(2i1) 这个为大根堆 a(i)<a(2i)且a(i)<a(2i 1) 这个为小根堆 通过建堆得到大根堆 大根堆 87,45,78,32,17,65,53,9 可以看成 …...

Mybatis学习笔记3 在Web中应用Mybatis

Mybatis学习笔记2 增删改查及核心配置文件详解_biubiubiu0706的博客-CSDN博客 技术栈:HTMLServletMybatis 学习目标: 掌握mybatis在web应用中如何使用 Mybatis三大对对象的作用域和生命周期 关于Mybatis中三大对象的作用域和生命周期、 官网说明 ThreadLocal原理及使用 巩…...

软件测试之功能测试详解

一、功能测试概述 1&#xff09;功能测试就是对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。 2&#xff09;功能测试&#xff0c;根据产品特性、操作描述和用户方案&#xff0c;测试一个产品的特性和…...

javascript选取元素的范围,可以包含父级,也可以不包含父级

//函数可以选取元素的范围&#xff0c;对于要选取文本的非常方便&#xff0c;或选取特定的子节点 function getRange(element){//判断是否支持range范围选取var supdocument.implementation.hasFeature("Range","2.0");var also(typeof document.createRan…...

QGIS怎么修改源代码?持续更新...

修改配置文件保存位置 修改目的&#xff1a;放着和本地安装的其他QGIS共用一份配置文件 修改文件&#xff1a;core/qgsuserprofilemanager.cpp 修改位置&#xff1a;第37行 return basePath QDir::separator() "my_profiles";修改完毕后&#xff0c;再次生成一下…...

dev board sig技术文章:轻量系统适配ARM架构芯片平台

摘要&#xff1a;本文简单介绍OpenHarmony轻量系统移植&#xff0c;会分多篇 适合群体&#xff1a;想自己动手移植OpenHarmony轻量系统的朋友 开始尝试讲解一下系统的移植&#xff0c;主要是轻量系统&#xff0c;也可能会顺便讲下L1移植。 1.1移植类型 OpenHarmony轻量系统的…...

MyBatis之增删查改功能

文章目录 一、创建各种类二、MyBatis的各种功能 1、查询<select>2、增加<insert>3、修改<update>4、删除<delete>三、总结 前言 在MyBatis项目中编写代码实现对MySql数据库的增删查改 一、创建各种类 1、在Java包的mapper文件下创建一个接口 我创建…...

Leetcode算法入门与数组丨5. 数组二分查找

文章目录 1 二分查找算法2 二分查找细节3 二分查找两种思路3.1 直接法3.2 排除法 1 二分查找算法 二分查找算法是一种常用的查找算法&#xff0c;也被称为折半查找算法。它适用于有序数组的查找&#xff0c;并通过将待查找区间不断缩小一半的方式来快速定位目标值。 算法思想…...

拓扑关系如何管理?

在设备对接涂鸦的云端过程中&#xff0c;一部分设备由于自身资源或硬件配置&#xff0c;无法直接连接云端。而是需要通过网关进行中转&#xff0c;由网关代理实现和云端进行数据交互&#xff0c;间接实现设备接入云端。这样的设备也称为子设备。 要想实现网关代理子设备接入云…...

vue的由来、vue教程和M-V-VM架构思想、vue的使用、nodejs

vue vue的由来 vue教程和M-V-VM架构思想 vue的初步简单使用 nodejs vue的由来 # 1 HTML(5)、CSS(3)、JavaScript(ES5、ES6、ES11)&#xff1a;编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 ->…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...