前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES日志报错赏析-Limit of total fields

ES日志报错赏析-Limit of total fields

原创
作者头像
ES小助理
发布2022-07-07 11:32:26
1.9K0
发布2022-07-07 11:32:26
举报
文章被收录于专栏:ES排障

报错现象

代码语言:javascript
复制
[o.e.a.a.i.m.p.TransportPutMappingAction] [------nodeid-------] failed to put mappings on indices [[[--------IndexName---------]]], type [doc]
java.lang.IllegalArgumentException: Limit of total fields [1000] in index [--------IndexName---------] has been exceeded
	at org.elasticsearch.index.mapper.MapperService.checkTotalFieldsLimit(MapperService.java:656) ~[elasticsearch-6.8.2.jar:6.8.2]
	at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:537) ~[elasticsearch-6.8.2.jar:6.8.2]
	at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:415) ~[elasticsearch-6.8.2.jar:6.8.2]

报错解析

此问题为写入时报错,ES中默认限制单个索引1000个字段,因为索引中定义太多的字段会导致 mapping 的激增,从而引起内存的错误和难以恢复的情况。

此问题常见于日志拆分后,自动更新更新mapping,由于日志拆分逻辑异常,导致很多异常字段被误认为是新字段,导致索引maaping字段激增大于1000.导致更新报错。

解决方案

1-调整索引setting,临时增大字段数限制,下述方式中my_index为报错的index名。

代码语言:javascript
复制
PUT my_index/_settings
{
"index.mapping.total_fields.limit": 2000
}  
此处设置为2000  最大索引

2-检查业务侧导致字段数激增的原因,减少单个索引字段数量。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错现象
  • 报错解析
  • 解决方案
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档