CSV导入Neo4j 2.2.0-RC01失败

时间:2015-03-19 20:03:23

标签: neo4j

在将批量加载到Neo4j 2.2.0-RC1中时,我遇到了一些奇怪的问题。我正在尝试导入10个不同的节点集(用于不同的标签)以及12个关系文件。数据集大小不同 - 某些节点类型有大约200-300k记录,有些小(50-100条记录)。对于大多数节点类型,我有一个单独的文件,带有标题和单独的文件,每个集合都有数据(数据是从数据库生成的,我希望能够重新生成转储文件,而不必担心准备:ID列,描述数据类型等。)

我多次重新运行导入任务(使用选项 - 处理器1 --stacktrace)并且我不断得到不同的错误(实际数据集中没有一次更改)这让我觉得它可能是某种东西并发相关。有时导入只会挂起这样的消息:

Nodes
[>:36.75 MB/s------------------------|*PROPERTIES-----------------------------------------|NOD|]   0

在大多数情况下,它会因为下面的错误而崩溃,除了它管理导入的节点数量不同于运行运行。

[>:27.23 MB/s-------------|*PROPERTIES--------------------------|NO|v:19.62 MB/s---------------]100kImport error: Panic called, so exiting
java.lang.RuntimeException: Panic called, so exiting
        at org.neo4j.unsafe.impl.batchimport.staging.StageExecution.stillExecuting(StageExecution.java:63)
        at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisor.anyStillExecuting(ExecutionSupervisor.java:79)
        at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisor.finishAwareSleep(ExecutionSupervisor.java:102)
        at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisor.supervise(ExecutionSupervisor.java:64)
        at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisors.superviseDynamicExecution(ExecutionSupervisors.java:65)
        at org.neo4j.unsafe.impl.batchimport.ParallelBatchImporter.executeStages(ParallelBatchImporter.java:226)
        at org.neo4j.unsafe.impl.batchimport.ParallelBatchImporter.doImport(ParallelBatchImporter.java:151)
        at org.neo4j.tooling.ImportTool.main(ImportTool.java:263)
Caused by: java.lang.RuntimeException: Panic called, so exiting
        at org.neo4j.unsafe.impl.batchimport.staging.AbstractStep.assertHealthy(AbstractStep.java:189)
        at org.neo4j.unsafe.impl.batchimport.staging.ProducerStep.process(ProducerStep.java:77)
        at org.neo4j.unsafe.impl.batchimport.staging.ProducerStep$1.run(ProducerStep.java:54)
Caused by: java.lang.IllegalStateException: Nodes for any specific group must be added in sequence before adding nodes for any other group
        at org.neo4j.unsafe.impl.batchimport.cache.idmapping.string.EncodingIdMapper.put(EncodingIdMapper.java:137)
        at org.neo4j.unsafe.impl.batchimport.NodeEncoderStep.process(NodeEncoderStep.java:76)
        at org.neo4j.unsafe.impl.batchimport.NodeEncoderStep.process(NodeEncoderStep.java:41)
        at org.neo4j.unsafe.impl.batchimport.staging.ExecutorServiceStep$2.call(ExecutorServiceStep.java:96)
        at org.neo4j.unsafe.impl.batchimport.staging.ExecutorServiceStep$2.call(ExecutorServiceStep.java:87)
        at org.neo4j.unsafe.impl.batchimport.executor.DynamicTaskExecutor$Processor.run(DynamicTaskExecutor.java:217)

我设法成功运行了一次,这似乎意味着某种计时问题正在发挥作用。

不幸的是,我无法提供数据集,因为它们包含机密数据。

最奇怪的是,如果我将负载分成2个不同的集合(数据集几乎是单独的子图,它们只有2个共同关系)那么一切正常(因此不太可能与数据相关),但是如果我将它们全部放入一个命令中,即使只加载节点也不起作用。而且因为无法强制加载到现有数据库中,所以不能选择以两个步骤加载它。

1)这是一个已知问题,如果是,我可以遵循修正/问题的任何ETA吗?

2)如果没有,是否有任何疑难解答我可以做到底部?目标数据库目录中的messages.log文件包含非常少的输出,如果我能得到更多关于出错的详细信息,那就太好了。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。感谢您的报告/询问。下一个版本将包含此修复程序。我看到了导入工具的另一组集成测试。我提供了一旦进入就提交的链接。