0
OS: Amazon Linux 2
Java: openjdk 17.0.8 2023-07-18 LTS
      OpenJDK Runtime Environment Corretto-17.0.8.7.1 (build 17.0.8+7-LTS)
      OpenJDK 64-Bit Server VM Corretto-17.0.8.7.1 (build 17.0.8+7-LTS, mixed mode, sharing)
Neo4j version: 5.11.0
GDS version: 2.4.4
Neo4j RPM installer and default file structure

debug.log shows a long list of Failed to load .... from plugin jar `/var/lib/neo4j/plugins/neo4j-graph-data-science-2.4.4.jar`: java.lang.NoClassDefFoundError: .... (Too long to include complete error log)

GDS Enterprise is installed on a secondary server.

I have tried installing with graphdatascience neo4j-graph-data-science-2.4.4.zip and github neo4j-graph-data-science-2.4.4.jar

  • in the default NEO4J_HOME path, /var/lib/neo4j/plugins
  • named by default when unzipped, neo4j-graph-data-science-2.4.4.jar
  • owner: neo4j group: neo4j
  • permissions: 0775

-secondary server config:

server.directories.plugins=/var/lib/neo4j/plugins
initial.dbms.default_primaries_count=1
initial.dbms.default_secondaries_count=1
server.default_listen_address=0.0.0.0
server.default_advertised_address= SERVER IP
dbms.cluster.discovery.endpoints= LIST OF ALL SERVERS IPS
server.bolt.enabled=true
server.http.enabled=true
initial.server.mode_constraint=SECONDARY
server.cluster.system_database_mode=SECONDARY
dbms.security.procedures.unrestricted=apoc.*,gds.*
dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,apoc.*,gds.*
gds.enterprise.license_file=/var/lib/neo4j/licenses/gds_activation_key
dbms.routing.enabled=true
dbms.routing.default_router=SERVER

-primary/writer server config:

server.directories.plugins=/var/lib/neo4j/plugins
initial.dbms.default_primaries_count=1
initial.dbms.default_secondaries_count=1
server.default_listen_address=0.0.0.0
server.default_advertised_address= SERVER IP
dbms.cluster.discovery.endpoints= SERVER IP
server.bolt.enabled=true
server.http.enabled=true
dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,apoc.*
dbms.routing.enabled=true
dbms.routing.default_router=SERVER

I can start the cluster and access the UI at the default http://IP:7474

When I run RETURN gds.version(); I get a systax error: Neo.ClientError.Statement.SyntaxError Unknown function 'gds.version' (line 1, column 8 (offset: 7)) "RETURN gds.version() AS gds.version()".

I can confirm the cluster config with SHOW SERVERS YIELD *; I can confirm the APOC install with RETURN apoc.version();

What could be going on here?

References:

cybersam
  • 63,203
  • 6
  • 53
  • 76

1 Answers1

0

Try modifying neo4j.conf on your "primary" server to allow GDS procedures:

dbms.security.procedures.unrestricted=apoc.*,gds.*
dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,apoc.*,gds.*
cybersam
  • 63,203
  • 6
  • 53
  • 76
  • After adding gds.* to the primary's config I continue to get this error when querying from that primary on the neo4j browser and a new error when querying from the secondary: ```Neo.DatabaseError.Statement.RemoteExecutionFailed Remote execution failed with code Neo.DatabaseError.Statement.ExecutionFailed and message 'Not a recognised system command or procedure. This Cypher command can only be executed in a user database: RETURN `gds`.`version`() AS `gds.version()`'``` – Jessi B Aug 22 '23 at 15:14
  • That new message is badly worded. It means that you are running the procedure from the ["system" database](https://neo4j.com/docs/operations-manual/current/manage-databases/introduction/#manage-databases-system), which only supports "a specific set of administrative functions". You need to use gds from some other database. – cybersam Aug 22 '23 at 16:44