Are all processes (Master, Worker, Executors, Driver) running the same Spark build? This error implies that you’re seeing protocol / binary incompatibilities between your Spark driver and cluster.
Spark is API-compatibile across the 1.x series, but we don’t make binary link-level compatibility guarantees: https://cwiki.apache.org/confluence/display/SPARK/Spark+Versioning+Policy. This means that your Spark driver’s runtime classpath should use the same version of Spark that’s installed on your cluster. You can compile against a different API-compatible version of Spark, but the runtime versions must match across all components. To fix this issue, I’d check that you’ve run the “package” and “assembly” phases and that your Spark cluster is using this updated version. - Josh On October 24, 2014 at 6:17:26 PM, Qiuzhuang Lian (qiuzhuang.l...@gmail.com) wrote: Hi, I update git today and when connecting to spark cluster, I got the serialVersionUID incompatible error in class BlockManagerId. Here is the log, Shouldn't we better give BlockManagerId a constant serialVersionUID avoid this? Thanks, Qiuzhuang scala> val rdd = sc.parparallelize(1 to 100014/10/25 09:10:48 ERROR Remoting: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 java.io.InvalidClassException: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at akka.serialization.JavaSerializer$$anonfun$1.apply(Serializer.scala:136) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) at akka.serialization.JavaSerializer.fromBinary(Serializer.scala:136) at akka.serialization.Serialization$$anonfun$deserialize$1.apply(Serialization.scala:104) at scala.util.Try$.apply(Try.scala:161) at akka.serialization.Serialization.deserialize(Serialization.scala:98) at akka.remote.MessageSerializer$.deserialize(MessageSerializer.scala:23) at akka.remote.DefaultMessageDispatcher.payload$lzycompute$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.payload$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.dispatch(Endpoint.scala:76) at akka.remote.EndpointReader$$anonfun$receive$2.applyOrElse(Endpoint.scala:937) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:415) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) at akka.dispatch.Mailbox.run(Mailbox.scala:220) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 14/10/25 09:10:48 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 1 0014/10/25 09:11:21 ERROR Remoting: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 java.io.InvalidClassException: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at akka.serialization.JavaSerializer$$anonfun$1.apply(Serializer.scala:136) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) at akka.serialization.JavaSerializer.fromBinary(Serializer.scala:136) at akka.serialization.Serialization$$anonfun$deserialize$1.apply(Serialization.scala:104) at scala.util.Try$.apply(Try.scala:161) at akka.serialization.Serialization.deserialize(Serialization.scala:98) at akka.remote.MessageSerializer$.deserialize(MessageSerializer.scala:23) at akka.remote.DefaultMessageDispatcher.payload$lzycompute$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.payload$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.dispatch(Endpoint.scala:76) at akka.remote.EndpointReader$$anonfun$receive$2.applyOrElse(Endpoint.scala:937) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:415) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) at akka.dispatch.Mailbox.run(Mailbox.scala:220) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 14/10/25 09:11:21 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 1 14/10/25 09:11:54 INFO SparkDeploySchedulerBackend: Registered executor: Actor[akka.tcp://sparkexecu...@dev-02.springb.gz:50006/user/Executor#-1410691203] with ID 1 14/10/25 09:11:54 INFO DAGScheduler: Host added was in lost list earlier: DEV-02.SpringB.GZ 14/10/25 09:11:55 ERROR TaskSchedulerImpl: Lost executor 1 on DEV-02.SpringB.GZ: remote Akka client disassociated 14/10/25 09:11:55 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkexecu...@dev-02.springb.gz:50006] has failed, address is now gated for [5000] ms. Reason is: [Association failed with [akka.tcp://sparkexecu...@dev-02.springb.gz:50006]]. 14/10/25 09:11:55 INFO DAGScheduler: Executor lost: 1 (epoch 1) 14/10/25 09:11:55 INFO BlockManagerMasterActor: Trying to remove executor 1 from BlockManagerMaster. 14/10/25 09:11:55 INFO BlockManagerMaster: Removed 1 successfully in removeExecutor 14/10/25 09:11:55 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 1 14/10/25 09:11:55 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 1 14/10/25 09:11:55 INFO AppClient$ClientActor: Executor updated: app-20141025091012-0002/1 is now EXITED (Command exited with code 1) 14/10/25 09:11:55 INFO SparkDeploySchedulerBackend: Executor app-20141025091012-0002/1 removed: Command exited with code 1 14/10/25 09:11:55 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 1 14/10/25 09:11:55 INFO AppClient$ClientActor: Executor added: app-20141025091012-0002/3 on worker-20141025170311-DEV-02.SpringB.GZ-35162 (DEV-02.SpringB.GZ:35162) with 2 cores 14/10/25 09:11:55 INFO SparkDeploySchedulerBackend: Granted executor ID app-20141025091012-0002/3 on hostPort DEV-02.SpringB.GZ:35162 with 2 cores, 512.0 MB RAM 14/10/25 09:11:55 INFO AppClient$ClientActor: Executor updated: app-20141025091012-0002/3 is now LOADING 14/10/25 09:11:55 INFO AppClient$ClientActor: Executor updated: app-20141025091012-0002/3 is now RUNNING 14/10/25 09:11:58 INFO SparkDeploySchedulerBackend: Registered executor: Actor[akka.tcp://sparkexecu...@dev-02.springb.gz:50740/user/Executor#1229699385] with ID 3 14/10/25 09:11:58 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkexecu...@dev-02.springb.gz:50740] has failed, address is now gated for [5000] ms. Reason is: [org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489]. 14/10/25 09:11:58 ERROR TaskSchedulerImpl: Lost executor 3 on DEV-02.SpringB.GZ: remote Akka client disassociated 14/10/25 09:11:58 INFO DAGScheduler: Executor lost: 3 (epoch 2) 14/10/25 09:11:58 INFO BlockManagerMasterActor: Trying to remove executor 3 from BlockManagerMaster. 14/10/25 09:11:58 INFO BlockManagerMaster: Removed 3 successfully in removeExecutor 14/10/25 09:12:31 ERROR Remoting: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 java.io.InvalidClassException: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at akka.serialization.JavaSerializer$$anonfun$1.apply(Serializer.scala:136) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) at akka.serialization.JavaSerializer.fromBinary(Serializer.scala:136) at akka.serialization.Serialization$$anonfun$deserialize$1.apply(Serialization.scala:104) at scala.util.Try$.apply(Try.scala:161) at akka.serialization.Serialization.deserialize(Serialization.scala:98) at akka.remote.MessageSerializer$.deserialize(MessageSerializer.scala:23) at akka.remote.DefaultMessageDispatcher.payload$lzycompute$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.payload$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.dispatch(Endpoint.scala:76) at akka.remote.EndpointReader$$anonfun$receive$2.applyOrElse(Endpoint.scala:937) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:415) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) at akka.dispatch.Mailbox.run(Mailbox.scala:220) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 14/10/25 09:12:31 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 3 14/10/25 09:13:04 ERROR Remoting: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 java.io.InvalidClassException: org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at akka.serialization.JavaSerializer$$anonfun$1.apply(Serializer.scala:136) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) at akka.serialization.JavaSerializer.fromBinary(Serializer.scala:136) at akka.serialization.Serialization$$anonfun$deserialize$1.apply(Serialization.scala:104) at scala.util.Try$.apply(Try.scala:161) at akka.serialization.Serialization.deserialize(Serialization.scala:98) at akka.remote.MessageSerializer$.deserialize(MessageSerializer.scala:23) at akka.remote.DefaultMessageDispatcher.payload$lzycompute$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.payload$1(Endpoint.scala:58) at akka.remote.DefaultMessageDispatcher.dispatch(Endpoint.scala:76) at akka.remote.EndpointReader$$anonfun$receive$2.applyOrElse(Endpoint.scala:937) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:415) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) at akka.dispatch.Mailbox.run(Mailbox.scala:220) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 14/10/25 09:13:04 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 3 14/10/25 09:13:37 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 3 14/10/25 09:13:37 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 3 14/10/25 09:13:37 INFO AppClient$ClientActor: Executor updated: app-20141025091012-0002/3 is now EXITED (Command exited with code 1) 14/10/25 09:13:37 INFO SparkDeploySchedulerBackend: Executor app-20141025091012-0002/3 removed: Command exited with code 1 14/10/25 09:13:37 ERROR SparkDeploySchedulerBackend: Asked to remove non existant executor 3 14/10/25 09:13:37 INFO AppClient$ClientActor: Executor added: app-20141025091012-0002/4 on worker-20141025170311-DEV-02.SpringB.GZ-35162 (DEV-02.SpringB.GZ:35162) with 2 cores 14/10/25 09:13:37 INFO SparkDeploySchedulerBackend: Granted executor ID app-20141025091012-0002/4 on hostPort DEV-02.SpringB.GZ:35162 with 2 cores, 512.0 MB RAM 14/10/25 09:13:37 INFO AppClient$ClientActor: Executor updated: app-20141025091012-0002/4 is now LOADING 14/10/25 09:13:38 INFO AppClient$ClientActor: Executor updated: app-20141025091012-0002/4 is now RUNNING 14/10/25 09:13:40 INFO SparkDeploySchedulerBackend: Registered executor: Actor[akka.tcp://sparkexecu...@dev-02.springb.gz:56019/user/Executor#1354626597] with ID 4 14/10/25 09:13:40 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkexecu...@dev-02.springb.gz:56019] has failed, address is now gated for [5000] ms. Reason is: [org.apache.spark.storage.BlockManagerId; local class incompatible: stream classdesc serialVersionUID = 2439208141545036836, local class serialVersionUID = 4657685702603429489]. 14/10/25 09:13:40 ERROR TaskSchedulerImpl: Lost executor 4 on DEV-02.SpringB.GZ: remote Akka client disassociated 14/10/25 09:13:40 INFO DAGScheduler: Executor lost: 4 (epoch 3) 14/10/25 09:13:40 INFO BlockManagerMasterActor: Trying to remove executor 4 from BlockManagerMaster. 14/10/25 09:13:40 INFO BlockManagerMaster: Removed 4 successfully in removeExecutor