0
点赞
收藏
分享

微信扫一扫

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

他说Python 2022-04-01 阅读 77
  • 首先下载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,实时观察内存的变化情况,

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

-Xms4g
-Xmx4g
改为
-Xms256m
-Xmx256m
由于我的服务器配置比较差,所以我这里用256m就可以了。

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

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

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

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

xpack.security.enabled: true

  • 交互输入多次密码,账号默认是elastic:

./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

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

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

相关推荐

0 条评论