Example 'example-graph-api-genealogy' on Windows


#1

I’m adapting the example ‘example-graph-api-genealogy’ to version 15. After some changes in import and methods calls, I got the program compiled. But at runtime I’m receiving:
"Exception in thread "main" java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager"
I’m running on a Windows machine, IntelliJ, Java 1.8, using libraries from Grakn distribution. (My engine is at http://ematos.net:4567/initialise?graphConfig=default&keyspace=grakn ) Some clue about this problem? TIA


#2

Hi @elymatos,

That error is saying that the persistence layer (in this case Cassandra) cannot be contacted. I am assuming that when updating the example you pointed Grakn.session(....) the uri to where you have engine running? Can you confirm that Cassandra is running on that machine as well?

Our current startup scripts don’t auto start Cassandra on windows so that might be your issue.

Regards,

Filipe


#3

Hi @filipe,
Thanks for answer.
Yep, I pointed to “ematos.net:4567”; ematos.net is a Linux box and Cassandra is running:

ematos@server:~/grakn-dist-0.15.0$ ./bin/grakn.sh status
Redis is running
Engine is 29792
Cassandra is running

I’m running the client from a Windows box. Is it necessary to Cassandra running on client too? Or maybe it is getting Cassandra address from server configuration (and then trying to access “localhost”)? In this case I must change de server configuration to point to “ematos.net”?
Thanks,
Ely


#4

Hi @elymatos,

I think you have just found the solution to your problem.

The client does not need it’s own Cassandra. I suspect what is happening is what you pointed out, the server config is pointing to localhost and when you try to build the GraknGraph a cut down version of that config is used. So that means that the client is also trying to connect to localhost. Can you try changing the server config to ematos.net:4567 as well?

That may do the trick for now.


#5

Hi @filipe
Just to note, I’ve changed the addresses at
conf/main/grakn.properties
but it was necessary to make changes at
conf/cassandra/cassandra.yaml
Now, I can get the client running, but

  1. after clean database, I can’t load data again:

    ematos@server:~/grakn-dist-0.15.0$ ./bin/grakn.sh status
    Redis is running
    Engine is 22063
    Cassandra is running
    ematos@server:~/grakn-dist-0.15.0$ ./bin/graql.sh -f ./examples/basic-genealogy.gql
    Could not connect to Grakn Engine. Have you run ‘grakn.sh start’?

and 2. I’m not able to turn off the DEBUG logs for the example…How can I do that?

Thanks,
Ely


#6

So

ematos@server:~/grakn-dist-0.15.0$ ./bin/graql.sh -f ./examples/basic-genealogy.gql

was working before you cleaned the database? How did you clean the database?

Are you talking about the cassandra debug logs?

Also which config properties did you change in grakn.properties? You should only need to change storage.hostname to point to ematos.net


#7

Our system ops guru @thanh ha pointed out to me that these may be the changes you need to make:

  1. storage.hostname in grakn.properties should be the explicit address, not localhost
  2. listen_address in cassandra.yaml should also be the explicit address
  3. rpc_address in cassandra.yaml should also be the explicit address

You will also need to open up the following ports 4567, 9042, 9160 on the server.


#8

Hi @filipe
It’s ok! I was able to run the client as the specified parameters was changed. BUT, the execution is very very very slow (about 12 minutes to run the sample). I tried to run on server, keeping the original configuration for grakn, but the result is almost the same. I couldn’t get the reason for this delay, so I’ve attached the modified source and the log at this message. If you have some time, I ask for your evaluation because it is possible that I made some fool mistake.
Thanks,
Ely
example-graph-api-genealogy.zip (24.5 KB)


#9

Thanks @elymatos, we will look into it and figure out why it’s slow.