java – 数据导入期间超出了Fuseki GC开销限制
作者:互联网
我正在尝试在启动时将LinkedMDB(6.1m三倍)导入我的本地版本的jena-fuseki:
/path/to/fuseki-server --file=/path/to/linkedmdb.nt /ds
并运行一分钟,然后死于以下错误:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.hp.hpl.jena.graph.Node$3.construct(Node.java:318)
at com.hp.hpl.jena.graph.Node.create(Node.java:344)
at com.hp.hpl.jena.graph.NodeFactory.createURI(NodeFactory.java:48)
at org.apache.jena.riot.system.RiotLib.createIRIorBNode(RiotLib.java:80)
at org.apache.jena.riot.system.ParserProfileBase.createURI(ParserProfileBase.java:107)
at org.apache.jena.riot.system.ParserProfileBase.create(ParserProfileBase.java:156)
at org.apache.jena.riot.lang.LangNTriples.tokenAsNode(LangNTriples.java:97)
at org.apache.jena.riot.lang.LangNTriples.parseOne(LangNTriples.java:90)
at org.apache.jena.riot.lang.LangNTriples.runParser(LangNTriples.java:54)
at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTFactoryImpl$1.read(RDFParserRegistry.java:142)
at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:818)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:679)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:211)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:104)
at org.apache.jena.fuseki.FusekiCmd.processModulesAndArgs(FusekiCmd.java:251)
at arq.cmdline.CmdArgModule.process(CmdArgModule.java:51)
at arq.cmdline.CmdMain.mainMethod(CmdMain.java:100)
at arq.cmdline.CmdMain.mainRun(CmdMain.java:63)
at arq.cmdline.CmdMain.mainRun(CmdMain.java:50)
at org.apache.jena.fuseki.FusekiCmd.main(FusekiCmd.java:141)
有没有办法可以提高内存限制或以较少的密集方式导入数据?
为了比较,当我使用一百万个三重源文件时,它会在不到10秒的时间内导入.
解决方法:
增加堆内存,java -Xmx2048M -jar fuseki-sys.jar ……
使用编辑器打开fuseki-server,你会发现JVM_ARGS = ${JVM_ARGS: – Xmx1200M}将其修改为JVM_ARGS = ${JVM_ARGS: – Xmx2048M}
标签:java,rdf,sparql,jena,fuseki 来源: https://codeday.me/bug/20190612/1226582.html