2017-10-20 69 views
0

我查询了我的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文件时没有得到任何响应?难道我做错了什么?有没有更好的方法来处理批量索引?

+0

(你可以通过内存使用,CPU,网络等检查),如果您尝试更小的文件如像1000行和相同的格式,你会得到一个响应或数据加载?你可以随时检查是否有通过'wireshark'转移的东西。 – tukan

+0

我最大的json工作是用500k行(250k文件)。当我去100万,我没有得到任何回应。 – bmakan

+0

那么为什么你不把文件分割成500k行左右的多个json文件呢?我疯狂的猜测是有内存问题。 – tukan

回答

0

基于评论我要创建一个“解决办法”:

拆分大文件到multiple json files各地500k lines目前的工作。

我的胡乱猜测是有记忆的问题是在这里工作