Neo4j导入工具太多了coll

时间:2018-06-15 13:44:44

标签: java database import neo4j cypher

我尝试使用导入工具将~52GB的节点文件导入到neo4j中,我已经运行了两次并尝试使用" uniq&#34删除文件中的重复项; Linux命令在文件上。

我在专用服务器上运行neo4j

  • Ubuntu Server 16.04" Xenial Xerus" LTS
  • RAM:64GB
  • 硬盘:SoftRAID 3x2 TB服务器
  • 处理器:Intel Xeon E5-1620四核(4核)3.60 千兆赫
  

我的配置文件设置:

     
      
  • 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

1 个答案:

答案 0 :(得分:0)

Too many collisions: 2320721971告诉您冲突次数为2320721971,对于导入者而言,这太多了。现在,在3.4中确实不再适用,因为在碰撞管理方面进行了改进,因此限制已经消失,但是导入器仍然出于某种原因进行了此检查。

现在,这可能是固定的,但是> 23亿次碰撞是很多碰撞,并且指向一些非常脏的或未完全清除的输入数据。删除此检查将使其起作用,但是用于存储这些冲突的内存量也可能会不堪重负,因此无论如何尝试分配该内存时,导入仍可能会失败。

您最好的办法是以某种方式减少输入中重复节点ID的数量。