将大JSON导入ElasticSearch没有回应
我查询了我的MariaDB并将所有数据解析为根据Elasticsearch散列API here的文档格式化的JSON文件。将大JSON导入ElasticSearch没有回应
的Json样品:
{ “索引”:{ “_index”: “测试”, “_type”: “测试型”, “_id”: “5”}
{“测试用例“:”testcase_value“,”load“:”load_value“,”detcause“:”DETAILED_CAUSE_UNKNOWN“,”time“:”2017-09-28T08:07:03“,”br_proc“:”ProcDetCause“,”proc_message“: “MME_CB_DEF”,“cause”:null,“count”:3}
{“index”:{“_index”:“test”,“_type”:“test-type”,“_id”:“17”}}
{“testcase”:“testcase_value”,“load”:“load_value”,“detcause”:“DETAILED_CAUSE_UNKNOWN”,“time”:“2017-09-28T08:07:03”,“br_proc”:“BrDetCause” ,“proc_message”:“MME_CB _DEF“,”cause“:null,”count“:2}
{”index“:{”_index“:”test“,”_type“:”test-type“,”_id“:”20“}
{“testcase”:“testcase_value”,“load”:“load_value”,“detcause”:null,“time”:“2017-09-28T08:07:03”,“br_proc”:“BrCause”,“proc_message “:”MME_CB_DEF“,”cause“:”CAUSE_UNKNOWN“,”count“:2}
{”index“:{”_index“:”test“,”_type“:”test-type“,”_id“: “23”}
{“testcase”:“testcase_value”,“load”:“load_value”,“detcause”:null,“time”:“2017-09-28T08:07:03”,“br_proc”:“ ProcCause“,”proc_message“:”MME_CB_DEF“,”cause“:”CAUSE_UNKNOWN“,”count“:1}
{”index“:{”_index“:”test“,”_type“:”test-type“ ,“_id”:“39”}
{“testcase”:“testcase “值”,“负载”:“load_value”,“detcause”:null,“time”:“2017-09-28T08:07:03”,“br_proc”:“ProcCause”,“proc_message”:“MME_CB_DEF”原因“: ”CAUSE_UNKNOWN“, ”伯爵“:2}
...
当我运行: curl -s -H "Content-Type: application/x-ndjson" -XPOST 'localhost:9200/_bulk' --data-binary @data.json
我没有得到任何回应的。我试图采取一些数据的子集(即100,1000行)和那些工作(我甚至接收JSON响应)。但是一旦我超过一百万,它就没有回应。目前,Elasticsearch数据库中只有500个条目。
我也检查了elasticsearch日志,它们是空的。
该文件有2000万行和大约2.7 GB。
为什么我在发布较大的JSON文件时没有得到任何响应?难道我做错了什么?有没有更好的方法来处理批量索引?
基于评论我要创建一个“解决办法”:
拆分大文件到multiple json files
各地500k lines
目前的工作。
我的胡乱猜测是有记忆的问题是在这里工作
(你可以通过内存使用,CPU,网络等检查),如果您尝试更小的文件如像1000行和相同的格式,你会得到一个响应或数据加载?你可以随时检查是否有通过'wireshark'转移的东西。 – tukan
我最大的json工作是用500k行(250k文件)。当我去100万,我没有得到任何回应。 – bmakan
那么为什么你不把文件分割成500k行左右的多个json文件呢?我疯狂的猜测是有内存问题。 – tukan