首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache抛出java.lang.IllegalStateException:未读块数据

问Apache抛出java.lang.IllegalStateException:未读块数据
EN

Stack Overflow用户
提问于 2014-05-17 10:08:24
回答 2查看 3.9K关注 0票数 6

我们正在做的是:

  1. 根据网站上的文档,安装Spark0.9.1以及hadoop/hdfs的CDH4 (和另一个带有CDH5的集群)发行版。
  2. 用sbt构建一个fat应用程序,然后尝试在集群上运行它

我还包括代码片段和底部的sbt dep。

当我搜索到这一点时,似乎有两个有点模糊的回答:( a)节点/用户代码b上的火花版本不匹配)需要向SparkConf添加更多的jars

现在,我知道(b)不是在其他集群上成功运行相同代码的问题,而只包含一个jar (这是一个胖jar)。

但是,我不知道如何检查(a) -- Spark似乎没有任何版本检查或任何东西--如果它检查了版本并抛出了“错误匹配的版本异常:您有使用版本X的用户代码,节点Y有版本Z”,那就太好了。

如能就此提出建议,我将不胜感激。我提交了一份bug报告,因为Spark文档肯定有问题,因为我看到两个独立的系统管理员在不同集群上使用不同版本的CDH时遇到了完全相同的问题。https://issues.apache.org/jira/browse/SPARK-1867

例外情况:

代码语言:javascript
复制
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)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$org$apache$spark$scheduler$DAGScheduler$$abortStage$1.apply(DAGScheduler.scala:1020)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$org$apache$spark$scheduler$DAGScheduler$$abortStage$1.apply(DAGScheduler.scala:1018)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$abortStage(DAGScheduler.scala:1018)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$processEvent$10.apply(DAGScheduler.scala:604)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$processEvent$10.apply(DAGScheduler.scala:604)
    at scala.Option.foreach(Option.scala:236)
    at org.apache.spark.scheduler.DAGScheduler.processEvent(DAGScheduler.scala:604)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$start$1$$anon$2$$anonfun$receive$1.applyOrElse(DAGScheduler.scala:190)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
    at akka.actor.ActorCell.invoke(ActorCell.scala:456)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
    at akka.dispatch.Mailbox.run(Mailbox.scala:219)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    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/05/16 18:05:31 INFO scheduler.TaskSetManager: Loss was due to java.lang.IllegalStateException: unread block data [duplicate 59]

我的代码片段:

代码语言:javascript
复制
val conf = new SparkConf()
               .setMaster(clusterMaster)
               .setAppName(appName)
               .setSparkHome(sparkHome)
               .setJars(SparkContext.jarOfClass(this.getClass))

println("count = " + new SparkContext(conf).textFile(someHdfsPath).count())

我的SBT依赖关系:

代码语言:javascript
复制
// relevant
"org.apache.spark" % "spark-core_2.10" % "0.9.1",
"org.apache.hadoop" % "hadoop-client" % "2.3.0-mr1-cdh5.0.0",

// standard, probably unrelated
"com.github.seratch" %% "awscala" % "[0.2,)",
"org.scalacheck" %% "scalacheck" % "1.10.1" % "test",
"org.specs2" %% "specs2" % "1.14" % "test",
"org.scala-lang" % "scala-reflect" % "2.10.3",
"org.scalaz" %% "scalaz-core" % "7.0.5",
"net.minidev" % "json-smart" % "1.2"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-23 15:55:55

改变

代码语言:javascript
复制
"org.apache.hadoop" % "hadoop-client" % "2.3.0-mr1-cdh5.0.0",

至

代码语言:javascript
复制
"org.apache.hadoop" % "hadoop-common" % "2.3.0-cdh5.0.0"

在我的应用程序中,代码似乎解决了这个问题。不完全确定原因。我们的集群上有哈多普纱,所以"mr1“可能破坏了一些东西。

票数 3
EN

Stack Overflow用户

发布于 2014-10-30 17:40:00

最近,我在CDH5.2+Spark1.1.0中遇到了这个问题。

结果发现问题出在我使用的火花提交命令中。

-母纱

而不是新的

-主纱-集束

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23710032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档