2014-06-10 56 views
2

我正在研究一種被neotechnologies稱爲「neo4j」的圖形數據庫工具。在這裏,我想從Excel導入數據到數據庫中。批量導入時的配置錯誤NEO4J

爲了做到這一點,我使用的是batch importer

在這裏,我已經編輯我的Neo4j服務器屬性,我已經產生了relations.csvnodes.csv將被導入到數據庫中。

現在,當我嘗試運行import.sh文件按在自述文件中的說明,我總是得到以下錯誤:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x000000074af50000, 2863333376, 0) failed; error='Cannot allocate memory' (errno=12)

There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (malloc) failed to allocate 2863333376 bytes for committing reserved memory. An error report file with more information is saved as:
/"path"/hs_err_pid16993.log

沒有batch.properties文件在此包,所以我創建了一個爲自己和添加的代碼,以增加緩存大小(內存大小):

use_memory_mapped_buffers=true 
neostore.nodestore.db.mapped_memory=100M 
neostore.relationshipstore.db.mapped_memory=500M 
neostore.propertystore.db.mapped_memory=1G 
neostore.propertystore.db.strings.mapped_memory=200M 
neostore.propertystore.db.arrays.mapped_memory=0M 
neostore.propertystore.db.index.keys.mapped_memory=15M 
neostore.propertystore.db.index.mapped_memory=15M 
batch_import.node_index.users=exact 

任何建議將是一個很大的幫助。

OS版本:Ubuntu的LTS 14.04 Neo4j的版本:2.02

+0

您使用的是哪種Neo4j版本?具體來說,版本和操作系統。 –

+0

你的機器有多少內存? –

+0

檢查默認爲4G堆的import.sh,但您的JVM無法分配2.3G堆。 –

回答

1

修改爲您batch.properties

cache_type=none 

而且選擇JVM參數-Xmx一個適當的值。例如。如果機器中有8 GB,並且batch.properties中的MMIO配置爲〜2G,則可以將Xmx設置爲例如4G作爲起點。

1

'無法分配內存'表示Java虛擬機無法分配啓動它的內存。你的機器有多少內存?在文本編輯器中打開import.sh文件,並將-Xms和-Xmx參數設置爲適當的值。 (在一臺8GB的機器上,我會使用「-Xms6G」和「-Xmx6G」)