Installation instructions question

in the Siren for Neo4J installation instruction

Step 9: Open the config.json file and set the connection properties for Neo4J and Siren.
Note: Currently, the Neo4J connection data needs to be entered twice; once here for the script and once for the Siren datasource configuration. Siren Platform version 10.3 will include a configuration wizard to remove the need for external command line operation

There are 3 different config.json files in Siren. Which one do you mean?

Thanks

Hello julia,
Welcome to the community! The Neo4j script acts as an individual entity, separate from Federate/Elasticsearch or Investigate. The config.json is the on present in the script folder: Neo4j Script for Windows (Updated the blog with a windows build of the script).
Here, you configure:

    "neo4jConnection" : "bolt://localhost", //Bolt connection string to Neo4j
    "neo4jUsername" : "neo4j",
    "neo4jPassword" : "NEW PASSWORD",

    "sirenDataSource": "neo", //The datasource you registered in Management -> Datasources in Investigate

// These are default URLs and would work if you changed nothing and the script is running on the same host as Siren Platform
    "sirenHost" : "http://localhost:5606/",
    "elasticHost" : "http://localhost:9220/",
    "gremlinHost" : "http://localhost:8061/"

This should get you sorted.

Regards,
Varun

Hi Varun, I too am stuck on step #9 of the instructions set forth here: https://siren.io/browsing-neo4j-data-with-siren-10-2/

Where is this config.json on a linux install? Its very unclear.

Hello ssealock,

For Linux also, it’s the same. You need to download the NeoNode Package (Linux) and you’ll find config.json inside of it. Rest of the instructions are the same.

Regards,
Varun

OK i think i found it. It was inside of the downloaded neoNode directory?
If thats the case, this is what I see…

RE: Bolt… shouldn’t that have a port e.g . bolt://mygraph.com:7687 . <- is this what would be expected?

And everything else stays localhost correct?

{
“neo4jConnection” : “bolt://localhost”,
“neo4jUsername” : “neo4j”,
“neo4jPassword” : “NEW PASSWORD”,

"sirenDataSource": "neo",

"sirenHost" : "http://localhost:5606/",
"elasticHost" : "http://localhost:9220/",
"gremlinHost" : "http://localhost:8061/"

}

If the script is running on the same host as Elasticsearch and Investigate then yes, localhost is fine and the ports are default ports used by our distributions.
If the port is default (7687) on Neo4j then bolt://mygraph.com is equivalent to bolt://mygraph.com:7687.

Thank you so much! Im sorry to ask about another issue…
So i modified the config and ran node app.js. I get a success message and then head over to Siren to the reflections link to check running jobs and it’s empty.

  1. In Siren Investigate, go to the >Data Reflections app and click >Datasource reflection jobs to view all created ingestion jobs (this list will be empty if none are set up).

What does this mean “the list will be empty if none are set up”? does this mean I need to do something else to activate these jobs or there is a failure somewhere?

Regards,
Sue

Ok well, I guess I wasn’t patient enough but something did kick-off and now I get a heap error…

we set this up on a r5a.2xlarge instance

Reran it again to see if I get the same errors and indeed I do. Is there anything I need to modify in configs to not cause it to get this heap error?

<— Last few GCs —>

[18797:0x45d08d0] 683380 ms: Scavenge 1396.5 (1423.7) -> 1396.0 (1424.7) MB, 3.8 / 0.0 ms (average mu = 0.133, current mu = 0.025) allocation failure
[18797:0x45d08d0] 683878 ms: Mark-sweep 1396.8 (1424.7) -> 1396.2 (1424.2) MB, 497.0 / 0.0 ms (average mu = 0.077, current mu = 0.014) allocation failure scavenge might not succeed
[18797:0x45d08d0] 683883 ms: Scavenge 1397.0 (1424.2) -> 1396.5 (1424.7) MB, 3.3 / 0.0 ms (average mu = 0.077, current mu = 0.014) allocation failure

<— JS stacktrace —>

==== JS stack trace =========================================

0: ExitFrame [pc: 0x37e16475be1d]

Security context: 0x20b41721e6e9
1: push [0x20b417205859](this=0x052386abe491 <JSArray[0]>,0x052386abe4d9 <JSArray[1]>)
2: _unpackUnknownStruct [0x21ac48549ce1] [/data/tmp/neoNode/node_modules/neo4j-driver/lib/v1/internal/packstream-v1.js:751] [bytecode=0x39c42626ef41 offset=59](this=0x0ac3deab0049 ,signature=113,structSize=1,buffer=0x052386abe441 <Nod…

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x8f9d10 node::Abort() [node]
2: 0x8f9d5c [node]
3: 0xaffd0e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
4: 0xafff44 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
5: 0xef4152 [node]
6: 0xef4258 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [node]
7: 0xf00332 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node]
8: 0xf00c64 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
9: 0xf038d1 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [node]
10: 0xeccd54 v8::internal::factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [node]
11: 0x116cede v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [node]
12: 0x37e16475be1d
Aborted (core dumped)

Hello ssealock,

So, I’ve patched a few things in the script. Could you replace your app.js inside NeoNode with this: https://drive.google.com/file/d/1XTotQX8ZvwsLu9NfI1xvO1BpC627Y6C4/view?usp=sharing
and let me know how it goes.

Regards,
Varun

Ok will do and get back to you on this. thank you!

1 Like

Curious… for the createRelationshipCyphers() is there any console feedback that at least shows some progress? I have a graph with 164M edges and im not seeing more jobs added to Siren and I haven’t seen the final console.log(“Node Ingestion Jobs Created. Go to Siren Ingest UI and run jobs.\n”). Any ideas how long this process could potentially take?

I was trying to check into what this script is doing… question: how is it handling nodes with multiple labels e.g. [“Resource”, “Person”, “individual”] . Seems like it only picks the first one.