本文基于 centos 7 虚拟机操作系统,安装 Elastic Search 6.5.4
下载
官方下载地址: https://www.elastic.co/cn/downloads/past-releases#elasticsearch
选择合适的安装版本,本文选择 6.5.4 版本的 linux 安装包:
下载完成之后的压缩包名为:elasticsearch-6.5.4.tar.gz
Linux 环境准备
本文使用 VMWare 虚拟机运行 Centos 7 操作系统,在启动 Centos Linux 操作系统之前,注意需要设置虚拟机的处理器参数:
由于 ES 对机器的性能有要求,所以本文设置:处理器数量为 2,每个处理器的内核数量为 2。
使用 root 帐号启动虚拟机,准备安装下载好的 ES 安装源文件。
安装
在 Linux 根目录下创建名称为data
的文件目录,在该目录下再创建一个名称为es
的文件目录。依次执行命令:
1 | cd / |
命令执行完毕之后,此时命令行在的 /data 目录下,在该目录下将第一步下载好的 ES 源文件上传至本目录中,此时 ES 源码安装包和 es 文件目录在同一级目录中。
因为 ES 不允许 ROOT 用户启动,因此需要创建一个非 ROOT 用户帐号,因此执行如下命令创建普通用户帐号,并将 es 目录授权给该用户:
1 | useradd elsearch |
在 es 目录的父级目录执行 ll
命令可以看到 es 目录的所属人是:elsearch。
切换成刚才创建的用户:
1 | su - elsearch |
虽然 ES 源码安装包是 ROOT 用户权限所属,但是普通用户有可读的权限,因此可以直接解压:
1 | tar -xvf ./elasticsearch-6.5.4.tar.gz -C es |
解压成功之后,在 es 目录中存在 elasticsearch-6.5.4
的文件目录。
启动前的配置
步骤1:修改 IP 和 port
进入 config
目录,修改 elasticsearch.yml
文件配置:
到:”#network.host: 192.168.0.1” 配置,开启 network.host
配置,设置成 0.0.0.0
,这样任意的地址都可以访问。
步骤2:修改 JVM 参数配置
在 ES 中,如果 network.host 配置的不是 127.0.0.1的话,就会认为是生产环境,那么对环境要求很高,在测试环境中不一定满足。所以需要修改 jvm 启动参数。
修改 jvm.options
文件配置,将如下默认的配置设置成:-Xms128m
和 -Xmx128m
1 | -Xms1g 默认初始堆内存1G |
步骤3:配置内存映射最大内存数量
此操作必须是 ROOT 用户权限才能修改:
1 | vim /etc/sysctl.conf |
配置好后,执行 sysctl -p
命令,让刚才的系统配置生效。配置正确,会在上述命令执行完毕,控制台打印出已经配置的配置项。
启动
在 ES 安装目录下有个 bin
目录,进入这个 bin 目录,执行 ./elasticsearch
或者 ./elasticsearch -d
,参数 -d
表示在后台静默启动。
建议在第一次启动的时候采用第一种启动,防止出现缺少配置问题导致无法启动,待显式启动都没问题了再执行静默启动。
成功启动可以在浏览器访问本虚拟机IP:9200,即可得到形如下的 JSON 信息:
1 | { |
使用 jps
命令查看 ES 进程信息:
1 | [root@localhost ~]# jps |
如果看到上述 ES 进程信息,也表示 ES 启动成功。
启动错误问题解决
在启动过程中,可能会提示如下三种异常问题:
1 | [1]: max ``file` `descriptors [4096] ``for` `elasticsearch process is too low, increase to at least [65536] |
第一个错误表示需要将当前用户的软硬调用限制调大,切换到 ROOT 用户,然后执行:
1 | vim /etc/security/limits.conf |
在 “# End of file” 描述下方添加如下配置:
1 | * soft nofile 65536 |
第二个错误需要修改/etc/security/limits.d/20-nproc.conf
文件,这里需要注意一下,可能不叫20-nproc.conf
,也可能是90-nproc.conf
:
1 | vim /etc/security/limits.d/20-nproc.conf |
默认为 * soft nproc 1024
,修改成:* soft nproc 4096
第三个错误解决:参见上上小节的”启动前的配置”。
防火墙端口设置
注意 ES 默认启动的是 9200 端口,因此要注意防火墙端口是否开启:
1 | firewall-cmd --list-ports # 查看已经开放的端口 |
注意开设端口之后,防火墙需要重启。
ES 可视化工具
ES 官网没有提供可视化工具,github 上有款很优秀的工具:http://mobz.github.io/elasticsearch-head/
该工具提供了多种使用方式:
第一种:克隆 github 上的源码,npm run start
编译安装。
第二种,使用 docker 镜像安装。
第三种,Chrome 插件。插件地址:https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm
第四种,通过 ES 的 plugin 方式安装。
注意,上述使用途径,可能会存在前后端分离,所以最好配置一下 ES 支持跨域请求:
1 | vim elasticsearch.yml |
增加配置:
1 | http.cors.enabled: true |