Error While creating "Global Traversal Graph variable" on OLAP Properties graph


Anshul Sharma <sharma.a...@...>
 

Hi Team,

I am able to perform the OLAP operation on graph with Hbase storage backend.
But when i tried to create a Global Graph Variable on top of the graph then only getting below error.

Error: 
Caused by: org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hbase.security.AccessDeniedException: Insufficient Permission (user=*****, scope=default, params=[namespace=default,table=default:janusgraph,family=s],action=create)


It's looks like JG is pointing to default namespace of storage but it should point to actual namespace as per namespace and table information given in below Hbase property file.

Please note that:
1.)As mentioned, If i am trying to access it directly using gremlin console then it's not showing any error related to back-end Hbase and i am able to run the olap operation.
2)  Only when i am trying to create Global Graph variable using "empty_sample.groooy" file then this error has been observed.
  
Please suggest . Let me know if more information is required.
 
Hbase property file configuration:

# # Hadoop Graph Configuration # gremlin.graph=org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph gremlin.hadoop.graphReader=org.janusgraph.hadoop.formats.hbase.HBaseInputFormat gremlin.hadoop.graphWriter=org.apache.hadoop.mapreduce.lib.output.NullOutputFormat

gremlin.hadoop.jarsInDistributedCache=true
gremlin.hadoop.inputLocation=none 
gremlin.hadoop.outputLocation=output 
gremlin.spark.persistContext=true 

# # JanusGraph HBase InputFormat configuration # janusgraphmr.ioformat.conf.storage.backend=hbase janusgraphmr.ioformat.conf.storage.hostname=
janusgraphmr.ioformat.conf.storage.hbase.table=janusgraph:test    #namespace = janusgraph and table name = test

# # SparkGraphComputer Configuration # 
spark.master=local[*]
spark.executor.memory=4g 
spark.serializer=org.apache.spark.serializer.KryoSerializer spark.kryo.registrator=org.janusgraph.hadoop.serialize.JanusGraphKryoRegistrator  



Thanks & Regards,
Anshul Sharma.


HadoopMarc <bi...@...>
 

Hi Anshul,

Configuring a Spark application is often confusing, because part of it runs as "the driver".  It might well be that this driver part does not use the graphmr.ioformat namespace of configs, so I would repeat the hbase.table entry in the storage namespace (as for OLTP use).

No guarantee that it will work, but it is worth a try.

Marc

Op donderdag 27 augustus 2020 om 13:28:43 UTC+2 schreef shar...@...:

Hi Team,

I am able to perform the OLAP operation on graph with Hbase storage backend.
But when i tried to create a Global Graph Variable on top of the graph then only getting below error.

Error: 
Caused by: org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hbase.security.AccessDeniedException: Insufficient Permission (user=*****, scope=default, params=[namespace=default,table=default:janusgraph,family=s],action=create)


It's looks like JG is pointing to default namespace of storage but it should point to actual namespace as per namespace and table information given in below Hbase property file.

Please note that:
1.)As mentioned, If i am trying to access it directly using gremlin console then it's not showing any error related to back-end Hbase and i am able to run the olap operation.
2)  Only when i am trying to create Global Graph variable using "empty_sample.groooy" file then this error has been observed.
  
Please suggest . Let me know if more information is required.
 
Hbase property file configuration:

# # Hadoop Graph Configuration # gremlin.graph=org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph gremlin.hadoop.graphReader=org.janusgraph.hadoop.formats.hbase.HBaseInputFormat gremlin.hadoop.graphWriter=org.apache.hadoop.mapreduce.lib.output.NullOutputFormat

gremlin.hadoop.jarsInDistributedCache=true
gremlin.hadoop.inputLocation=none 
gremlin.hadoop.outputLocation=output 
gremlin.spark.persistContext=true 

# # JanusGraph HBase InputFormat configuration # janusgraphmr.ioformat.conf.storage.backend=hbase janusgraphmr.ioformat.conf.storage.hostname=
janusgraphmr.ioformat.conf.storage.hbase.table=janusgraph:test    #namespace = janusgraph and table name = test

# # SparkGraphComputer Configuration # 
spark.master=local[*]
spark.executor.memory=4g 
spark.serializer=org.apache.spark.serializer.KryoSerializer spark.kryo.registrator=org.janusgraph.hadoop.serialize.JanusGraphKryoRegistrator  



Thanks & Regards,
Anshul Sharma.


Anshul Sharma <sharma.a...@...>
 

Hi Marc,

Thanks for the comment. 
Only problem is if I directly open the property file using Gremlin console and open the graph using GraphFactory for OLAP operation, then i am able to do it.
graph = GraphFactory.open( "name of the property file")
g=graph.traversal().withCompute(org.apache.tinkerpop.gremlin.spark.process.compute.SparkGraphComputer)
 g.V().count()  

But in case I try to create Global Graph traversal variable by declaring property file in gremlin-server.yml and define it's reference to empty-sample.groovy (for global graph variable ) then only it shows the namespace issue which mentioned in above email on backend. 

I will update more if i will get any success.

Thanks & Regards,
Anshul Sharma.


On Thursday, August 27, 2020 at 11:57:45 PM UTC+5:30 HadoopMarc wrote:
Hi Anshul,

Configuring a Spark application is often confusing, because part of it runs as "the driver".  It might well be that this driver part does not use the graphmr.ioformat namespace of configs, so I would repeat the hbase.table entry in the storage namespace (as for OLTP use).

No guarantee that it will work, but it is worth a try.

Marc

Op donderdag 27 augustus 2020 om 13:28:43 UTC+2 schreef shar...@...:
Hi Team,

I am able to perform the OLAP operation on graph with Hbase storage backend.
But when i tried to create a Global Graph Variable on top of the graph then only getting below error.

Error: 
Caused by: org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hbase.security.AccessDeniedException: Insufficient Permission (user=*****, scope=default, params=[namespace=default,table=default:janusgraph,family=s],action=create)


It's looks like JG is pointing to default namespace of storage but it should point to actual namespace as per namespace and table information given in below Hbase property file.

Please note that:
1.)As mentioned, If i am trying to access it directly using gremlin console then it's not showing any error related to back-end Hbase and i am able to run the olap operation.
2)  Only when i am trying to create Global Graph variable using "empty_sample.groooy" file then this error has been observed.
  
Please suggest . Let me know if more information is required.
 
Hbase property file configuration:

# # Hadoop Graph Configuration # gremlin.graph=org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph gremlin.hadoop.graphReader=org.janusgraph.hadoop.formats.hbase.HBaseInputFormat gremlin.hadoop.graphWriter=org.apache.hadoop.mapreduce.lib.output.NullOutputFormat

gremlin.hadoop.jarsInDistributedCache=true
gremlin.hadoop.inputLocation=none 
gremlin.hadoop.outputLocation=output 
gremlin.spark.persistContext=true 

# # JanusGraph HBase InputFormat configuration # janusgraphmr.ioformat.conf.storage.backend=hbase janusgraphmr.ioformat.conf.storage.hostname=
janusgraphmr.ioformat.conf.storage.hbase.table=janusgraph:test    #namespace = janusgraph and table name = test

# # SparkGraphComputer Configuration # 
spark.master=local[*]
spark.executor.memory=4g 
spark.serializer=org.apache.spark.serializer.KryoSerializer spark.kryo.registrator=org.janusgraph.hadoop.serialize.JanusGraphKryoRegistrator  



Thanks & Regards,
Anshul Sharma.


HadoopMarc <bi...@...>
 

Hi Anshul,

OK I understand. The properties files in conf/gremlin-server all have the line:

gremlin.graph=org.janusgraph.core.JanusGraphFactory

Are you sure you put that in your own properties file (also because you mention the generic TinkerPop GraphFactory above, which does not have any knowledge of the additional JanusGraph properties namespaces)?

Best wishes,

Marc

Op vrijdag 28 augustus 2020 om 13:29:50 UTC+2 schreef shar...@...:

Hi Marc,

Thanks for the comment. 
Only problem is if I directly open the property file using Gremlin console and open the graph using GraphFactory for OLAP operation, then i am able to do it.
graph = GraphFactory.open( "name of the property file")
g=graph.traversal().withCompute(org.apache.tinkerpop.gremlin.spark.process.compute.SparkGraphComputer)
 g.V().count()  

But in case I try to create Global Graph traversal variable by declaring property file in gremlin-server.yml and define it's reference to empty-sample.groovy (for global graph variable ) then only it shows the namespace issue which mentioned in above email on backend. 

I will update more if i will get any success.

Thanks & Regards,
Anshul Sharma.


On Thursday, August 27, 2020 at 11:57:45 PM UTC+5:30 HadoopMarc wrote:
Hi Anshul,

Configuring a Spark application is often confusing, because part of it runs as "the driver".  It might well be that this driver part does not use the graphmr.ioformat namespace of configs, so I would repeat the hbase.table entry in the storage namespace (as for OLTP use).

No guarantee that it will work, but it is worth a try.

Marc

Op donderdag 27 augustus 2020 om 13:28:43 UTC+2 schreef shar...@...:
Hi Team,

I am able to perform the OLAP operation on graph with Hbase storage backend.
But when i tried to create a Global Graph Variable on top of the graph then only getting below error.

Error: 
Caused by: org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hbase.security.AccessDeniedException: Insufficient Permission (user=*****, scope=default, params=[namespace=default,table=default:janusgraph,family=s],action=create)


It's looks like JG is pointing to default namespace of storage but it should point to actual namespace as per namespace and table information given in below Hbase property file.

Please note that:
1.)As mentioned, If i am trying to access it directly using gremlin console then it's not showing any error related to back-end Hbase and i am able to run the olap operation.
2)  Only when i am trying to create Global Graph variable using "empty_sample.groooy" file then this error has been observed.
  
Please suggest . Let me know if more information is required.
 
Hbase property file configuration:

# # Hadoop Graph Configuration # gremlin.graph=org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph gremlin.hadoop.graphReader=org.janusgraph.hadoop.formats.hbase.HBaseInputFormat gremlin.hadoop.graphWriter=org.apache.hadoop.mapreduce.lib.output.NullOutputFormat

gremlin.hadoop.jarsInDistributedCache=true
gremlin.hadoop.inputLocation=none 
gremlin.hadoop.outputLocation=output 
gremlin.spark.persistContext=true 

# # JanusGraph HBase InputFormat configuration # janusgraphmr.ioformat.conf.storage.backend=hbase janusgraphmr.ioformat.conf.storage.hostname=
janusgraphmr.ioformat.conf.storage.hbase.table=janusgraph:test    #namespace = janusgraph and table name = test

# # SparkGraphComputer Configuration # 
spark.master=local[*]
spark.executor.memory=4g 
spark.serializer=org.apache.spark.serializer.KryoSerializer spark.kryo.registrator=org.janusgraph.hadoop.serialize.JanusGraphKryoRegistrator  



Thanks & Regards,
Anshul Sharma.