从远程服务器上传 800gb json 大文件到 elasticsearch
Uploading large 800gb json file from remote server to elasticsearch
我正在尝试将一个 800gb json 文件从远程服务器上传到我的本地服务器,但 elasticsearch 一直被杀死。
我正在使用此代码上传数据
curl -XPOST http://localhost:9200/carrier/data/ -d@carrier.json
这是因为 post 请求无法处理 800 GB 还是我在某处遗漏了配置。我还适当地映射了所有内容,因为较小的文件很容易上传。
elasticsearch为了索引一个文档,需要先在内存中分配这个文档,然后再以解析的形式缓存起来。因此,您通常会为正在索引的文档查看内存大小的两倍(它比这更复杂,但 2x 是一个很好的近似值)。所以,除非你的机器上有 1.6tb 的内存,否则我不应该尝试索引 800gb 的文档。如果你在这个json中有多个文档,你需要将它们分成块并使用多个Bulk Requests发送到elasticsearch。
我正在尝试将一个 800gb json 文件从远程服务器上传到我的本地服务器,但 elasticsearch 一直被杀死。 我正在使用此代码上传数据
curl -XPOST http://localhost:9200/carrier/data/ -d@carrier.json
这是因为 post 请求无法处理 800 GB 还是我在某处遗漏了配置。我还适当地映射了所有内容,因为较小的文件很容易上传。
elasticsearch为了索引一个文档,需要先在内存中分配这个文档,然后再以解析的形式缓存起来。因此,您通常会为正在索引的文档查看内存大小的两倍(它比这更复杂,但 2x 是一个很好的近似值)。所以,除非你的机器上有 1.6tb 的内存,否则我不应该尝试索引 800gb 的文档。如果你在这个json中有多个文档,你需要将它们分成块并使用多个Bulk Requests发送到elasticsearch。