apachespark抛出java.lang.illegalstateexception:未读块数据

yftpprvb  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(498)

我们正在做的是:
根据网站上的文档安装spark0.9.1,以及hadoop/hdfs的cdh4(和另一个带有cdh5的集群)发行版。
使用spark应用程序和sbt构建胖jar,然后尝试在集群上运行它
我还包括了代码片段和底部的sbt dep。
当我在google上搜索这个时,似乎有两个模糊的回答:a)节点/用户代码上的spark版本不匹配b)需要向sparkconf添加更多jar
现在我知道(b)不是在其他集群上成功运行相同代码而只包含一个jar(这是一个胖jar)的问题。
但我不知道如何检查(a)-看起来spark没有任何版本检查或任何东西-如果它检查版本并抛出“不匹配的版本异常:您有使用版本x的用户代码,节点y有版本z”就好了。
我将非常感谢您的建议。我已经提交了一个bug报告,因为spark文档肯定有问题,因为我看到两个独立的sysadm在不同集群上的不同版本的cdh中遇到了完全相同的问题。https://issues.apache.org/jira/browse/spark-1867
例外情况:

  1. Exception in thread "main" org.apache.spark.SparkException: Job aborted: Task 0.0:1 failed 32 times (most recent failure: Exception failure: java.lang.IllegalStateException: unread block data)
  2. at org.apache.spark.scheduler.DAGScheduler$$anonfun$org$apache$spark$scheduler$DAGScheduler$$abortStage$1.apply(DAGScheduler.scala:1020)
  3. at org.apache.spark.scheduler.DAGScheduler$$anonfun$org$apache$spark$scheduler$DAGScheduler$$abortStage$1.apply(DAGScheduler.scala:1018)
  4. at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
  5. at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
  6. at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$abortStage(DAGScheduler.scala:1018)
  7. at org.apache.spark.scheduler.DAGScheduler$$anonfun$processEvent$10.apply(DAGScheduler.scala:604)
  8. at org.apache.spark.scheduler.DAGScheduler$$anonfun$processEvent$10.apply(DAGScheduler.scala:604)
  9. at scala.Option.foreach(Option.scala:236)
  10. at org.apache.spark.scheduler.DAGScheduler.processEvent(DAGScheduler.scala:604)
  11. at org.apache.spark.scheduler.DAGScheduler$$anonfun$start$1$$anon$2$$anonfun$receive$1.applyOrElse(DAGScheduler.scala:190)
  12. at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
  13. at akka.actor.ActorCell.invoke(ActorCell.scala:456)
  14. at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
  15. at akka.dispatch.Mailbox.run(Mailbox.scala:219)
  16. at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
  17. at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
  18. at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
  19. at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
  20. at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
  21. 14/05/16 18:05:31 INFO scheduler.TaskSetManager: Loss was due to java.lang.IllegalStateException: unread block data [duplicate 59]

我的代码段:

  1. val conf = new SparkConf()
  2. .setMaster(clusterMaster)
  3. .setAppName(appName)
  4. .setSparkHome(sparkHome)
  5. .setJars(SparkContext.jarOfClass(this.getClass))
  6. println("count = " + new SparkContext(conf).textFile(someHdfsPath).count())

我的sbt相关性:

  1. // relevant
  2. "org.apache.spark" % "spark-core_2.10" % "0.9.1",
  3. "org.apache.hadoop" % "hadoop-client" % "2.3.0-mr1-cdh5.0.0",
  4. // standard, probably unrelated
  5. "com.github.seratch" %% "awscala" % "[0.2,)",
  6. "org.scalacheck" %% "scalacheck" % "1.10.1" % "test",
  7. "org.specs2" %% "specs2" % "1.14" % "test",
  8. "org.scala-lang" % "scala-reflect" % "2.10.3",
  9. "org.scalaz" %% "scalaz-core" % "7.0.5",
  10. "net.minidev" % "json-smart" % "1.2"
mwyxok5s

mwyxok5s1#

我最近在cdh5.2+spark1.1.0上遇到了这个问题。
原来问题出在我使用的spark submit命令中
--粗纱
而不是新的
--主纱团

ppcbkaq5

ppcbkaq52#

改变

  1. "org.apache.hadoop" % "hadoop-client" % "2.3.0-mr1-cdh5.0.0",

  1. "org.apache.hadoop" % "hadoop-common" % "2.3.0-cdh5.0.0"

在我的应用程序中,代码似乎解决了这个问题。不完全清楚为什么。我们在集群上有hadoop,所以也许“mr1”破坏了东西。

相关问题