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

2023-09-20 09:16:37

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" ]; then
  JAVA="$ES_JAVA_HOME/bin/java"
  JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then
  # fallback to JAVA_HOME
  echo "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 structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled JDK"
fi

if [ ! -x "$JAVA" ]; then
  echo "could not find java in $JAVA_TYPE at $JAVA" >&2
  exit 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防火墙有没有开放端口

更多推荐

Vulnhub系列靶机---HarryPotter-Fawkes-哈利波特系列靶机-3

文章目录信息收集主机发现端口扫描dirsearch扫描gobuster扫描漏洞利用缓冲区溢出edb-debugger工具msf-pattern工具docker容器内提权tcpdump流量分析容器外-sudo漏洞提权靶机文档:HarryPotter:Fawkes下载地址:Download(Mirror)难易程度:难上难信

Redis 集合操作实战(全)

目录SADD插入集合SCARD取元素数量SPOP随机移除元素SREM移除多个元素SMOVE移动元素到别的集合SMEMBERS取所有成员SRANDMEMBER取指定数量元素SISMEMBER判断元素是否存在SUNION多集合求并集SUNIONSTORE多集合求并集(存储)SINTER多集合求交集SINTERSTORE多集

PY32F003F18之比较器问题

PY32F003F18的模拟模块,其内部参考电压容易受到电源电压影响。当我连接"USB转串口的RXD"时,PC接收到模拟数据均正常;当我连接“USB转串口的TXD”时,发现内部参考电压的AD值为0xFFF。断开连接的“USB转串口的TXD”,模拟功能模块又恢复正常。于是用万用表测量“USB转串口的TXD”的电压,开路电

Spring高手之路10——解锁Spring组件扫描的新视角

文章目录1.组件扫描路径2.按注解过滤组件(包含)3.按注解过滤组件(排除)4.通过正则表达式过滤组件5.Assignable类型过滤组件6.自定义组件过滤器7.组件扫描的其他特性7.1组合使用组件扫描8.组件扫描的组件名称生成8.1Spring是如何生成默认bean名称的(源码分析)8.2生成默认bean名称的特殊情

一文巩固Spring MVC的Bean加载机制

目录一、什么是SpringMVC的Bean二、SpringMVC的Bean加载机制三、SpringMVC如何动态装载Bean一、什么是SpringMVC的Bean在SpringMVC中,Bean指的是在SpringIoC容器中创建和管理的对象。这些对象可以是普通的Java类,也可以是服务层组件、数据访问对象(DAO)或

手动实现 Spring 底层机制【初始化 IOC容器+依赖注入+BeanPostProcessor 机制+AOP】之实现任务阶段 5- bean 后置处理器

😀前言手动实现Spring底层机制【初始化IOC容器+依赖注入+BeanPostProcessor机制+AOP】的第五篇具体实现了任务阶段5-bean后置处理器🏠个人主页:尘觉主页🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉在csdn获奖荣誉:🏆csdn城市之星2名⁣⁣⁣

kafka rabbitmq 详细对比

Kafka&rabbitmqkafkaProducer:消息生产者,将消息push到Kafka集群中的Broker。Consumer:消息消费者,从Kafka集群中pull消息,消费消息。ConsumerGroup:组团消费,每个Consumer都属于一个ConsumerGroup。消费者组在逻辑上是同一个订阅者。消费

JavaScript学习记录 | DOM事件流 事件冒泡-事件捕获-事件委托

目录DOM事件流常见面试题事件冒泡与事件捕获事件冒泡使用场景事件捕获使用场景事件冒泡和事件捕获区别事件委托-利用事件冒泡机制事件委托应用场景支持事件委托的事件事件委托的优缺点DOM事件流DOM事件流的三个阶段:捕获阶段->目标阶段->冒泡阶段常见面试题事件冒泡和委托是什么?有什么使用场景?事件委托的优点和缺点JS事件绑

线性代数基础-矩阵

八、矩阵的基础概念1.矩阵我们忘掉之前行列式的一切,列一种全新的数表,虽然长得很像,但是大不相同,首先一个区别就是矩阵不能展开成一个值,这里不讨论矩阵的空间意义{a11x1+a12x2+a13x3+...+a1nxn=b1a21x1+a22x2+a23x3+...+a2nxn=b2...an1x1+an2x2+an3x

SQL sever中相关查询

目录一、简单查询二、条件查询三、别名查询四、分组查询五、排序查询六、去重查询七、分页查询八、模糊查询九、表连接查询十、子查询十一、嵌套查询一、简单查询简单查询是最基本的查询类型,用于从数据库中选择特定列或所有列的数据。1.选择所有列的数据:SELECT*FROM表名;将返回指定表中的所有行和列。2.选择特定列的数据:S

酌情参考——chatGPT给的一些语义框架的学术思路,语义和图谱结合似乎是个不错的方向

语义和图谱结合似乎是个不错的方向我在分析教师讲课的文本,以知识元和语义框架建模的话怎么分析合适ChatGPT分析教师讲课的文本并建立知识元和语义框架的模型可以帮助你理解教师的教学内容以及课程结构。以下是一些步骤和方法,可帮助你进行这种分析:数据收集:收集教师讲课的文本或音频记录,这些记录可以是课堂讲座、教材、学生笔记或

热文推荐