安装并启动
- 首先下载elasticsearch压缩文件,下载地址。 我这里选择的是elasticsearch-7-17-1版本:
https://www.elastic.co/cn/downloads/elasticsearch
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-1
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
su - elastic
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,实时观察内存的变化情况,
elasticsearch启动过程中,发现可用内存下降到几十M:
因为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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)