【问题标题】:Failure on CSV import into Neo4j 2.2.0-RC01CSV 导入 Neo4j 2.2.0-RC01 失败
【发布时间】:2015-03-19 20:03:22
【问题描述】:

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

我多次重新运行导入任务(使用选项 --processors 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) 这是一个已知问题吗?如果是,是否有任何关于我可以遵循的修复/问题的预计到达时间?

2) 如果没有,是否有任何故障排除我可以解决问题?目标数据库目录中的messages.log 文件包含非常少的输出,如果我能获得有关问题所在的更多详细信息,那就太好了。

【问题讨论】:

    标签: neo4j


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多