Hi Team,

I am testing out Ignite Spark Integration and running into issues when
Spark is to perform operations on Ignite RDD. Spark master and the worker
are up and running along with 2 node Ignite cluster. Getting
InvalidClassException
Please suggest what can be done to overcome this.

*Spark version *2.3.0.
*Ignite version* 2.10.0

Spark shell is started with

spark-2.3.0-bin-hadoop2.7]# ./bin/spark-shell --*packages
*org.apache.ignite:ignite-spark:1.8.0,org.apache.ignite:ignite-spring:1.8.0
 --*conf 
*spark.driver.extraClassPath=/opt/apache-ignite-2.10.0-bin/libs/*:/opt/apache-ignite-2.10.0-bin/libs/optional/ignite-spark/*:/opt/apache-ignite-2.10.0-bin/libs/optional/ignite-log4j/*:/opt/apache-ignite-2.10.0-bin/libs/optional/ignite-yarn/*:/opt/apache-ignite-2.10.0-bin/libs/ignite-spring/*
--*jars 
*/opt/apache-ignite-2.10.0-bin/libs/ignite-core-2.10.0.jar,/opt/apache-ignite-2.10.0-bin/libs/ignite-spark-2.10.0.jar,/opt/apache-ignite-2.10.0-bin/libs/cache-api-1.0.0.jar,/opt/apache-ignite-2.10.0-bin/libs/ignite-log4j-2.10.0.jar,/opt/apache-ignite-2.10.0-bin/libs/log4j-1.2.17.jar,/opt/apache-ignite-2.10.0-bin/libs/ignite-spring/ignite-spring-2.10.0.jar
--master spark://xx.xx.xx.xx:7077

*Execption attached below:*


*scala> val ic = new IgniteContext(sc,
"/opt/apache-ignite-2.10.0-bin/examples/config/spark/example-shared-rdd.xml")*
2021-08-18 11:19:35 WARN  IgniteKernal:576 - Please set system property
'-Djava.net.preferIPv4Stack=true' to avoid possible problems in mixed
environments.
2021-08-18 11:19:35 WARN  TcpCommunicationSpi:576 - Message queue limit is
set to 0 which may lead to potential OOMEs when running cache operations in
FULL_ASYNC or PRIMARY_SYNC modes due to message queues growth on sender and
receiver sides.
2021-08-18 11:19:35 WARN  NoopCheckpointSpi:576 - Checkpoints are disabled
(to enable configure any GridCheckpointSpi implementation)
2021-08-18 11:19:35 WARN  GridCollisionManager:576 - Collision resolution
is disabled (all jobs will be activated upon arrival).
2021-08-18 11:19:35 WARN  IgniteH2Indexing:576 - Serialization of Java
objects in H2 was enabled.
2021-08-18 11:19:37 WARN  GridClusterStateProcessor:576 - Received state
finish message with unexpected ID: ChangeGlobalStateFinishMessage
[id=36bcec75b71-46c2fd15-4c79-4b79-a1d5-998b63dc7dd6,
reqId=bfecc55e-bbe0-4451-95ef-3f8020b7b97e, state=ACTIVE,
transitionRes=true]
ic: org.apache.ignite.spark.IgniteContext =
org.apache.ignite.spark.IgniteContext@5af7e2f

*scala> val sharedRDD = ic.fromCache[Integer, Integer]("partitioned")*
sharedRDD: org.apache.ignite.spark.IgniteRDD[Integer,Integer] =
IgniteRDD[0] at RDD at IgniteAbstractRDD.scala:32

*scala> sharedRDD.filter(_._2 < 10).collect()*
[Stage 0:>                                                       (0 + 4) /
1024]2021-08-18 11:20:08 WARN  TaskSetManager:66 - Lost task 3.0 in stage
0.0 (TID 3, 172.16.8.181, executor 0): java.io.InvalidClassException:
org.apache.ignite.spark.impl.IgnitePartition; local class incompatible:
stream classdesc serialVersionUID = -2372563944236654956, local class
serialVersionUID = -7759805985368763313
        at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
        at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2001)
        at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1848)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2158)
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1665)
        at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2403)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2327)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2185)
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1665)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:501)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:459)
        at
org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:75)
        at
org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:114)
        at
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:313)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

2021-08-18 11:20:08 ERROR TaskSetManager:70 - Task 0 in stage 0.0 failed 4
times; aborting job
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0
in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage
0.0 (TID 25, 172.16.8.181, executor 0): java.io.InvalidClassException:
org.apache.ignite.spark.impl.IgnitePartition; local class incompatible:
stream classdesc serialVersionUID = -2372563944236654956, local class
serialVersionUID = -7759805985368763313
        at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
        at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2001)
        at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1848)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2158)
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1665)
        at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2403)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2327)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2185)
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1665)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:501)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:459)
        at
org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:75)
        at
org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:114)
        at
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:313)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Driver stacktrace:
  at org.apache.spark.scheduler.DAGScheduler.org
<http://org.apache.spark.scheduler.dagscheduler.org/>
$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1599)
  at
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1587)
  at
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1586)
  at
scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
  at
org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1586)
  at
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:831)
  at
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:831)
  at scala.Option.foreach(Option.scala:257)
  at
org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:831)
  at
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1820)
  at
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1769)
  at
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1758)
  at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
  at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:642)
  at org.apache.spark.SparkContext.runJob(SparkContext.scala:2027)
  at org.apache.spark.SparkContext.runJob(SparkContext.scala:2048)
  at org.apache.spark.SparkContext.runJob(SparkContext.scala:2067)
  at org.apache.spark.SparkContext.runJob(SparkContext.scala:2092)
  at org.apache.spark.rdd.RDD$$anonfun$collect$1.apply(RDD.scala:939)
  at
org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
  at
org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
  at org.apache.spark.rdd.RDD.withScope(RDD.scala:363)
  at org.apache.spark.rdd.RDD.collect(RDD.scala:938)
  ... 53 elided

*Caused by: java.io.InvalidClassException:
org.apache.ignite.spark.impl.IgnitePartition; local class incompatible:
stream classdesc serialVersionUID = -2372563944236654956, local class
serialVersionUID = -7759805985368763313*  at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
  at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2001)
  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1848)
  at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2158)
  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1665)
  at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2403)
  at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2327)
  at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2185)
  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1665)
  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:501)
  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:459)
  at
org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:75)
  at
org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:114)
  at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:313)
  at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at java.lang.Thread.run(Thread.java:748)

Kindly help with a solution to this issue.

Thanks in advance,
Smera.

-- 
This message (including any attachments) contains confidential information 
intended for a specific individual and purpose, and is protected by law. If 
you are not the intended recipient, you should delete this message and any 
disclosure, copying, or distribution of this message, or the taking of any 
action based on it, by you is strictly prohibited.

Reply via email to