赞
踩
版本elasticsearch-8.11.1,解压安装完后,修改安装目录下conf/jvm.options,
- 默认配置如下:
- -Xms4g
- -Xmx4g
- 默认的配置占用内存太多了,调小一些:
- -Xms256m
- -Xmx256m
由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行。
进入bin目录下修改elasticsearch配置
- vim ./elasticsearch
-
- ############## 添加配置解决jdk版本问题 ##############
- # 将jdk修改为es中自带jdk的配置目录
- export JAVA_HOME=/usr/local/elasticsearch-7.13.2/jdk
- export PATH=$JAVA_HOME/bin:$PATH
-
- if [ -x "$JAVA_HOME/bin/java" ]; then
- JAVA="/usr/local/elasticsearch-7.13.2/jdk/bin/java"
- else
- JAVA=`which java`
- fi
- 修改绑定的ip允许远程访问
-
- #默认只允许本机访问,修改为0.0.0.0后则可以远程访问
- # 绑定到0.0.0.0,允许任何ip来访问
- network.host: 0.0.0.0
做了以上三处修改后启动报错:
Caused by: java.lang.IllegalStateException: Can't move to stopped state when not started
以下是关键错误信息:
问题1:1.bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]"
表明 Elasticsearch 在启动时执行了引导检查,但是发现了一个问题:虚拟内存区域的最大数量 (vm.max_map_count
) 设置过低,这个参数通常通过修改系统的内核参数来调整。为了解决这个问题,你需要增加 vm.max_map_count
的值,使其至少达到 262144。
解决方法:
通过编辑 /etc/sysctl.conf
文件来设置这个参数。打开文件,找到并确保以下行存在或添加:
# 增加虚拟内存区域的最大数量 vm.max_map_count=262144
运行以下命令来应用新的配置
sudo sysctl -p
问题2:bootstrap check failure [1] of [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
Elasticsearch 在启动时执行了引导检查,并发现文件描述符的最大数量过低。为了解决这个问题,你需要增加系统中允许 Elasticsearch 进程使用的最大文件描述符数量。
解决方法:
编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
这将设置所有用户的文件描述符限制。如果你只想为特定用户或组设置这个限制,可以替换 *
为具体的用户名或组名。然后,保存文件并注销或重新启动系统以应用这些更改
重启后又遇到如下警告:
[2023-11-23T14:36:13,189][WARN ][o.e.h.n.Netty4HttpServerTransport] [ambari-hadoop3] http client did not trust this server's certificate, closing connection Netty4HttpChannel{localAddress=/192.168.10.103:9200, remoteAddress=/192.168.10.1:63231}
控制台一直打印输出
这是因为在 Elasticsearch 中启用 HTTPS 并设置基本身份验证(Basic Authentication)后,你需要提供有效的用户名和密码以访问 9200 端口。默认情况下,Elasticsearch 不提供预配置的用户名和密码,因此你需要创建相应的用户。
此时如果你以https前缀访问9200端口,会提示你身份认证,你需要在安装目录下的bin目录下执行以下命令:
- ./elasticsearch-users useradd <desired_username> -p <desired_password> -r superuser
- #这会创建一个具有超级用户权限的用户。请替换 <desired_username> 和 <desired_password> 为你希望使用的实际用户名和密码。
然后输入身份认证,即可验证成功。
当然也可参照这篇博客中提及的方法去关闭身份验证
安装过程参考该篇博客 :
Linux环境下安装Elasticsearch,史上最详细的教程来啦~_linux elasticsearch_緈諨の約錠的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。