【问题标题】:Bulk load Insert in Elasticsearch with large volume大容量的 Elasticsearch 中的批量加载插入
【发布时间】:2026-02-15 21:45:01
【问题描述】:

我有 10GB 数据,需要加载到弹性搜索索引中,并且我已将数据转换为 JSON 格式。 我的问题是,当我尝试使用 CRUL 命令将所有数据加载到弹性搜索中时,它会抛出错误。 同时,当我将 JSON 文件拆分为多个 1GB 文件时,它工作正常。 我们是否需要遵循任何方法将大型文件加载到 elasticsearch 或任何预定义的工具可用?请在这里指教!

完整文件(10GB)

curl -XPOST 'http://servername:9200/xyz/tmp/_bulk?pretty' --data-binary @/home/xyz/test.json

错误

curl: (56) Failure when receiving data from the peer

拆分文件(成功命令)

curl -XPOST 'http://servername:9200/xyz/tmp/_bulk?pretty' --data-binary @/home/xyz/test_split1.json
curl -XPOST 'http://servername:9200/xyz/tmp/_bulk?pretty' --data-binary @/home/xyz/test_split2.json

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    http 请求大小限制为Integer.MAX_VALUE2^31-1,基本上是2GB

    如果您检查 ES 日志,您会看到类似 HTTP content length exceeded 104857600 bytes 的内容,因此您不能一次索引 10GB 数据,您必须拆分文件。

    请参考docsthis answer 也会有很大帮助

    【讨论】: