当前位置: 首页 > 面试题库 >

在带有ScalaObjectMapper的Jackson模块上的Spark 1.4.0上运行作业时出错

仇浩旷
2023-03-14
问题内容

我正在运行用Scala 2.10.4编写的Spark作业,并在Spark
1.4.0集群(基于HDFS并由YARN管理)上运行,并在Mavenhtml" target="_blank">存储库上使用Jackson模块2.6.1版

从我的IDE(IntelliJ IDEA v14)在本地运行代码时,所有内容均可在内存群集上运行,但是在远程群集(AWS
VPC上的EMC群集)上运行作业时,出现以下异常:

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.<init>(JsonParser.scala:14)
    at com.company.scala.framework.utils.JsonParser$.<init>(JsonParser.scala:14)
    at com.company.scala.framework.utils.JsonParser$.<clinit>(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的类型指定为第二个参数。



 类似资料:
  • 问题内容: 我有一大堆具有相同标签的节点。我希望能够在Jenkins中运行一个作业,该作业在具有相同标签的 所有 节点上执行并同时执行。 我看到了在詹金斯中使用矩阵配置选项的建议,但我只能想到一个轴(标签组)。当我尝试运行该作业时,似乎它只执行一次而不是300次(该标签组中的每个节点1次)。 我的另一条轴应该是什么?还是…有一些插件可以做到这一点?我曾经尝试过NodeLabel参数插件,然后选择“

  • 我正在kubernetes上试用最新版本的Flink1.5的flink工作。 我的问题是如何在上面的flink集群上运行一个示例应用程序。flink示例项目提供了如何使用flink应用程序构建docker映像并将该应用程序提交给flink的信息。我遵循了这个例子,只是把flink的版本改成了最新版本。我发现应用程序(example-app)提交成功,并且在kubernetes的pod中显示,但是f

  • 我们正在尝试使用GCP数据流和Python作业模板连接到Oracle数据库。当我们使用无法访问Internet的特殊子网来运行数据流作业时,我们使用setup.py.从GCS存储桶安装依赖包 下面是使用 setup.py 创建数据流模板的命令行: < code>python3 -m 依赖项包存储在 GCP 存储桶中,并将复制到数据流工作线程,并在作业运行时安装在数据流工作线程上。对于 Oracle

  • 我对GitHub Actions比较陌生,我有两个工作——一个是运行我的测试,另一个是将我的项目部署到服务器上。 显然,我希望测试在每个分支上运行,但是部署应该只在某个东西被推送到主控时发生。 我正在努力寻找在特定分支机构工作的方法。我知道只在特定分支上运行整个工作流是可能的,但是这意味着我将有一个“测试”工作流和一个“部署”工作流。 这听起来像是一个解决方案,但它们可以并行运行。在理想情况下,测

  • 问题内容: 我想创建一个Jenkins作业来启动其他Jenkins作业。那将非常容易,因为Jenkins模板项目插件允许我们创建一个类型为“使用来自另一个项目的构建器”的构建步骤。但是,使我的情况更难的是,我必须在其他计算机上开始Jenkins的工作。有什么标准方法可以做到吗? 问题答案: 万一您只想触发Job的新版本,您有多种方法可以完成它 您可以使用远程访问API并触发请求以从源Job构建目标

  • 中的这个简单程序会引发错误。可能的原因是什么?此问题在我安装/重新安装 后出现。此外已安装在我的PC上(视窗10机器)。 错误消息: 文件"C:\Python36\lib\subprocess.py",第336行,check_output**kwargs). stdout 文件"C:\Python36\lib\subprocess.py",第403行,以Popen(*popenargs,**kwa