当前位置: 首页 > article >正文

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

以下是关键错误信息:

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


http://www.kler.cn/a/147625.html

相关文章:

  • ffmpeg视频编码
  • 二分搜索的三种方法
  • Easyui ComboBox 数据加载完成之后过滤数据
  • Spring Boot框架:构建可扩展的网上商城
  • Android笔记(三十六):封装一个Matrix从顶部/底部对齐的ImageView
  • MySQL-初识数据库
  • 【创建和排查隐藏进程和隐藏计划任务】
  • Vue 入门指南:从零开始学习 Vue 的基础知识
  • 名词解释之EID和SR
  • oracle查询开始时间和结束时间之间的连续月份
  • shell编程系列- bash和sh的区别
  • VUE语法--img图片不显示/img的src动态赋值图片显示
  • [学习笔记]IK分词器的学习
  • 探究Kafka原理-7.exactly once semantics 和 性能测试
  • Python批量裁剪图像尺寸、压缩图像大小代码实现
  • 阿里云对象存储oss-文件上传过程详解(两种方式)
  • 简易版扫雷+代码分析
  • ElasticSearch的日志配置
  • 十分钟搭建VScode C/C++运行环境
  • 03、K-means聚类实现步骤与基于K-means聚类的图像压缩(1)
  • Python基础语法之学习数据转换
  • React Native 源码分析(五)—— Fabric创建View的过程
  • 复习 学习 多看
  • leetcode9.回文数
  • java Swing UI设置统一字体大小
  • 一起学docker系列之十docker安装tomcat实践