es7.7需要的jdk最低版本是11,如果机器上默认环境1.7/1.8是无法之间启动的;不过es7.7已经内置了jdk11,所以不用另行下载。
一、下载与安装
1.下载es7.7 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz
2.解压
tar -zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz
二、新建es用户及授权
在启动elasticsearch之前,ES在启动的时候是不允许使用root账户的,所以我们要新建一个用户es。
useradd es
然后把elasticsearch-7.7.0
这个目录和目录下所有的文件的拥有者都改成es:
chown es:es -R elasticsearch-7.7.0
三、启动测试
es启动不能用root用户。所以要切换到es
用户:
su es
cd名利到/es所在的
目录,
cd /es/es7.7
我们启动一下,看看能不能启动成功。
./bin/elasticsearch
可以启动成功。但是我们通过浏览器访问这个ip的9200端口时,是不成功的。我们需要对elasticsearch进行配置,才可以在别的机器上访问成功。
修改配置前需要先杀掉 elasticsearch服务。用以下命令查找进程号
ps -ef | grep elasticsearch
然后kill -9 进程号
四、修改配置、正式启动
es的所有配置文件都在${ES_HOME}/config
这个目录下。
配置文件1:elasticsearch.yml
文件,配置一下这里边的这几个参数
# ---------------------------------- Cluster ------
cluster.name: cluster-es77
# ------------------------------------ Node ------------------------------------
node.name: node-es77
# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0
//这里修改端口是因为有其他es,默认不需要更改
http.port: 9207
transport.tcp.port: 9307
//es7.7需要修改的配置,发现那些节点,至少要一个
cluster.initial_master_nodes: ["node-es77"]
配置文件2:jvm.options文件,后面添加这两句。配置下分配给他的内存,这里根据自己情况分配,这里只是测试分配的较低。
-Xms1g
-Xmx2g
然后启动es(-d参数意思是后台启动,否则关闭命令行窗口后es进程也关闭了)
./bin/elasticsearch -d
验证Elasticsearch是否运行,方法有几种(假如你的是9200默认端口没有改):
方法一:看进程:ps -ef | grep elastic
方法二:命令行程序curl访问端口 curl http://localhost:9200
方法三:看看9200端口是否使用 ss -tanl
方法四:用浏览器访问 http://******:9200/
五、es部署问题解决
问题1:Elasticsearch requires at least Java 11 but your Java version from XXXX does not meet this requirement”
这个是ES7运行时,而本地JDK为JDK8版本,虽然ES7内置JDK11,但是似乎没有使用,原因呢?
Elasticsearch该版本内置了JDK,而内置的JDK是当前推荐的JDK版本。当然如果你本地配置了JAVA_HOME那么ES就是优先使用配置的JDK启动ES
解决方法:系统默认设置的java_home版本较低。可以使用Elasticsearch 7.7内置的jdk。
在es的bin/elasticsearch文件打开,最前面添加这几句
#配置自己的jdk11
export JAVA_HOME=/es/elasticsearch-7.7.0/jdk
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin" ]; then
JAVA="/es/elasticsearch-7.7.0/jdk/bin/java"
else
JAVA=`which java`
fi
问题2:could not find java in JAVA_HOME
如如果使用内置jdk提示找不到java,而你确定jdk就是在这个文件夹里。则可能没给es用户附加es安装文件夹权限
chown es:es -R elasticsearch-7.7.0
问题3:ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
解决方法1:7以前的版本先按照这里看看https://www.cnblogs.com/weibanggang/p/11591815.html。
解决方法2:如果是7之后的版本,如果还不能解决,请打开elasticsearch.yml
取消注释保留一个节点。这里的node-1是上面一个默认的记得打开就可以了
cluster.initial_master_nodes: ["node-es77"]