# Elasticsearch6.x学习笔记 - 安装
4 min read
文章目录
前言
最近心血来潮,准备学习下开源届首选的搜索引擎Elasticsearch,在了解相关概念之后就准备在虚拟机装上试一试了。
下载安装包
在Elasticsearch 官网下载,下载完后解压至任意目录。
启动
./bin/elasticsearch#后台运行./bin/elasticsearch -d然而并没有就这么容易启动就成功,下面一一排查启动故障。
排查启动故障
- 启动报 OOM 内存溢出
原因:elasticsearch 默认的 jvm 堆内存大小为 1GB,而我虚拟机分配的内存也才 1GB,启动时系统分配不了这么大的堆内存所以直接内存溢出了。
解决办法:把堆内存调小点,修改./config/jvm.options 文件,把堆内存设置为 512MB。-Xms512m-Xmx512m - 不能以 root 用户启动
原因:elasticsearch 为了安全性默认不允许 root 用户来启动。
解决办法:- 在启动参数中添加
-Des.insecure.allow.root=true,但是我测试了根本没效果,原来是 elasticsearch5.x 版本把这个属性给去掉了,也就是说绝对禁止 root 用户运行了,这个是相关PR。 - 添加一个用户来运行
#添加一个用户名为esuseradd es#把elasticsearch目录的所属用户和组设置为eschown -R es:es ./#切换到es用户su es#运行./bin/elasticsearch
- 在启动参数中添加
- max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
原因:elasticsearch 启动时检测到用户最大文件描述符限制低于 65536 而抛出的异常。
解决办法:修改 es 用户最大文件描述符限制在最后添加两行内容,设置 es 用户最大文件描述符限制为 65536#切换到root用户su root#修改对应文件vi /etc/security/limits.confes soft nofile 65536es hard nofile 65536 - max number of threads [3802] for user [es] is too low, increase to at least [4096]
原因:elasticsearch 启动时检测到用户最大的线程数限制低于 4096 而抛出的异常。
解决办法:修改 es 用户最大的线程数限
可以看到 root 用户是无限制的,而*代表的其他用户限制是 4096。(*很奇怪既然是 4096 为什么上面提示说最大线程数是 3802 呢?*),先不管原因了搜到了解决方案在下面加一行。#切换到root用户su root#修改对应文件vi /etc/security/limits.d/20-nproc.conf* hard nproc 4096
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因:elasticsearch 启动时检测到系统最大虚拟内存低于 262144 而抛出的异常。
解决办法:修改系统最大虚拟内存
修改或添加 vm.max_map_count 参数vi /etc/sysctl.conf刷新配置vm.max_map_count=262144sysctl -p
启动成功
启动成功之后访问http://127.0.0.1:9200,就可以看到服务器相关信息了。
默认情况下是服务器是监听127.0.0.1,如果让别的网段访问到的话需要修改./config/elasticsearch.yml文件。
#配置所有网段可以访问network.host: 0.0.0.0