笔者开发了一个社区项目,用到了Elasticsearch作为搜索引擎。开发完成后,在阿里云服务器部署时,出现了ES无法启动的情况,具体如下。
版权声明:本文为博主原创文章,禁止转载
作者博客:codesong.cn
created: 2019-12-30
版本信息
- 云服务器操作系统:CentOS 7.6
- Elasticsearch版本:6.4.3
- 已在阿里云服务器控制台安全组开放9200、9300端口
- 使用非root用户启动ES,仍无法启动
错误信息
在本地(Windows)能够启动ES并正常运行项目,在CentOS无法启动ES。
向阿里云提交工单联系后,查看端口发现没有9200端口,说明ES服务未启动。
防火墙端口
解决方法
在网上查询了多种ES启动失败及报错原因,均与我的情况不一样,没有解决问题。在确定所有操作都是正确的之后,决定尝试更换JDK版本。
当前使用的JDK版本是13(java-latest-openjdk.x86_64),删除后重新安装JDK12,发现ES能够成功启动,问题解决。
总结:ES对Java版本要求比较高,本人使用的ES 6.4.3可以在JDK11、JDK12等版本上运行,但不支持最新的JDK13.
ES安装方法
最后附上本人部署项目时,ES的安装方法及配置:
1.下载ES:
wget -i -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz
2.下载ES中文分词插件:
wget -i -c https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
3.解压安装ES及插件
tar -zvxf elasticsearch-6.4.3.tar.gz -C /opt
unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zip
4.配置ES
cd /opt/elasticsearch-6.4.3/
cd config/
vim elasticsearch.yml 修改集群名称和路径
vim jvm.options 修改ES内存
5.使用普通用户启动ES
cd /opt
chown -R usergroup1:esuser * //给普通用户授权
cd /tmp
chown -R usergroup1:esuser *
su - esuser
cd /opt/elasticsearch-6.4.3/
bin/elasticsearch -d //守护模式后台启动ES
6.测试ES是否启动成功
curl -X GET "localhost:9200/_cat/health?v"
7.其他命令
ps -ef | grep elastis //查看进程
kill -9 6666 //关闭进程