ElasticSearch 学习笔记之安装详解

本文基于 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
2
3
4
cd /
mkdir /data
cd ./data
mkdir ./es

命令执行完毕之后,此时命令行在的 /data 目录下,在该目录下将第一步下载好的 ES 源文件上传至本目录中,此时 ES 源码安装包和 es 文件目录在同一级目录中。

因为 ES 不允许 ROOT 用户启动,因此需要创建一个非 ROOT 用户帐号,因此执行如下命令创建普通用户帐号,并将 es 目录授权给该用户:

1
2
useradd elsearch
chown elsearch:elsearch /data/es/ -R

在 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
2
-Xms1g 默认初始堆内存1G
-Xmx1g 默认最大堆内存1G

步骤3:配置内存映射最大内存数量

此操作必须是 ROOT 用户权限才能修改:

1
2
3
vim /etc/sysctl.conf
# 添加内存映射最大内存数量配置
vm.max_map_count=655360

配置好后,执行 sysctl -p 命令,让刚才的系统配置生效。配置正确,会在上述命令执行完毕,控制台打印出已经配置的配置项。

启动

在 ES 安装目录下有个 bin 目录,进入这个 bin 目录,执行 ./elasticsearch 或者 ./elasticsearch -d ,参数 -d表示在后台静默启动。

建议在第一次启动的时候采用第一种启动,防止出现缺少配置问题导致无法启动,待显式启动都没问题了再执行静默启动。

成功启动可以在浏览器访问本虚拟机IP:9200,即可得到形如下的 JSON 信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "c-mFwGL",
"cluster_name": "elasticsearch",
"cluster_uuid": "3IFfflBJR1ya7jj5v-VeSg",
"version": {
"number": "6.5.4",
"build_flavor": "default",
"build_type": "tar",
"build_hash": "d2ef93d",
"build_date": "2018-12-17T21:17:40.758843Z",
"build_snapshot": false,
"lucene_version": "7.5.0",
"minimum_wire_compatibility_version": "5.6.0",
"minimum_index_compatibility_version": "5.0.0"
},
"tagline": "You Know, for Search"
}

使用 jps 命令查看 ES 进程信息:

1
2
3
[root@localhost ~]# jps
2979 Elasticsearch
3115 Jps

如果看到上述 ES 进程信息,也表示 ES 启动成功。

启动错误问题解决

在启动过程中,可能会提示如下三种异常问题:

1
2
3
[1]: max ``file` `descriptors [4096] ``for` `elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3802] ``for` `user [esyonghu] 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]

第一个错误表示需要将当前用户的软硬调用限制调大,切换到 ROOT 用户,然后执行:

1
vim /etc/security/limits.conf 

在 “# End of file” 描述下方添加如下配置:

1
2
3
4
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

第二个错误需要修改/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
2
3
4
5
firewall-cmd --list-ports	# 查看已经开放的端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent # 永久开启 9200 端口
firewall:firewall-cmd --reload # 重启防火墙
firewall:systemctl stop firewalld.service # 停止防火墙
systemctl disable firewalld.service # 禁止firewall开机启动

注意开设端口之后,防火墙需要重启。

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
2
http.cors.enabled: true
http.cors.allow-origin: "*"
updated updated 2024-01-01 2024-01-01
本文结束感谢阅读

本文标题:ElasticSearch 学习笔记之安装详解

本文作者:woodwhales

原始链接:https://woodwhales.cn/2019/11/04/051/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%