ElasticSearch常见的报错及解决

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 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


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
5月前
|
索引
ElasticSearch 报错及解决 详细 0405【已解决】
ElasticSearch 报错及解决 详细 0405【已解决】
436 4
|
6月前
|
前端开发 安全 开发工具
ElasticSearch启动报错,bootstrapchecksfailed
ElasticSearch启动报错,bootstrapchecksfailed
82 0
|
6月前
|
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
445 0
|
2月前
|
网络协议 Java Maven
多模块项目使用ElasticSearch报错
多模块项目使用ElasticSearch报错
39 6
|
6月前
|
关系型数据库 MySQL Java
实时计算 Flink版操作报错之遇到java.lang.IllegalStateException: The elasticsearch emitter must be serializable.的错误,如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
网络协议 Java
elasticsearch7.1 安装启动报错
elasticsearch7.1 安装启动报错
62 1
|
5月前
|
JSON DataWorks 关系型数据库
DataWorks操作报错合集之同步Elasticsearch数据报错:Cat response did not contain a JSON Array,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
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
208 2
|
6月前
|
Prometheus 监控 Cloud Native
实时计算 Flink版操作报错之在使用ES时遇到“java.lang.IllegalStateException: The elasticsearch emitter must be serializable”,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
Java
ElasticSearch启动报错 java version is an early-access build ,only use release builds【已解决】
ElasticSearch启动报错 java version is an early-access build ,only use release builds【已解决】
64 0