批量加载在Elasticsearch中插入大容量

时间:2015-11-24 14:29:41

标签: elasticsearch

我有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

1 个答案:

答案 0 :(得分:2)

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

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

请参阅docs。另外this answer会有很多帮助