Centos安装ES7是非常麻烦的,B站上大多也都是在Windows环境安装ES,踩了不少坑,所以整理了一篇安装教程。
首先官网下载ESDownload Elasticsearch | Elastic
下载ES7.16.2 Linux版本,非常简单,这里不过多解释。
下载完之后解压。
首先ES的启动需要普通用户,不能是root用户,我们先创建用户
adduser elasticsearch
adduser [elasticsearch{这个是用户名,也就是登录的用户名}]
为用户名创建密码
passwd elasticsearch
密码 推荐和用户名一样,这样好记,注意如果密码和用户名一样 Centos会提示,让你重新输入,这时候不要管它,重复输入两遍就好了。
创建好用户之后在开个ssh,然后用elasticsearch登录。
第二个注意的点是,用root用户给elasticsearch这个目录777权限,不然也会出问题。
最后一个要注意的点,ES7版本需要JDK11,这个版本对应的文档我就不放了,ES7自带了JDK11,如果你的服务器装的是JDK1.8并且设置了JAVA_HOME环境变量这时候如果启动是不能启动的。
我们需要更改,bin/elasticsearch,可以用vi编辑,在文件头加上这些,注意jdk路径要换成你的
#配置为elasticsearch自带jdk
export ES_JAVA_HOME=/usr/local/software/elastic/elasticsearch-7.16.2/jdk
export PATH=$ES_JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$ES_JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/software/elastic/elasticsearch-7.16.2/jdk/bin/java"
else
JAVA=`which java`
fi
修改sysctl.conf
不配的话启动报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
# 进入sysctl.conf
sudo vim /etc/sysctl.conf
# 在文件尾加这句话
vm.max_map_count=262144
到bin目录启动elasticsearch,这时候,在本机访问9200应该是能访问到的。
如果想所有IP均可访问到ES,那么还需要以下配置,
修改config/elasticsearch.yml
添加下面这些
network.host: 0.0.0.0
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
http.port: 9200
启动ES,如果报错:
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
主要是文件权限与内存大小问题:
elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536,
处理办法: #切换到root用户修改
vim /etc/security/limits.conf # 在最后面追加下面内容
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536 ? ? ? ? ? ? ?#elasticsearch ?是用户
然后执行
sysctl -p
再次启动ES,如果还报这个错,有可能是最后一步刷新没成功,这时候可以退出elasticsearch用户,再次登录,然后启动ES,这时候基本就没问题了。
访问IP+9200