Elasticsearch启动失败问题汇总

版本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

Elasticsearch启动失败问题汇总_第1张图片

以下是关键错误信息:

       问题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启动失败问题汇总_第2张图片

        这是因为在 Elasticsearch 中启用 HTTPS 并设置基本身份验证(Basic Authentication)后,你需要提供有效的用户名和密码以访问 9200 端口。默认情况下,Elasticsearch 不提供预配置的用户名和密码,因此你需要创建相应的用户。

        此时如果你以https前缀访问9200端口,会提示你身份认证,你需要在安装目录下的bin目录下执行以下命令:

./elasticsearch-users useradd  -p  -r superuser
#这会创建一个具有超级用户权限的用户。请替换  为你希望使用的实际用户名和密码。

然后输入身份认证,即可验证成功。

Elasticsearch启动失败问题汇总_第3张图片

当然也可参照这篇博客中提及的方法去关闭身份验证

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博客 

你可能感兴趣的:(Elasticsearch,elasticsearch,大数据,搜索引擎)