版本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> 为你希望使用的实际用户名和密码。
然后输入身份认证,即可验证成功。
当然也可参照这篇博客中提及的方法去关闭身份验证
Elasticsearch 8.0报错:received plaintext http traffic on an https channel, closing connection_[cdp01] received plaintext http traffic on an http_程序员在线炒粉8元1份顺丰包邮送可乐的博客-CSDN博客
安装过程参考该篇博客 :
Linux环境下安装Elasticsearch,史上最详细的教程来啦~_linux elasticsearch_緈諨の約錠的博客-CSDN博客