neo4j 全量数据导入OOM问题解决

在neo4j中有一个专门针对导入的命令neo4j-import(后期可能会删除,但是本文使用的neo4j版本较低,社区版3.4.5)

可以用neo4j-admin命令代替:neo4j-admin import

于是,当全量导入数据时,尤其是数据中存在着大量的无法关联的节点和无效的关系时,会导致jvm占用激增,然后导入速度变缓慢,jvm在持续的做full GC,一段时间后(可能比较长),就会报OOM错误

./neo4j-admin import \

--nodes:xx ../import/xx_header.csv,../import/xx.csv \

--relationships:yy  ../import/yy_header.csv,../import/yy.csv \

.....

--high-io \

 --ignore-missing-nodes=true \

--ignore-extra-columns=true \

即时添加参数max-memory也无法解决jvm的OOM

--high-io \

--max-memory=20G \

--ignore-missing-nodes=true \

只有设置jvm的大小,才能避免OOM

默认的jvm大小是6G多(不知道是不是我们服务器的问题,又或者是默认的)

设置jvm的堆大小,可通过变量JAVA_OPTS设定,才能真正的调整jvm的堆大小,避免OOM

#!/bin/bash 

export JAVA_OPTS='-server -Xms8g -Xmx15g'  

sh /home/neo4j/neo4j/bin/neo4j-admin import \

--nodes:xx ../import/xx_header.csv,../import/xx.csv \ 

--relationships:yy  ../import/yy_header.csv,../import/yy.csv \

.....

--high-io \

--max-memory=30G \

--ignore-missing-nodes=true \           

--ignore-extra-columns=true \ 

你可能感兴趣的:(neo4j 全量数据导入OOM问题解决)