I'm facing illegal cyclic reference involving error with Spark+Scala combine.
Error Ocured during job for '1473170880000000' and Error Message is scala.reflect.internal.Symbols$CyclicReference: illegal cyclic reference involving method srcip
at scala.reflect.internal.Symbols$Symbol$$anonfun$info$3.apply(Symbols.scala:1220)
at scala.reflect.internal.Symbols$Symbol$$anonfun$info$3.apply(Symbols.scala:1218)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.reflect.internal.Symbols$Symbol.lock(Symbols.scala:482)
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1218)
at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1374)
at scala.reflect.internal.Symbols$Symbol.privateWithin(Symbols.scala:1169)
at scala.reflect.internal.Symbols$Symbol.hasAccessBoundary(Symbols.scala:1176)
at scala.reflect.internal.HasFlags$class.isPublic(HasFlags.scala:111)
at scala.reflect.internal.Symbols$Symbol.isPublic(Symbols.scala:112)
at com.datastax.spark.connector.util.ReflectionUtil$$anonfun$2.apply(ReflectionUtil.scala:77)
Error Ocured during job for '1453743420000000' and Error Message is scala.MatchError: <error> (of class scala.reflect.internal.Types$ErrorType$)
at com.datastax.spark.connector.util.ReflectionUtil$.returnType(ReflectionUtil.scala:113)
This error happens when I try execute more than 1 jobs simultaneously.It smells like multi-threading issue. isn't it ? This error comes when loading data from Cassandra (when perform my first action) or when saving data into Cassandra rdd.saveToCassandra(...)
My dependency details
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>dse-driver</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.0.2</version>
</dependency>
Any suggestions/help on this highly appreciated. has anyone faced this issue ?
Finally the issue resolved. My application and spark binaries were built on Scala 2.10.It seems to that Scala 2.10 has reflection/multi thread issue and it is posted as a suggestion on some forums which I gone through.
The fix is, I built my application with Scala 2.11 and used Spark libraries built on 2.11.And the issue disappeared.
Updated dependencies
org.apache.spark spark-core_2.11 1.6.2
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>1.6.0</version>
</dependency>
Hope this would help someone.