User502
User502

Reputation: 15

neo4j - graphaware plugins

I downloaded the plugins of graphaware nlp,open-nlp,framework and copied the jar files to the plugins directory.

And as per the steps in neo4j , i included the following lines in neo4j.config file

dbms.unmanaged_extension_classes=com.graphaware.server=/graphaware
com.graphaware.runtime.enabled=true
com.graphaware.module.NLP.2=com.graphaware.nlp.module.NLPBootstrapper

After inserting this the localhost:7474 is not starting.

But when i comment these lines localhost starts and works properly but doesnt include the plugins.

Version : enterprise 3.1.3

Error in LocalLost after commenting those lines:

 Failed to invoke procedure `ga.nlp.annotate`: Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: No GraphAware Runtime is registered with the given database

Error in log file:

2017-11-07 10:41:03.839+0000 INFO  ======== Neo4j 3.1.3 ========
2017-11-07 10:41:04.120+0000 INFO  Starting...
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/share/neo4j/lib/slf4j-nop-1.7.22.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/var/lib/neo4j/plugins/nlp-opennlp-3.1.3.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]
2017-11-07 10:41:04.985+0000 INFO  Bolt enabled on localhost:7687.
2017-11-07 10:41:05.010+0000 INFO  Initiating metrics...
2017-11-07 10:41:07.374+0000 INFO  [c.g.r.b.RuntimeKernelExtension] GraphAware Runtime enabled, bootstrapping...
2017-11-07 10:41:07.444+0000 INFO  [c.g.r.b.RuntimeKernelExtension] Bootstrapping module with order 2, ID NLP, using com.graphaware.nlp.module.NLPBootstrapper
2017-11-07 10:41:07.523+0000 INFO  Registering module NLP with GraphAware Runtime.
2017-11-07 10:41:07.523+0000 INFO  [c.g.r.b.RuntimeKernelExtension] GraphAware Runtime bootstrapped, starting the Runtime...
2017-11-07 10:41:21.893+0000 INFO  Starting GraphAware...
2017-11-07 10:41:21.894+0000 INFO  Loading module metadata...
2017-11-07 10:41:21.894+0000 INFO  Loading metadata for module NLP
2017-11-07 10:41:21.946+0000 INFO  Module NLP seems to have been registered for the first time.
2017-11-07 10:41:21.947+0000 INFO  Module NLP seems to have been registered for the first time, will try to initialize...
2017-11-07 10:41:21.947+0000 INFO  InitializeUntil set to 9223372036854775807 and it is 1510051281947. Will initialize.
2017-11-07 10:41:24.709+0000 INFO  Started.
2017-11-07 10:41:24.811+0000 INFO  Mounted REST API at: /db/manage
2017-11-07 10:41:24.823+0000 INFO  [c.g.s.f.b.GraphAwareServerBootstrapper] started
2017-11-07 10:41:24.825+0000 INFO  Mounted unmanaged extension [com.graphaware.server] at [/graphaware]
Exception in thread "GraphAware Starter" java.lang.RuntimeException: Error while initializing model of class: class opennlp.tools.namefind.TokenNameFinderModel
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.loadModel(OpenNLPPipeline.java:503)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.lambda$loadNamedEntitiesFinders$2(OpenNLPPipeline.java:161)
    at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1691)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.loadNamedEntitiesFinders(OpenNLPPipeline.java:158)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.init(OpenNLPPipeline.java:118)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.<init>(OpenNLPPipeline.java:108)
    at com.graphaware.nlp.processor.opennlp.PipelineBuilder.build(PipelineBuilder.java:79)
    at com.graphaware.nlp.processor.opennlp.OpenNLPTextProcessor.createPhrasePipeline(OpenNLPTextProcessor.java:106)
    at com.graphaware.nlp.processor.opennlp.OpenNLPTextProcessor.init(OpenNLPTextProcessor.java:56)
    at com.graphaware.nlp.processor.TextProcessorsManager.lambda$initiateTextProcessors$0(TextProcessorsManager.java:61)
    at java.util.HashMap$Values.forEach(HashMap.java:980)
    at com.graphaware.nlp.processor.TextProcessorsManager.initiateTextProcessors(TextProcessorsManager.java:60)
    at com.graphaware.nlp.processor.TextProcessorsManager.<init>(TextProcessorsManager.java:37)
    at com.graphaware.nlp.NLPManager.init(NLPManager.java:95)
    at com.graphaware.nlp.module.NLPModule.initialize(NLPModule.java:52)
    at com.graphaware.runtime.manager.ProductionTxDrivenModuleManager.initialize(ProductionTxDrivenModuleManager.java:57)
    at com.graphaware.runtime.manager.BaseTxDrivenModuleManager.initializeIfAllowed(BaseTxDrivenModuleManager.java:128)
    at com.graphaware.runtime.manager.BaseTxDrivenModuleManager.handleNoMetadata(BaseTxDrivenModuleManager.java:72)
    at com.graphaware.runtime.manager.BaseTxDrivenModuleManager.handleNoMetadata(BaseTxDrivenModuleManager.java:39)
    at com.graphaware.runtime.manager.BaseModuleManager.loadMetadata(BaseModuleManager.java:143)
    at com.graphaware.runtime.manager.BaseModuleManager.loadMetadata(BaseModuleManager.java:125)
    at com.graphaware.runtime.TxDrivenRuntime.loadMetadata(TxDrivenRuntime.java:130)
    at com.graphaware.runtime.ProductionRuntime.loadMetadata(ProductionRuntime.java:80)
    at com.graphaware.runtime.BaseGraphAwareRuntime.startModules(BaseGraphAwareRuntime.java:154)
    at com.graphaware.runtime.TxDrivenRuntime.startModules(TxDrivenRuntime.java:146)
    at com.graphaware.runtime.ProductionRuntime.startModules(ProductionRuntime.java:70)
    at com.graphaware.runtime.BaseGraphAwareRuntime.start(BaseGraphAwareRuntime.java:134)
    at com.graphaware.runtime.bootstrap.RuntimeKernelExtension.lambda$start$8(RuntimeKernelExtension.java:117)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.loadModel(OpenNLPPipeline.java:499)
    ... 29 more
Caused by: java.lang.OutOfMemoryError: Java heap space
    at opennlp.tools.ml.model.AbstractModelReader.getParameters(AbstractModelReader.java:140)
    at opennlp.tools.ml.maxent.io.GISModelReader.constructModel(GISModelReader.java:78)
    at opennlp.tools.ml.model.GenericModelReader.constructModel(GenericModelReader.java:62)
    at opennlp.tools.ml.model.AbstractModelReader.getModel(AbstractModelReader.java:85)
    at opennlp.tools.util.model.GenericModelSerializer.create(GenericModelSerializer.java:32)
    at opennlp.tools.util.model.GenericModelSerializer.create(GenericModelSerializer.java:29)
    at opennlp.tools.util.model.BaseModel.finishLoadingArtifacts(BaseModel.java:309)
    at opennlp.tools.util.model.BaseModel.loadModel(BaseModel.java:239)
    at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:173)
    at opennlp.tools.namefind.TokenNameFinderModel.<init>(TokenNameFinderModel.java:103)
    at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.loadModel(OpenNLPPipeline.java:499)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.lambda$loadNamedEntitiesFinders$2(OpenNLPPipeline.java:161)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline$$Lambda$239/1188677545.accept(Unknown Source)
    at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1691)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.loadNamedEntitiesFinders(OpenNLPPipeline.java:158)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.init(OpenNLPPipeline.java:118)
    at com.graphaware.nlp.processor.opennlp.OpenNLPPipeline.<init>(OpenNLPPipeline.java:108)
    at com.graphaware.nlp.processor.opennlp.PipelineBuilder.build(PipelineBuilder.java:79)
    at com.graphaware.nlp.processor.opennlp.OpenNLPTextProcessor.createPhrasePipeline(OpenNLPTextProcessor.java:106)
    at com.graphaware.nlp.processor.opennlp.OpenNLPTextProcessor.init(OpenNLPTextProcessor.java:56)
    at com.graphaware.nlp.processor.TextProcessorsManager.lambda$initiateTextProcessors$0(TextProcessorsManager.java:61)
    at com.graphaware.nlp.processor.TextProcessorsManager$$Lambda$234/2094381213.accept(Unknown Source)
    at java.util.HashMap$Values.forEach(HashMap.java:980)
    at com.graphaware.nlp.processor.TextProcessorsManager.initiateTextProcessors(TextProcessorsManager.java:60)
    at com.graphaware.nlp.processor.TextProcessorsManager.<init>(TextProcessorsManager.java:37)
    at com.graphaware.nlp.NLPManager.init(NLPManager.java:95)
    at com.graphaware.nlp.module.NLPModule.initialize(NLPModule.java:52)
    at com.graphaware.runtime.manager.ProductionTxDrivenModuleManager.initialize(ProductionTxDrivenModuleManager.java:57)

please help me out

Upvotes: 0

Views: 315

Answers (1)

Christophe Willemsen
Christophe Willemsen

Reputation: 20185

You do not have sufficient memory for the NLP plugins to load, hence the NLP module is not registered and thus not available once that database has started.

As stated in the NLP plugin README, you need at least 4GB of heap for the modules to run, adapt it in your neo4j.conf and restart.

Upvotes: 0

Related Questions