【发布时间】:2019-06-11 23:29:48
【问题描述】:
用 Scala 编写的 Snappy 作业异常中止: java.lang.ClassCastException: com.....$Class1 无法转换为 com.....$Class1。
Class1 是存储在 RDD 中的自定义类。有趣的是这个错误是在铸造同一个类时抛出的。到目前为止,没有发现任何模式。
在作业中,我们从 hbase 获取数据,使用 Dataframes 使用分析元数据丰富数据,并将其推送到 SnappyData 中的表中。我们正在使用 Snappydata 1.2.0.1。
不知道为什么会这样。
下面是堆栈跟踪: 作业因阶段故障而中止:阶段 42.0 中的任务 76 失败 4 次,最近一次失败:阶段 42.0 中丢失任务 76.3(TID 3550,主机名,执行程序 XX.XX.x.xxx(10360):7872):java.lang .ClassCastException:不能转换为 在 org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIterator.processNext(generated.java:86) 在 org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43) 在 org.apache.spark.sql.execution.WholeStageCodegenRDD$$anon$2.hasNext(WholeStageCodegenExec.scala:571) 在 org.apache.spark.sql.execution.WholeStageCodegenRDD$$anon$1.hasNext(WholeStageCodegenExec.scala:514) 在 org.apache.spark.sql.execution.columnar.InMemoryRelation$$anonfun$1$$anon$1.hasNext(InMemoryRelation.scala:132) 在 org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:233) 在 org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1006) 在 org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:997) 在 org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:936) 在 org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:997) 在 org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:700) 在 org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:335) 在 org.apache.spark.rdd.RDD.iterator(RDD.scala:286) 在 org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:41) 在 org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) 在 org.apache.spark.rdd.RDD.iterator(RDD.scala:288) 在 org.apache.spark.sql.execution.WholeStageCodegenRDD.computeInternal(WholeStageCodegenExec.scala:557) 在 org.apache.spark.sql.execution.WholeStageCodegenRDD$$anon$1.(WholeStageCodegenExec.scala:504) 在 org.apache.spark.sql.execution.WholeStageCodegenRDD.compute(WholeStageCodegenExec.scala:503) 在 org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) 在 org.apache.spark.rdd.RDD.iterator(RDD.scala:288) 在 org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:41) 在 org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) 在 org.apache.spark.rdd.RDD.iterator(RDD.scala:288) 在 org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:103) 在 org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:58) 在 org.apache.spark.scheduler.Task.run(Task.scala:126) 在 org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:326) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 org.apache.spark.executor.SnappyExecutor$$anon$2$$anon$3.run(SnappyExecutor.scala:57) 在 java.lang.Thread.run(Thread.java:748)
【问题讨论】:
标签: apache-spark-sql snappydata