2017-10-20 84 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目前的工作。

我的胡亂猜測是有記憶的問題是在這裏工作