neo4j / py2neo:事务错误 - 文件太大

时间:2015-01-04 03:47:26

标签: neo4j py2neo

我正在尝试使用py2neo插入/更新图形db(~500K节点和关系)。在此过程的某个地方,交易失败了。 neo4j坠毁了。根据日志文件 - 根本原因报告为

"引起:java.io.IOException:文件太大"

  1. 重新启动neo4j服务器不起作用。

    "无法在120秒内启动"

    console.log>> 2015-01-04 03:29:40.061 + 0000 INFO [API]将启动超时设置为:120000ms,基于-1 检测到错误地关闭了数据库,执行恢复..

  2. 试图关闭服务器 - 执行干净的退出。得到以下错误。

    "引起:java.io.IOException:文件太大"

    ./ neo4j-shell -path ../data/graph.db -c quit -v

  3. ERROR (-v for expanded information):  Error starting org.neo4j.kernel.EmbeddedGraphDatabase,
    
         

    /media/shard02/neo4j-2.1.6/bin /../数据/ graph.db   java.lang.RuntimeException:启动时出错   org.neo4j.kernel.EmbeddedGraphDatabase,   /media/shard02/neo4j-2.1.6/bin/../data/graph.db at   org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:366)     在   org.neo4j.kernel.EmbeddedGraphDatabase。(EmbeddedGraphDatabase.java:59)     在   org.neo4j.graphdb.factory.GraphDatabaseFactory $ 1.newDatabase(GraphDatabaseFactory.java:91)     在   org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:181)     在   org.neo4j.shell.kernel.GraphDatabaseShellServer.instantiateGraphDb(GraphDatabaseShellServer.java:167)     在   org.neo4j.shell.kernel.GraphDatabaseShellServer。(GraphDatabaseShellServer.java:63)     在   org.neo4j.shell.StartClient.tryStartLocalServerAndClient(StartClient.java:239)     在org.neo4j.shell.StartClient.startLocal(StartClient.java:226)at   org.neo4j.shell.StartClient.start(StartClient.java:158)at   org.neo4j.shell.StartClient.main(StartClient.java:120)引起:   org.neo4j.kernel.lifecycle.LifecycleException:Component   ' org.neo4j.kernel.impl.transaction.XaDataSourceManager@66c9c89f'是   已成功初始化,但未能启动。请参照附件   引起异常。在   org.neo4j.kernel.lifecycle.LifeSupport $ LifecycleInstance.start(LifeSupport.java:513)     在org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115)     在   org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:343)     ... 9更多引起:org.neo4j.kernel.lifecycle.LifecycleException:   零件   ' org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@1bf0eebd'是   已成功初始化,但未能启动。请参照附件   引起异常。在   org.neo4j.kernel.lifecycle.LifeSupport $ LifecycleInstance.start(LifeSupport.java:513)     在org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115)     在   org.neo4j.kernel.impl.transaction.XaDataSourceManager.start(XaDataSourceManager.java:164)     在   org.neo4j.kernel.lifecycle.LifeSupport $ LifecycleInstance.start(LifeSupport.java:507)     ... 11更多引起:   org.neo4j.kernel.impl.nioneo.store.UnderlyingStorageException:Unable   写记录[1248649] @ [42454066] at   org.neo4j.kernel.impl.nioneo.store.PersistenceRow.writeContents(PersistenceRow.java:198)     在   org.neo4j.kernel.impl.nioneo.store.PersistenceRow.force(PersistenceRow.java:214)     在   org.neo4j.kernel.impl.nioneo.store.LockableWindow.writeOutAndClose(LockableWindow.java:60)     在   org.neo4j.kernel.impl.nioneo.store.LockableWindow.writeOutAndCloseIfFree(LockableWindow.java:162)     在   org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.release(PersistenceWindowPool.java:241)     在   org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.releaseWindow(CommonAbstractStore.java:557)     在   org.neo4j.kernel.impl.nioneo.store.RelationshipStore.updateRecord(RelationshipStore.java:169)     在   org.neo4j.kernel.impl.nioneo.xa.command.NeoXaCommandExecutor $ NeoCommandExecutor.visitRelationshipCommand(NeoXaCommandExecutor.java:99)     在   org.neo4j.kernel.impl.nioneo.xa.command.Command $ RelationshipCommand.accept(Command.java:202)     在   org.neo4j.kernel.impl.nioneo.xa.command.NeoXaCommandExecutor.execute(NeoXaCommandExecutor.java:55)     在   org.neo4j.kernel.impl.nioneo.xa.NeoStoreTransaction.executeModified(NeoStoreTransaction.java:916)     在   org.neo4j.kernel.impl.nioneo.xa.NeoStoreTransaction.applyCommit(NeoStoreTransaction.java:683)     在   org.neo4j.kernel.impl.nioneo.xa.NeoStoreTransaction.doCommit(NeoStoreTransaction.java:604)     在   org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.commit(XaTransaction.java:327)     在   org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.injectOnePhaseCommit(XaResourceManager.java:460)     在   org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog $ LogApplier.onePhaseCommitEntry(XaLogicalLog.java:1580)     在   org.neo4j.kernel.impl.nioneo.xa.command.LogHandler $ Filter.onePhaseCommitEntry(LogHandler.java:74)     在   org.neo4j.kernel.impl.transaction.xaframework.EntryCountingLogHandler.onePhaseCommitEntry(EntryCountingLogHandler.java:59)     在   org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog $ RecoveryConsumer.accept(XaLogicalLog.java:1798)     在   org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog $ RecoveryConsumer.accept(XaLogicalLog.java:1774)     在   org.neo4j.kernel.impl.nioneo.xa.RecoveryLogDeserializer $ RecoveryCursor.next(RecoveryLogDeserializer.java:72)     在   org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.doInternalRecovery(XaLogicalLog.java:722)     在   org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.open(XaLogicalLog.java:284)     在   org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.open(XaLogicalLog.java:239)         在org.neo4j.kernel.impl.transaction.xaframework.XaContainer.openLogicalLog(XaContainer.java:64)         在org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.start(NeoStoreXaDataSource.java:426)         在org.neo4j.kernel.lifecycle.LifeSupport $ LifecycleInstance.start(LifeSupport.java:507)          ......还有14个       引起:java.io.IOException:文件太大         at sun.nio.ch.FileDispatcherImpl.pwrite0(Native Method)         at sun.nio.ch.FileDispatcherImpl.pwrite(FileDispatcherImpl.java:66)         在sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89)         at sun.nio.ch.IOUtil.write(IOUtil.java:65)         at sun.nio.ch.FileChannelImpl.writeInternal(FileChannelImpl.java:739)         at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:724)         在org.neo4j.kernel.impl.nioneo.store.StoreFileChannel.write(StoreFileChannel.java:51)         在org.neo4j.kernel.impl.nioneo.store.PersistenceRow.writeContents(PersistenceRow.java:186)         ......还有40多个

    1. 增加堆大小(8GB CentOS 6.0盒子上的2GB)没有帮助。还尝试在neo4j-wrapper.conf中提升值。服务器无法启动..
    2. 我几乎陷入困境,如果可以提出任何指示,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我服务器上用户的文件大小太小了。 查看下面的链接并尝试为您的服务器执行此操作,密钥位于limits.conf

http://www.cyberciti.biz/faq/file-size-limit-exceeded-error-under-linux-and-solution/