Linux安装elasticsearch7.x(踩坑分享)

安装并启动

  • 首先下载elasticsearch压缩文件,下载地址。 我这里选择的是elasticsearch-7-17-1版本:

https://www.elastic.co/cn/downloads/elasticsearch
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-1

  • 上传到Linux上进行解压:

tar zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz

  • Linux环境下不能用root账号启动elasticsearch。所以需要创建专属es的账号密码:

useradd elastic
passwd elastic

  • 需要把es目录的权限转移给新建的es用户,记得在root账户下执行:

chown -R elastic:elastic /usr/local/elasticsearch-7.17.1

  • 切换到elastic用户:

su - elastic

  • 进入到bin目录下启动程序:

cd /usr/local/elasticsearch-7.17.1/bin
./elasticsearch

温馨提示:

elastic 7.2之后就自带JDK 我们可以再不改名系统本身环境变量的同时,使用elastic自身的JDK。我搞了好久在折腾下载java环境。
所以,不用去安装或下载JDK,es的目录中已经存在jdk目录了。

遇到的坑

elasticsearch启动的时候自动killed,查看资料说是内存不够,自动杀死进程。
我们用 watch -d free -h观察一下,然后启动elasticsearch,实时观察内存的变化情况,

Linux安装elasticsearch7.x(踩坑分享)_第1张图片
elasticsearch启动过程中,发现可用内存下降到几十M:
Linux安装elasticsearch7.x(踩坑分享)_第2张图片
因为ES是运行在JVM上,JVM本身除了分配的heap内存以外,还会用到一些堆外(off heap)内存。 在小内存的机器上跑ES,如果heap划分过多,累加上堆外内存后,总的JVM使用内存量可能超过物理内存限制。 如果swap又是关闭的情况下,就会被操作系统oom killer杀掉。
解决方案:修改ES中config目录下的jvm.options文件

-Xms4g
-Xmx4g
改为
-Xms256m
-Xmx256m
#Xms表示堆内存初始大小,单位m、g。Xmx表示堆内存最大允许大小,一般不要大于物理内存的80%
由于我的服务器配置比较差,所以我这里用256m就可以了。

启动的时候可能也会报这个错误:

Native controller process has stopped - no new native processes can be started

解决方案:打开config/elasticsearch.yml文件,设置为单机部署:
discovery.type: single-node(单机部署可以加上这个)

设置es密码

  • 打开config/elasticsearch.yml文件,添加:

xpack.security.enabled: true

  • 交互输入多次密码,账号默认是elastic:(需要先启动es再设置密码)

./elasticsearch-setup-passwords interactive

  • 检查一下,没问题:

curl -u elastic:es123456 -X GET 127.0.0.1:9200/_cat/indices?v
curl -u elastic:es123456 127.0.0.1:9200

但是在浏览器访问外网地址http://81.68.xx.xx:9200/却报错。。。。

解决方案,再次打开config/elasticsearch.yml文件,设置:
network.host: 0.0.0.0

这样内网和外网都能访问了。

总结一下修改elasticsearch.yml配置的地方:

xpack.security.enabled: true
discovery.type: single-node
network.host: 0.0.0.0

window环境安装elasticsearch:
https://blog.csdn.net/weixin_38155824/article/details/123930872

你可能感兴趣的:(elasticsearch,linux)