ElasticSearch常见的报错及解决

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: ElasticSearch常见的报错及解决

1、索引只读

all indices on this node will be marked read-only
FORBIDDEN/12/index read-only / allow delete (api)

原因:

磁盘空间不够啦,我使用df -h查看磁盘空间,发现使用了97%,es默认达到95%就全都设置只读

解决

配置 config/elasticsearch.py

# 控制洪水阶段水印。它默认为95%
cluster.routing.allocation.disk.watermark.flood_stage: 99%
或者
cluster.routing.allocation.disk.threshold_enabled: false

如果磁盘够了之后需要手动释放

PUT / twitter / _settings
{
  "index.blocks.read_only_allow_delete":null
}

参考

https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html

2、索引不能增加文档

Rejecting mapping update to [website] as the final mapping would have more than 1 type

原因:

6.X以及以后版本,不支持一个index多个type了, 一个索引只有一个文档type

参考

https://www.cnblogs.com/LUA123/p/10037336.html

下面几个问题折腾了了我一下午,记录下,后人勉之

3、不能以root用户运行

报错

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: 
can not run elasticsearch as root

添加单独的用户组,单独的用户,并给权限

groupadd elsearch
useradd elsearch -g elsearch
chown -R elsearch:elsearch elasticsearch-5.6.3
su elsearch
# 修改用户密码
passwd elsearch

4、切换用户后找不到java

切回root账户 查看java在哪里

$ which java
/root/myappBin/jdk1.8.0_121/bin/java

发现java被装在root目录下,what!!!普通用户是不能访问root目录的

然后改下权限就好了

chmod 777 /root

5、max_map_count太低

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 

切换到root用户修改配置

$ vim etc/sysctl.conf

增加配置值:

vm.max_map_count=655360

执行命令

$ sysctl -p

重新启动ES服务

6、main ERROR Could not register mbeans

main ERROR Could not register mbeans java.security.AccessControlException: 
access denied ("javax.management.MBeanTrustPermission" "register")

改变elasticsearch文件夹所有者到当前用户

sudo chown -R elsearch:elsearch elasticsearch-5.6.3

7、low disk watermark [??%] exceeded on

elasticsearch.yaml

cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 93%
cluster.routing.allocation.disk.watermark.high: 95%

8、max file descriptors elasticsearch process is too low

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

翻译:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;

解决办法:

#切换到root用户修改

$ vim /etc/security/limits.conf
# 在最后面追加下面2行内容
*** hard nofile 65536
*** soft nofile 65536
***  是启动ES的用户

参考:

  1. 关于普通用户不能在root目录下创建文件及目录的总结
  2. linux 安装 Elasticsearch5.6.x 详细步骤以及问题解决方案
  3. https://stackoverflow.com/questions/33369955/low-disk-watermark-exceeded-on

一些指令

cat /etc/passwd  # 查看所有的用户
cat /etc/group  # 查看所有的组
groups 用户名  # 当前用户所在组
增加用户:useradd username
为用户增加密码:passwd username
新建工作组:groupadd groupname
将用户添加进工作组:usermod -G groupname username
删除用户:userdel username
切换用户: su username
退出当前用户: exit


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
索引
ElasticSearch 报错及解决 详细 0405【已解决】
ElasticSearch 报错及解决 详细 0405【已解决】
1121 4
|
前端开发 安全 开发工具
ElasticSearch启动报错,bootstrapchecksfailed
ElasticSearch启动报错,bootstrapchecksfailed
163 0
|
Java Windows
windows下 安装 Elasticsearch报错warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
windows下 安装 Elasticsearch报错warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
963 0
|
10天前
|
网络协议 Java Maven
多模块项目使用ElasticSearch报错
多模块项目使用ElasticSearch报错
53 8
|
关系型数据库 MySQL Java
实时计算 Flink版操作报错之遇到java.lang.IllegalStateException: The elasticsearch emitter must be serializable.的错误,如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
网络协议 Java Maven
多模块项目使用ElasticSearch报错
多模块项目使用ElasticSearch报错
325 6
|
网络协议 Java
elasticsearch7.1 安装启动报错
elasticsearch7.1 安装启动报错
273 1
|
JSON DataWorks 关系型数据库
DataWorks操作报错合集之同步Elasticsearch数据报错:Cat response did not contain a JSON Array,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
Java Spring
解决Springboot集成ElasticSearch 报错:A bean with that name has already been defined in null and overriding
解决Springboot集成ElasticSearch 报错:A bean with that name has already been defined in null and overriding
448 2
|
Prometheus 监控 Cloud Native
实时计算 Flink版操作报错之在使用ES时遇到“java.lang.IllegalStateException: The elasticsearch emitter must be serializable”,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。