我有10GB的数据,需要加载到 flex 搜索索引中,并且已经将数据转换为JSON格式。
我的问题是,当我尝试使用CRUL命令将所有数据加载到 flex 搜索中时,抛出以下错误。
同时将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
最佳答案
http请求的大小限制为Integer.MAX_VALUE
或2^31-1
,基本上为 2GB 。
如果检查ES日志,将会看到类似HTTP content length exceeded 104857600 bytes
的内容,因此无法一次索引10GB数据,因此必须拆分文件。
请引用docs。另外this answer也会有很大帮助
关于elasticsearch - 大容量加载到Elasticsearch中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33896243/