【问题标题】:Apache Spark Throws java.lang.IllegalStateException: unread block dataApache Spark 引发 java.lang.IllegalStateException:未读块数据
【发布时间】:2014-07-05 18:39:31
【问题描述】:

我们正在做的是:

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

我还在底部包含了代码 sn-ps 和 sbt deps。

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

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

但我不知道如何检查 (a) - 似乎 Spark 没有任何版本检查或任何东西 - 如果它检查版本并抛出“不匹配的版本异常:你有用户代码使用版本 X 和节点 Y 有版本 Z"。

我将非常感谢您对此提供建议。我已经提交了一个错误报告,因为 Spark 文档肯定有问题,因为我已经看到两个独立的系统管理员在不同的集群上使用不同版本的 CDH 时遇到完全相同的问题。 https://issues.apache.org/jira/browse/SPARK-1867

例外:

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]

我的代码sn-p:

val conf = new SparkConf()
               .setMaster(clusterMaster)
               .setAppName(appName)
               .setSparkHome(sparkHome)
               .setJars(SparkContext.jarOfClass(this.getClass))

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

我的 SBT 依赖项:

// 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"

【问题讨论】:

    标签: scala hadoop hdfs apache-spark


    【解决方案1】:

    变化

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

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

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

    【讨论】:

      【解决方案2】:

      我最近在使用 CDH 5.2 + Spark 1.1.0 时遇到了这个问题。

      原来问题出在我使用的 spark-submit 命令中

      --master yarn

      而不是新的

      --master yarn-cluster

      【讨论】:

        猜你喜欢
        • 2016-01-30
        • 2016-04-26
        • 2018-03-30
        • 2017-03-28
        • 2015-04-27
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多