0

I have a dse graph in validation/prod environement. The problem occurs when I try to launch a DSEGraphFrame query using Spark in Scala.

val graph = spark.dseGraph("my_graph")

generates the following exception:

Exception in thread "main" com.datastax.driver.core.exceptions.InvalidQueryException: The method DseGraphRpc.getSchemaBlob does not exist. Make sure that the required component for that method is active/enabled at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:40) at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:26) at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:284) at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.datastax.spark.connector.cql.SessionProxy.invoke(SessionProxy.scala:37) at com.sun.proxy.$Proxy27.execute(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.datastax.spark.connector.cql.SessionProxy.invoke(SessionProxy.scala:37) at com.sun.proxy.$Proxy28.execute(Unknown Source) at com.datastax.bdp.util.rpc.RpcUtil.callInternal(RpcUtil.java:57) at com.datastax.bdp.util.rpc.RpcUtil.call(RpcUtil.java:40) at com.datastax.bdp.graph.spark.DseGraphRpc.callGetSchema(DseGraphRpc.java:45) at com.datastax.bdp.graph.spark.graphframe.DseGraphFrame$$anonfun$getSchemaFromServer$1.apply(DseGraphFrame.scala:586) at com.datastax.bdp.graph.spark.graphframe.DseGraphFrame$$anonfun$getSchemaFromServer$1.apply(DseGraphFrame.scala:586) at com.datastax.spark.connector.cql.CassandraConnector$$anonfun$withSessionDo$1.apply(CassandraConnector.scala:115) at com.datastax.spark.connector.cql.CassandraConnector$$anonfun$withSessionDo$1.apply(CassandraConnector.scala:114) at com.datastax.spark.connector.cql.CassandraConnector.closeResourceAfterUse(CassandraConnector.scala:158) at com.datastax.spark.connector.cql.CassandraConnector.withSessionDo(CassandraConnector.scala:114) at com.datastax.bdp.graph.spark.graphframe.DseGraphFrame$.getSchemaFromServer(DseGraphFrame.scala:586) at com.datastax.bdp.graph.spark.graphframe.DseGraphFrameBuilder$.apply(DseGraphFrameBuilder.scala:257) at com.datastax.bdp.graph.spark.graphframe.SparkSessionFunctions.dseGraph(SparkSessionFunctions.scala:20)

What could I do to run DSEGraphFrame properly?

stephen mallette
  • 45,298
  • 5
  • 67
  • 135
BeginMoh
  • 123
  • 1
  • 11
  • What version of DSE? Are you running it on DSE Analytics, or on the external Spark? – Alex Ott Feb 01 '19 at 12:34
  • Did you start DSE with Graph and Analytics enabled? – Artem Aliev Feb 01 '19 at 13:21
  • thanks Alex and Artem for your help , the problem is the graph activation in a node – BeginMoh Feb 01 '19 at 13:53
  • I have a question plz : why i should activate Graph(enabled) in all my nodes ? there is a way to start it even if in a node isn't activate ? dse : 6.0.4 + External spark +byos 6.7.0.jar – BeginMoh Feb 04 '19 at 14:20
  • TLDR. All DSE nodes are equals in Datacenter and client can connect to any of them or even connect to all of then. So the DGF client selected the node without Graph in your case and fail to receive Graph metadata. – Artem Aliev Feb 08 '19 at 08:25

1 Answers1

1

The problem comes from a node in dse cluster wich the graph isn't activated

BeginMoh
  • 123
  • 1
  • 11