CentOS7上安装ElasticSearch服务

本文介绍了如何在CentOS7上以非root用户安装Elasticsearch服务,包括创建启动用户、开启远程访问权限、解决内存和线程配置问题。此外,还详细讲解了安装Kibana图形界面以及使用在线方式安装IK中文分词器插件的过程,确保分词器正确生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装 elasticsearch

创建用于启动 elasticsearch 服务的用户

ES不能以root用户身份启动,所以必须创建普通用户:

  • 创建一个新的es用户组

    [root@sher6j-01 ~]# groupadd es
    
  • 创建新的用户es6j并将其放入es用户组

    [root@sher6j-01 ~]# useradd es6j -g es
    
  • 修改es6j用户的密码

    [root@sher6j-01 ~]# passwd es6j
    

在这里插入图片描述

之所以上面提示无效的密码,是因为我将密码设置为了 1234,过于简单,该提示可以忽略,只要重新输入密码即可设置密码成功

用普通用户安装 elasticsearch 服务;

利用ftp工具将安装包上传至es6jhome目录下

在这里插入图片描述

然后对其进行解压:

[es6j@sher6j-01 ~]$ tar -zxvf elasticsearch-6.8.0.tar.gz

解压后其实就安装成功了,我们进入elasticsearch的目录进行查看

[es6j@sher6j-01 ~]$ cd elasticsearch-6.8.0/

其主要目录说明如下:

在这里插入图片描述

如果要启动elasticsearch服务,则进入bin目录下执行启动脚本即可:

[es6j@sher6j-01 elasticsearch-6.8.0]$ cd bin
[es6j@sher6j-01 bin]$ ./elasticsearch

当出现started时代表启动成功

在这里插入图片描述

可以看到elasticsearch对外提供了两个端口92009300,其中9200作为Web端口可以用作浏览器访问,而9300作为TCP端口可以供如Java程序等进行连接。

如果要关闭其服务,用 Ctrl + C 即可。

我们可以以该主机中的任一用户使用 curl 命令模拟浏览器访问 elasticsearch 的服务:

[root@sher6j-01 ~]# curl http://localhost:9200

在这里插入图片描述

如上图可以看见 elasticsearch 响应的 JSON 串,而之所以用 curl 模拟而没有用外部浏览器直接访问,是因为 elasticsearch 默认只能够本机访问。

开启远程连接权限

进入到 config 目录下,编辑其主配置文件 eelasticsearch.yml

[es6j@sher6j-01 elasticsearch-6.8.0]$ cd config/
[es6j@sher6j-01 config]$ vim elasticsearch.yml

vim 界面中搜索 network.host 配置项(/搜索)

在这里插入图片描述

原配置文件如下:

在这里插入图片描述

将其修改为:network.host: 0.0.0.0。然后重新启动 elasticsearch 服务。

然后我们发现就出现了如下的错误:

在这里插入图片描述

当然还有可能是如下的三个错误,

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3802] for user [es6j] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这是因为一旦 elasticsearch 启动了远程连接,其认为是生产模式,所以就需要对内存、线程数等有所要求,所以我们需要将主机调整到符合要求的状态。

修改主机的状态需要用 root 用户:

  • [root@sher6j-01 ~]# vim /etc/security/limits.conf
    

    在文件末尾插入如下参数后保存退出:

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

在这里插入图片描述

  • 重新登录后,即可发现配置已经生效:

    [root@sher6j-01 ~]# ulimit -Hn
    [root@sher6j-01 ~]# ulimit -Sn
    [root@sher6j-01 ~]# ulimit -Hu
    [root@sher6j-01 ~]# ulimit -Su
    

在这里插入图片描述

  • [root@sher6j-01 ~]# vim /etc/security/limits.d/20-nproc.conf
    

    修改该配置文件,将其 * 修改为启动 elasticsearch 服务的用户名,此处即为 es6j

在这里插入图片描述

修改后:

在这里插入图片描述

  • [root@sher6j-01 ~]# vim /etc/sysctl.conf
    

    修改最大线程数,在该配置文件中加入 vm.max_map_count=655360 参数

在这里插入图片描述

然后可以执行如下命令对该参数进行检测:

[root@sher6j-01 ~]# sysctl -p

在这里插入图片描述

经过以上配置的修改后,我们重新登录 es6j 用户,再次启动 elasticsearch 服务,发现可以启动成功了

在这里插入图片描述

再次用外部浏览器访问 http://192.168.56.102:9200/ ,即可访问成功:

在这里插入图片描述

需要主机关闭防火墙:

[root@sher6j-01 ~]# systemctl stop firewalld

安装 Kibana

由于 elasticsearch 只对外暴露了端口,而没有操作界面,所以我们需要安装一个图形化界面来操作 elasticsearch,这就是官方提供的 Kibana,当然了,Kibana 的用途还有很多很多,作为图形化界面操作 elasticsearch 只是其很小的一部分。

安装 kibana 我们以 root 身份安装即可,在 \usr\local\ 目录下创建 kibana目录:

[root@sher6j-01 local]# mkdir kibana

然后用ftp工具将 kibana 安装包上传至该目录:

在这里插入图片描述

然后进行解压,解压后进入其目录:

[root@sher6j-01 kibana]# tar -zxvf kibana-6.8.0-linux-x86_64.tar.gz
[root@sher6j-01 kibana]# cd kibana-6.8.0-linux-x86_64/

比较重要的目录就是 binconfig

在这里插入图片描述

我们进入到 config 目录下修改其配置文件:

[root@sher6j-01 config]# vim kibana.yml

修改如下两处配置改成 kibana 要监听的 elasticsearch 服务的主机地址,当然本机也可以直接用原来的 localhost

在这里插入图片描述

然后进入 bin 目录运行启动脚本即可:

[root@sher6j-01 bin]# ./kibana

在这里插入图片描述

然后在浏览器中访问该地址即可:

在这里插入图片描述

安装中文分词器插件

elasticsearch 默认的分词器为标准分词器(Standard Analyzer),标准分词器对于英文为单词分词,对于中文为单字分词。也就是说,如果关键字为“中华人民共和国”,则标准分词器会分为"中"、 “华”、 “人”、 “民”、 “共”、 “和”、 “国”。这无疑对中文的搜索非常不适合,所以我们需要安装 ik 分词器的插件, ik 分词器的相关文档可以参考ik分词器GitHub官网,安装方式也可以使用本地安装或在线安装,这里使用在线安装。

  • 由于之前的索引库数据是由标准分词器产生的,这会使 ik 分词器安装错误,所以需要清空之前的索引库数据,即 elasticsearch 安装目录下的 data 文件夹:在这里插入图片描述

    [es6j@sher6j-01 elasticsearch-6.8.0]$ rm -rf data/
    
  • bin 目录下之前提到过有各种脚本,其中就有用于在线安装插件的脚本,利用该脚本即可在线安装插件,其用法为:

    elasticsearch-plugin install 插件地址
    

在这里插入图片描述

所以在 bin 目录下键入如下命令即可,注意该 ik 分词器的版本必须和 elasticsearch 的版本一致!

[es6j@sher6j-01 bin]$ ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.0/elasticsearch-analysis-ik-6.8.0.zip

当出现 installed 即为安装好该插件:

在这里插入图片描述

  • 然后就可以重启 elasticsearchkibana 来测试该分词器是否生效,可以看到在 elasticsearch 启动过程中加载了 ik 分词器的插件:

在这里插入图片描述

kibana 中键入如下命令测试分词器:

GET /_analyze
{
  "text": "中华人民共和国国歌",
  "analyzer": "ik_smart"
}

可以看到成功对中文进行了分词:

在这里插入图片描述

ik_smartik_max_word 的区别,在 ik 分词器的官方文档中有所说明:

  • ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;
  • ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值