我尝试使用导入工具将~52GB的节点文件导入到neo4j中,我已经运行了两次并尝试使用" uniq&#34删除文件中的重复项; Linux命令在文件上。
我在专用服务器上运行neo4j
我的配置文件设置:
- dbms.memory.heap.initial_size = 10G
- dbms.memory.heap.max_size = 20G
- dbms.memory.pagecache.size = 20G
使用中的导入命令:
neo4j-admin import --database instaGraphPostPurge.db --nodes:User" /home/headers/graph_header.csv,/home/instanet/postpurge/postUniqNodes.net" - 关系:关注" /home/headers/graph_relate_following.csv,/home/instanet/postpurge/following/graph1.net,/home/instanet/postpurge/following/graph2.net,/home/instanet/postpurge /following/graph3.net,/home/instanet/postpurge/following/graph4.net,/home/instanet/postpurge/following/graph5.net" - 关系:关注" /home/headers/graph_relate_followedBY.csv,/home/instanet/postpurge/followedBy/graph1.net,/home/instanet/postpurge/followedBy/graph2.net,/home/instanet/postpurge /followedBy/graph3.net,/home/instanet/postpurge/followedBy/graph4.net,/home/instanet/postpurge/followedBy/graph5.net" --delimiter TAB --ignore-duplicate-nodes
节点导入和排序似乎完成然后我得到错误
" java.lang.RuntimeException:org.neo4j.unsafe.impl.batchimport.input.InputException:太多碰撞:2320721971"
我不太清楚问题是什么,我已经在我的节点文件中搜索了该ID,但似乎无法找到它。
我在导入后包含了输出。
感谢任何帮助,提前致谢。
在15小时10分10秒79分内完成进口。 数据统计不可用。 峰值内存使用量:18.65 GB
******** DETAILS 2018-06-15 05:17:41.913+0000 ********
Nodes
[*Nodes---------------------------------------------------------------------------------------]2.36B
Memory usage: 18.65 GB
I/O throughput: 79.33 MB/s
VM stop-the-world time: 631ms
Duration: 47m 48s 468ms
Done batches: 236827
Prepare node index
[*DETECT--------------------------------------------------------------------------------------]6.96B
Memory usage: 29.67 GB
Duration: 14h 22m 16s 475ms
Done batches: 696830
Environment information:
Free physical memory: 3.32 GB
Max VM memory: 13.99 GB
Free VM memory: 285.40 MB
VM stop-the-world time: 631ms
Duration: 15h 10m 4s 943ms
java.lang.RuntimeException:org.neo4j.unsafe.impl.batchimport.input.InputException:太多碰撞:2320721971 at org.neo4j.unsafe.impl.batchimport.staging.AbstractStep.issuePanic(AbstractStep.java:150) at org.neo4j.unsafe.impl.batchimport.staging.AbstractStep.issuePanic(AbstractStep.java:142) 在org.neo4j.unsafe.impl.batchimport.staging.LonelyProcessingStep.lambda $收到$ 0(LonelyProcessingStep.java:58) 在java.lang.Thread.run(Thread.java:748) 引起:org.neo4j.unsafe.impl.batchimport.input.InputException:太多碰撞:2320721971 at org.neo4j.unsafe.impl.batchimport.cache.idmapping.string.EncodingIdMapper.detectAndMarkCollisions(EncodingIdMapper.java:451) at org.neo4j.unsafe.impl.batchimport.cache.idmapping.string.EncodingIdMapper.prepare(EncodingIdMapper.java:234) at org.neo4j.unsafe.impl.batchimport.IdMapperPreparationStep.process(IdMapperPreparationStep.java:56) 在org.neo4j.unsafe.impl.batchimport.staging.LonelyProcessingStep.lambda $收到$ 0(LonelyProcessingStep.java:53) ......还有1个 输入数据错误 引起:碰撞太多:2320721971
警告导入失败。 /home/databases/instaGraphPostPurge.db中的商店文件保持不变,尽管它们可能处于不可用状态。在这些商店文件上启动数据库可能会失败或观察到不一致的记录,因此请自行承担风险或手动删除商店 org.neo4j.unsafe.impl.batchimport.input.InputException:太多碰撞:2320721971 at org.neo4j.unsafe.impl.batchimport.cache.idmapping.string.EncodingIdMapper.detectAndMarkCollisions(EncodingIdMapper.java:451) at org.neo4j.unsafe.impl.batchimport.cache.idmapping.string.EncodingIdMapper.prepare(EncodingIdMapper.java:234) at org.neo4j.unsafe.impl.batchimport.IdMapperPreparationStep.process(IdMapperPreparationStep.java:56) 在org.neo4j.unsafe.impl.batchimport.staging.LonelyProcessingStep.lambda $收到$ 0(LonelyProcessingStep.java:53) 在java.lang.Thread.run(Thread.java:748) 意外错误:碰撞太多:2320721971
答案 0 :(得分:0)
Too many collisions: 2320721971
告诉您冲突次数为2320721971
,对于导入者而言,这太多了。现在,在3.4中确实不再适用,因为在碰撞管理方面进行了改进,因此限制已经消失,但是导入器仍然出于某种原因进行了此检查。
现在,这可能是固定的,但是> 23亿次碰撞是很多碰撞,并且指向一些非常脏的或未完全清除的输入数据。删除此检查将使其起作用,但是用于存储这些冲突的内存量也可能会不堪重负,因此无论如何尝试分配该内存时,导入仍可能会失败。
您最好的办法是以某种方式减少输入中重复节点ID的数量。