前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DataX导入ES报错Limit of total fields [1000] in index

DataX导入ES报错Limit of total fields [1000] in index

原创
作者头像
用户6404053
发布于 2023-05-19 16:50:25
发布于 2023-05-19 16:50:25
1.4K00
代码可运行
举报
文章被收录于专栏:CatororyCatorory
运行总次数:0
代码可运行

问题

公司有一个场景是每天需要批量导入大量数据到es中(我们用的是datax),并且字段是动态mapping的,字段越来越多之后终于遇到了这个报错。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.lang.IllegalArgumentException: Limit of total fields [1000] in index xxx

简单搜了下其实这是es的默认值,单个索引最大的字段数是1000,超过就报错,写不进去了。

解决办法

解决方法也很简单,把这个1000改大就可以了,很多文档会让你这样改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PUT my_index/_settings
{
    "index.mapping.total_fields.limit": 2000
} 

没有kibina的话可以用shell curl

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl --user admin:admin --header "Content-Type: application/json;charset=UTF-8" -XPUT http://127.0.0.1:9200/my_index/_settings -d '{"index.mapping.total_fields.limit": 2000}'

改完之后用get查一下,果然是2000了,这下应该没问题了吧,重跑了一下,又出错了,还是一样的错,再get一下看看配置,变回1000了,什么鬼。

回过头再分析下

1.导入的是大量数据

2.每天都导

3.用的dataX

翻了一下配置文件发现一个配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"cleanup": true

意思是每次导入都重建索引,重建意思是旧索引删除了,重新建一个新的。到这里问题出来了,上面改成2000的索引被删掉了,新建索引又是1000的默认值。

那怎么解决?

重新启动任务,等索引建好了再改成2000,这次成功同步完了,完美。好像又有点不对劲,下一次再同步的时候不是又变成1000了,怎么办。

能不能把这个2000在创建索引的时候就设置好呢?

又翻了下dataX的文档,在示例配置中发现了一个settings的字段,看起来像是可以设置索引的属性,试一下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"settings": {
           "number_of_shards": 1,
           "number_of_replicas": 0,
           "index.mapping.total_fields.limit":"2000"
        }

成功了,这下完美了。

总结一下

问题其实很简单,但是不注意会掉坑里,如果用datax的话为了彻底解决问题,total_fields的配置要写到datax同步的配置文件中,不然下次还报错。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ES日志报错赏析-Limit of total fields
此问题为写入时报错,ES中默认限制单个索引1000个字段,因为索引中定义太多的字段会导致 mapping 的激增,从而引起内存的错误和难以恢复的情况。
ES小助理
2022/07/07
2.1K0
ES日志报错赏析-Limit of total fields
es创建索引及别名更新mapping方法 elasticsearch [nested] nested object under path [XXX] is not of nested type
[nested] nested object under path [XXX] is not of nested type这是因为在创建索引时没有指定类型为数组,这就是一个大坑,ES官方说可以不用指定数字组类型,结果不指定的聚合结果还不一样!!!
oktokeep
2024/10/09
1740
es应用服务初始化步骤
{ "settings": { "index.mapping.total_fields.limit": 2000, "number_of_shards": 5, "number_of_replicas": 1 }, "mappings": { "_doc": {"properties": {  //省略字段的定义,很多字段 }}
oktokeep
2024/10/09
970
Elasticsearch:Dynamic mapping
Elasticsearch 最重要的功能之一是它试图摆脱你的方式,让你尽快开始探索你的数据。 要索引文档,你不必首先创建索引,定义映射类型和定义字段 - 你只需索引文档,那么 index,type 和 field 将自动生效。比如:
腾讯云大数据
2020/09/28
8170
Elasticsearch:Dynamic mapping
[Elasticsearch] ES 的Mapping 设计在实际场景中应用
项目中有个需求是需要几个字段作为标签,统计各个标签的文档数量,同时支持分词后的全文检索功能。
awwewwbbb
2021/12/27
6860
ELK专栏之ES索引-04
● 在生产上,我们需要自己手动建立索引和映射,是为了更好的管理索引,就像数据库的建表数据一样。
大忽悠爱学习
2022/09/29
6550
ELK专栏之ES索引-04
GrayLog常见问题收录-FAQ篇
Amount of time after which inactive Sidecars are purged from the database.
yuanfan2012
2025/01/07
1430
GrayLog常见问题收录-FAQ篇
Elasticsearch调优实践
在规模比较大的集群中,可以防止新建shard时扫描所有shard的元数据,提升shard分配速度。
HLee
2021/02/08
5890
Elasticsearch调优实践
Elasticsearch调优实践
本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用方式三个角度入手,介绍ES调优的基本方案。当然,ES的调优绝不能一概而论,需要根据实际业务场景做适当的取舍和调整,文中的疏漏之处也随时欢迎批评指正。
技术姐
2018/07/04
13.9K3
Elasticsearch调优实践
Elasticsearch的Index和Mapping(二)
本文使用的Elasticsearch版本为6.5.4,基本命令以及操作大都通用。下面通过MySQL与Elasticsearch的对比图,让我们更好地理解接下来的增删改操作。
用户3467126
2020/02/25
2.8K0
Elasticsearch的Index和Mapping(二)
深入了解Elasticsearch:指定条件迁移数据
由于有时候需要将部分数据在不同的环境之间同步,需要在ES中迁移指定条件的数据,本例演示从测试环境A迁移某索引部分数据到测试环境B。
洛秋_
2023/12/13
5160
深入了解Elasticsearch:指定条件迁移数据
Elasticsearch 6.x Mapping设置
需要注意的是,在索引中定义太多字段可能会导致索引膨胀,出现内存不足和难以恢复的情况,下面有几个设置:
小旋锋
2019/01/21
3.2K0
Elasticsearch索引管理
查看的模板 GET 127.0.0.1:9200/_template/模板名 使用通配符 GET /_template/temp*
丁D
2022/08/12
6960
Elasticsearch调优实践
背景 Elasticsearch(ES)作为NOSQL+搜索引擎的有机结合体,不仅有近实时的查询能力,还具有强大的聚合分析能力。因此在全文检索、日志分析、监控系统、数据分析等领域ES均有广泛应用。而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。  本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用方式三个角度入手,介绍ES调优的基本方案。当然,ES
腾讯技术工程官方号
2018/07/12
3.7K1
Elasticsearch一些使用笔记(持续更新)
template机制是比较有用的,特别是管理大量索引的时候。先给一个template的demo。
用户1225216
2019/05/25
5780
介绍几个实际生产中常用的API
本文将介绍几个ES集群生产运维中用得比较多的API,方便大家操作维护日常的运维问题。
南非骆驼说大数据
2021/01/03
1.5K0
Elasticsearch问题汇总
这是bool查询的条件超过了默认的1024上限,可以通过修改全局配置来增加上限,需要注意的是别设置太高,会消耗太多的CPU资源和内存。
雨临Lewis
2022/01/12
1.7K0
071. ElasticSearch 应用场景及核心概念
1. ES 使用场景 ---- 给网站 / APP 添加搜索功能。 存储、分析数据。 管理、交互、分析空间信息,将 ES 用于 GIS。 2. ES 简介 ---- Elasticsearch 是一个
山海散人
2021/03/03
1.2K0
071. ElasticSearch 应用场景及核心概念
记一次elasticsearch 跨机房迁移
调研了在线和离线迁移两种比较有代表性的方案,两种方案都进行了测试演练,不过最终选择了离线的方式,原因有几点:
用户3904122
2022/06/29
8840
记一次elasticsearch 跨机房迁移
ElasticSearch系列18:Mapping 设计指南
ElasticSearch 的 mapping 该如何设计,才能保证检索的高效?想要回答这个问题,就需要全面系统地掌握 mapping 各种参数的含义以及其适用的场景。(ps:本文基于ElasticSearch 7.7.1)
方才编程_公众号同名
2020/11/13
1.6K0
ElasticSearch系列18:Mapping 设计指南
相关推荐
ES日志报错赏析-Limit of total fields
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验