CSV 导入 Neo4j 2.2.0-RC01 失败
Failure on CSV import into Neo4j 2.2.0-RC01
我在使用批量加载到 Neo4j 2.2.0-RC1 时遇到了一些奇怪的问题。我正在尝试导入 10 个不同的节点集(用于不同的标签)以及 12 个关系文件。数据集的大小各不相同——一些节点类型有大约 200-300k 条记录,一些很小(50-100 条记录)。对于大多数节点类型,我有一个带有 header 的单独文件和一个包含每个集合数据的单独文件(数据是从数据库生成的,我希望能够重新生成转储文件而不必担心准备:ID 列,描述数据类型等)
我多次 re-running 导入任务(使用选项 --processors 1 --stacktrace)并且我不断收到不同的错误(不是实际数据集中的单一更改)这让我觉得可能是 concurrency-related。有时导入只是挂起,并显示如下消息:
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.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.call(ExecutorServiceStep.java:96)
at org.neo4j.unsafe.impl.batchimport.staging.ExecutorServiceStep.call(ExecutorServiceStep.java:87)
at org.neo4j.unsafe.impl.batchimport.executor.DynamicTaskExecutor$Processor.run(DynamicTaskExecutor.java:217)
我设法 运行 成功了一次,这似乎又暗示了某种时间问题。
很遗憾,我无法提供数据集,因为它们包含机密数据。
最奇怪的是,如果我将负载分成 2 个不同的集合(数据集几乎是独立的子图,它们只有 2 个共同的关系)那么一切正常(因此不太可能与数据相关) ,但如果我将它们全部放入一个命令中,即使只加载节点也不起作用。并且因为无法强制加载到现有数据库中,所以分两步加载它很遗憾不是一种选择。
1) 这是一个已知问题吗?如果是,是否有任何我可以遵循的修复/问题的预计到达时间?
2) 如果不是,我可以做任何故障排除来查明问题吗?目标 DB 目录中的 messages.log 文件包含非常少的输出,如果我能获得更多关于问题所在的详细信息,那就太好了。
我发现了问题。感谢 reporting/asking。下一个版本将包含此修复程序。我看到了一组额外的导入工具集成测试。一旦它进入,我将提供 link 提交。
我在使用批量加载到 Neo4j 2.2.0-RC1 时遇到了一些奇怪的问题。我正在尝试导入 10 个不同的节点集(用于不同的标签)以及 12 个关系文件。数据集的大小各不相同——一些节点类型有大约 200-300k 条记录,一些很小(50-100 条记录)。对于大多数节点类型,我有一个带有 header 的单独文件和一个包含每个集合数据的单独文件(数据是从数据库生成的,我希望能够重新生成转储文件而不必担心准备:ID 列,描述数据类型等)
我多次 re-running 导入任务(使用选项 --processors 1 --stacktrace)并且我不断收到不同的错误(不是实际数据集中的单一更改)这让我觉得可能是 concurrency-related。有时导入只是挂起,并显示如下消息:
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.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.call(ExecutorServiceStep.java:96)
at org.neo4j.unsafe.impl.batchimport.staging.ExecutorServiceStep.call(ExecutorServiceStep.java:87)
at org.neo4j.unsafe.impl.batchimport.executor.DynamicTaskExecutor$Processor.run(DynamicTaskExecutor.java:217)
我设法 运行 成功了一次,这似乎又暗示了某种时间问题。
很遗憾,我无法提供数据集,因为它们包含机密数据。
最奇怪的是,如果我将负载分成 2 个不同的集合(数据集几乎是独立的子图,它们只有 2 个共同的关系)那么一切正常(因此不太可能与数据相关) ,但如果我将它们全部放入一个命令中,即使只加载节点也不起作用。并且因为无法强制加载到现有数据库中,所以分两步加载它很遗憾不是一种选择。
1) 这是一个已知问题吗?如果是,是否有任何我可以遵循的修复/问题的预计到达时间?
2) 如果不是,我可以做任何故障排除来查明问题吗?目标 DB 目录中的 messages.log 文件包含非常少的输出,如果我能获得更多关于问题所在的详细信息,那就太好了。
我发现了问题。感谢 reporting/asking。下一个版本将包含此修复程序。我看到了一组额外的导入工具集成测试。一旦它进入,我将提供 link 提交。