Elasticsearch安装、常见问题及IK分词器的安装

本文简要记录 Linux 环境下 ES 安装遇到的问题和解决思路。安装ES实质上是很简单的,不管是Win平台还是Linux环境,都是下载ES的压缩包然后直接解压即可,由于ES压缩包自带jdk因此我们也不需要额外关注jdk,仅仅需要解压即可。但是这也带来一些配置方面的问题,下文首先介绍如何安装,然后介绍安装过程最常见的错误,最后附带中文IK分词器插件的安装方式。
这里推荐几个博客:
ES 8.x 系列教程:ES 8.0 服务安装(可能是最详细的ES 8教程)

Linux环境下安装Elasticsearch,史上最详细的教程来啦~

Linux环境安装Elasticsearch

ES 在Linux下的安装

注:本文只介绍ES 7.x以后的版本安装,因为7.x以后的版本自带JDK,这就意味着不会和我们本地已有的JDK产生冲突,使用起来真的很方便

1. 首先下载Es压缩包,下载地址:

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

2. 解压到 /usr/local/ 文件夹下:
unzip elasticsearch-x.x.x.zip /usr/local/
或者将压缩包放到/usr/local/es下然后执行
tar -zxvf elasticsearch-7.11.2-linux-x86_64.tar.gz

以elasticsearch-8.2.0为例,会在/usr/local/下得到一个新的 /usr/local/elasticsearch-8.2.0/目录,以后的操作,包括启动、配置等就在这里进行了。目录结构如下(图片引用自此博客):

Es安装目录结构.png

3. 其实至此 Es 安装就算结束了,不过先不要着急启动,因为Es不允许root用户启动,最好创建一个专门用于启动Es的用户:
  • 创建elastic账号

useradd user-es // user-es是我自己起的,可以修改成你想要的名字

  • 设置user-es账号的密码:

passwd user-es

  • 为账号赋予目录权限

chown -R user-es:user-es /usr/local/elasticsearch-xxx

4. 这下可以愉快地启动Es了:
  • 首先su到 我们的专用es账户:
    su user-es
    系统提示输入密码,这个密码就是上一步设置的密码。
    (或许你在这里会得到一个报错信息,请自行查找解决方案,很简单)
  • 然后进入bin目录
    cd /usr/local/elasticsearch-8.2.0/bin
  • 启动elasticsearch
    ./elasticsearch
    倘若成功启动,8.x版本会出现类似下图的界面,7.x及以下版本会跳出很多log,但是最后一行会出现一个 started 单词,告知启动成功:
    image.png

ES 在启动过程里会遇到的问题

如何验证是否启动es了?最直接的就是你发现自己的命令行重新出现了$,这表明你启动失败了,你可以重新输入命令了。

众所周知,一杯茶一包烟,一个环境配一天,在上文的第4步里,很大概率是没法正常启动Es的。一般就是因为以下几个问题,

  1. 用了root用户启动
    如果按照上文所述创建新用户并启动,则可以避免此问题,请参阅上文步骤 3、4。

  2. Es 8.0加强了安全性,需要解除之(生产环境还是加上吧),操作如下:

  • 打开配置文件
    vim /usr/local/elasticsearch-8.2.0/config/elasticsearch.yml
  • 找到下面几个地方,全改成false
    image.png
  1. 抛出日志,大意是硬盘空间不足(出现 disk 90% 之类的字样),健康值为红色,需要避免空间监测,操作如下:
  • 打开配置文件
    vim /usr/local/elasticsearch-8.2.0/config/elasticsearch.yml
  • 在末尾添加:
    cluster.routing.allocation.disk.threshold_enabled: false
  1. 抛出日志,大意是要下载 geoip 数据(看见 geoip 这个单词,大概就是这个错误了),健康值为红色,需要避免空间监测,操作如下:
  • 打开配置文件
    vim /usr/local/elasticsearch-8.2.0/config/elasticsearch.yml
  • 在末尾添加:
    ingest.geoip.downloader.enabled: false
  1. 外部无法访问localhost:9200 ,需要在配置文件里允许我们远程访问数据库:
  • 打开配置文件
    vim /usr/local/elasticsearch-8.2.0/config/elasticsearch.yml
  • 找到下面几个,输入之:


    image.png
  1. 最最最最常见的错误:出现bootstrap之类的字样:
  • 用root权限改下列文件:
    vim /etc/sysctl.conf
    增加 vm.max_map_count=262144

  • 用root权限改下列文件,注意第一列的用户名,用哪个用户启动es就写成哪个用户名:
    vi /etc/security/limits.conf
    user-es soft nofile 262144
    user-es hard nofile 524288
    user-es soft nproc 4096
    user-es hard nproc 4096

    image.png

  • 刷新配置
    sysctl -p
    重启服务器即可

安装中文 IK 分词器

在 https://github.com/medcl/elasticsearch-analysis-ik/releases 中,提供了各个 elasticsearch-analysis-ik 插件版本。要注意,一定和 Elasticsearch 版本一致。例如说 Elasticsearch 版本是 7.16.2 ,所以需要使用 elasticsearch-analysis-ik-v7.16.2 。

  • 下载
#当前目录
[es@izuf672oio5mc4fbyj0s0jz elasticsearch-7.16.2]$ pwd
/home/es/es/elasticsearch-7.16.2
#开始下载
[es@izuf672oio5mc4fbyj0s0jz elasticsearch-7.16.2]$ wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.16.2/elasticsearch-analysis-ik-7.16.2.zip

  • 解压:

需要解压到 plugins/ik/ 目录下

$ unzip elasticsearch-analysis-ik-7.16.2.zip -d plugins/ik/

  • 重启es:
    ./elasticsearch

  • 配置elasticsearch允许head插件远程访问

vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"

你可能感兴趣的:(Elasticsearch安装、常见问题及IK分词器的安装)