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防火墙有没有开放端口