HI All, I am getting "*.UnauthorizedException: User <UserIDXYZ> has no SELECT permission on <table system.size_estimates> or any of its parents*" error while Spark job is fetching data from Cassandra but could able to save data into Cassandra with out any issues
Note: With the same user <UserIDXYZ>, I could able to access and query the table in CQL UI and code used in Spark Job has been tested in Spark Shell and it is working fine Regards, Satish Chandra On Tue, Nov 17, 2015 at 11:45 PM, satish chandra j <jsatishchan...@gmail.com > wrote: > HI All, > I am getting "*.UnauthorizedException: User <UserIDXYZ> has no SELECT > permission on <table system.size_estimates> or any of its parents*" error > while Spark job is fetching data from Cassandra but could able to save data > into Cassandra with out any issues > > Note: With the same user <UserIDXYZ>, I could able to access and query > the table in CQL UI and code used in Spark Job has been tested in Spark > Shell and it is working fine > > Please find the below stack trace > > WARN 2015-11-17 07:24:23 org.apache.spark.scheduler.DAGScheduler: > Creating new stage failed due to exception - job: 0 > > com.datastax.driver.core.exceptions.UnauthorizedException:* User <* > *UserIDXYZ**> has no SELECT permission on <table system.size_estimates> > or any of its parents* > > at > com.datastax.driver.core.exceptions.UnauthorizedException.copy(UnauthorizedException.java:36) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:269) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:183) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:52) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:44) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.8.0_51] > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[na:1.8.0_51] > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.8.0_51] > > at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51] > > at > com.datastax.spark.connector.cql.SessionProxy.invoke(SessionProxy.scala:33) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at com.sun.proxy.$Proxy10.execute(Unknown Source) ~[na:na] > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.8.0_51] > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[na:1.8.0_51] > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.8.0_51] > > at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51] > > at > com.datastax.spark.connector.cql.SessionProxy.invoke(SessionProxy.scala:33) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at com.sun.proxy.$Proxy10.execute(Unknown Source) ~[na:na] > > at > com.datastax.spark.connector.rdd.partitioner.DataSizeEstimates$$anonfun$tokenRanges$1.apply(DataSizeEstimates.scala:40) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.DataSizeEstimates$$anonfun$tokenRanges$1.apply(DataSizeEstimates.scala:38) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.cql.CassandraConnector$$anonfun$withSessionDo$1.apply(CassandraConnector.scala:110) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.cql.CassandraConnector$$anonfun$withSessionDo$1.apply(CassandraConnector.scala:109) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.cql.CassandraConnector.closeResourceAfterUse(CassandraConnector.scala:139) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.cql.CassandraConnector.withSessionDo(CassandraConnector.scala:109) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.DataSizeEstimates.tokenRanges$lzycompute(DataSizeEstimates.scala:38) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.DataSizeEstimates.tokenRanges(DataSizeEstimates.scala:37) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.DataSizeEstimates.dataSizeInBytes$lzycompute(DataSizeEstimates.scala:81) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.DataSizeEstimates.dataSizeInBytes(DataSizeEstimates.scala:80) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.CassandraRDDPartitioner.<init>(CassandraRDDPartitioner.scala:39) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.partitioner.CassandraRDDPartitioner$.apply(CassandraRDDPartitioner.scala:176) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > com.datastax.spark.connector.rdd.CassandraTableScanRDD.getPartitions(CassandraTableScanRDD.scala:144) > ~[spark-cassandra-connector_2.10-1.4.0.jar:1.4.0] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at scala.Option.getOrElse(Option.scala:120) > ~[scala-library-2.10.5.jar:na] > > at org.apache.spark.rdd.RDD.partitions(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at scala.Option.getOrElse(Option.scala:120) > ~[scala-library-2.10.5.jar:na] > > at org.apache.spark.rdd.RDD.partitions(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at scala.Option.getOrElse(Option.scala:120) > ~[scala-library-2.10.5.jar:na] > > at org.apache.spark.rdd.RDD.partitions(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at scala.Option.getOrElse(Option.scala:120) > ~[scala-library-2.10.5.jar:na] > > at org.apache.spark.rdd.RDD.partitions(RDD.scala:217) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at org.apache.spark.ShuffleDependency.<init>(Dependency.scala:82) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.ShuffledRDD.getDependencies(ShuffledRDD.scala:78) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$dependencies$2.apply(RDD.scala:206) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.rdd.RDD$$anonfun$dependencies$2.apply(RDD.scala:204) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at scala.Option.getOrElse(Option.scala:120) > ~[scala-library-2.10.5.jar:na] > > at org.apache.spark.rdd.RDD.dependencies(RDD.scala:204) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGScheduler.visit$1(DAGScheduler.scala:321) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGScheduler.getParentStages(DAGScheduler.scala:333) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGScheduler.getParentStagesAndId(DAGScheduler.scala:234) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGScheduler.newResultStage(DAGScheduler.scala:270) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted(DAGScheduler.scala:768) > ~[spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1426) > [spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1418) > [spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48) > [spark-core_2.10-1.4.1.1.jar:1.4.1.1] > > Caused by: *com.datastax.driver.core.exceptions.UnauthorizedException: > User <**UserIDXYZ**> has no SELECT permission on <table > system.size_estimates> or any of its parents* > > at > com.datastax.driver.core.Responses$Error.asException(Responses.java:101) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:118) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:183) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.RequestHandler.access$2300(RequestHandler.java:45) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:748) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:573) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:991) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:913) > ~[cassandra-driver-core-2.1.7.1.jar:na] > > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:722) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) > ~[netty-all-4.0.23.Final.jar:4.0.23.Final] > > at java.lang.Thread.run(Thread.java:745) > > > Please let me know if any solutions to fix the same > > > Regards, > > Satish Chandra >