使用带有ScalaObjectMapper的Jackson模块在Spark 1.4.0上运行作业时出错
我正在运行一个用Scala 2.10.4编写并在Spark 1.4.0集群上运行的spark作业(基于HDFS并使用YARN管理)并在Maven存储库上使用Jackson模块版本2.6.1
在我的IDE(IntelliJ IDEA v14)本地运行代码时,一切都在内存群集上运行,但在我的远程群集(AWS VPC上的EMR群集)上运行作业时,我收到以下exception:
java.lang.AbstractMethodError: com.company.scala.framework.utils.JsonParser$$anon$1.com$fasterxml$jackson$module$scala$experimental$ScalaObjectMapper$_setter_$com$fasterxml$jackson$module$scala$experimental$ScalaObjectMapper$$typeCache_$eq(Lorg/spark-project/guava/cache/LoadingCache;)V at com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper$class.$init$(ScalaObjectMapper.scala:50) at com.company.scala.framework.utils.JsonParser$$anon$1.(JsonParser.scala:14) at com.company.scala.framework.utils.JsonParser$.(JsonParser.scala:14) at com.company.scala.framework.utils.JsonParser$.(JsonParser.scala) at com.company.migration.Migration$.printAllKeys(Migration.scala:21) at com.company.migration.Main$$anonfun$main$1.apply(Main.scala:22) at com.company.migration.Main$$anonfun$main$1.apply(Main.scala:22) at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371) at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327) at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:199) at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:56) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:70) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) at org.apache.spark.scheduler.Task.run(Task.scala:70) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
我试图查看网页上的例外,没有运气。 我也尝试在这里找一个类似的问题,发现只有一个线程没有可接受的答案,没有一个答案帮助我。
希望在这里找到帮助,
谢谢。
我正在回答其他用户进一步观看的问题。
我停止使用ScalaObjectMapper
并开始使用常规的ObjectMapper
。
val jacksonMapper = new ObjectMapper() jacksonMapper.registerModule(DefaultScalaModule)
它暂时可以正常工作。 附上piggybox的评论是有用的评论:
代码的唯一区别是使用classOf […]指定readValue的类型作为第二个参数。
- 不同语言(即Java和C ++)中的“随机”生成器如何比较?
- NoSuchMethodError:org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg / springframework / core / env / Environment; 随着zkoss
- 如何在spark中映射JavaPairRDD的键?
- 如何在GroupBy操作后从spark DataFrame列中收集字符串列表?
- Spark Combinebykey JAVA lambda表达式
- 本地类不兼容exception:从IDE运行spark standalone时
- 处理Spark Scala中的微秒
- 如何在IntelliJ IDE中集成Spark和Scala项目?
- 不断增加YARN中Spark应用程序的物理内存
- Scala错误:无法在Scala IDE和Eclipse中找到或加载主类
- 当从Java应用程序连接到Spark Standalone时,为什么抛出“无法调用已停止的SparkContext上的方法”?