当前位置: 首页 > 知识库问答 >
问题:

SBT测试错误:java.lang.nosuchmethoderror:net.jpountz.lz4.lz4BlockInputStream

秦焱
2023-03-14

2018-06-18 02:39:00错误执行器:91-stage 3.0(TID 11)中任务1.0中的异常java.lang.nosuchmethoderror:net.jpountz.lz4.lz4blockinputstream.(ljava/io/inputstream;z)V在org.apache.spark.io.lz4compressioncodec.compressedinputstream(compressioncodec.scala:122),在A:124)在org.apache.spark.shuffle.blockstoreShuffleReader$$anonfun$2.在org.apache.spark.shuffle.blockstoreShuffleReader.scala:50)在org.apache.spark.shuffle.blockstoreShuffleReader$$anonfun$2.在org.apache.stark.storage.shuffle.blockstoreShuffleReader.scala:50)在$Anon$12.nextcur(iterator.scala:435)在Scala.collection.iterator$$Anon$12.hasNext(iterator.scala:441)在Scala。collection.iterator$$Anon$11.在org.apache.spark.util.completioniterator.hasnext(iterator.scala:409)在org.apache.spark.interruptibleiterator.hasnext(completioniterator.scala:32)在scala.collection.scark.interruptibleiterator.hasnext(completioniterator.scala:37)在scala.collection.scalator$$Anon$11在forcodegenStage1.ProcessNext(来源未知)位于org.apache.spark.sql.execution.bufferedRowiterator.hasnext(BufferedRowiterator.java:43)位于org.apache.spark.sql.execution.$$anonfun$10$$anon$1.hasnext(wholestagEcodeExec.scala:614)位于org.apache.spark.sql.execution.streaming.FlatMapGrouptore.scala:29)位于ApGroupsWithStateExec.Scala:176)**

尝试了几种方法来排除net.jpountz.lz4 jar(从其他文章中得到了建议),但输出中还是出现了同样的错误。

目前使用spark 2.3、scalatest 3.0.5、Scala 2.11版本。我只在升级到Spark2.3和scalatest 3.0.5后才看到这个问题

有什么建议吗?

共有1个答案

程钧
2023-03-14

Kafka与Spark有一种相互冲突的依赖关系,这就是我产生这个问题的原因。

这就是如何在sbt文件中排除依赖项

lazy val excludeJpountz = ExclusionRule(organization = "net.jpountz.lz4", name = "lz4")

lazy val kafkaClients = "org.apache.kafka" % "kafka-clients" % userKafkaVersionHere excludeAll(excludeJpountz) // add more exclusions here

当您使用这个KafKaclients依赖项时,它现在将排除有问题的lz4库。

 类似资料:
  • 我有一个sbt构建,当我从命令行运行时可以工作,但Intellij不喜欢。我的Intellij运行在Linux上,它的版本是14.1.4,我的scala插件是1.5.2。 Intellij抱怨我使用enablePlugins(JavaAppPackaging)。错误是“表达式类型(DslEntry)必须符合SBT文件中的设置[_]”。 我的项目/构建。属性文件: 我的项目/插件。sbt公司 我bu

  • 詹金斯设置 我不使用任何源代码管理方法,因此我将其保留为非 在全局工具配置下 > JDK安装已设置为自动安装 Maven配置设置为, > 文件路径=C:\Users***。m2\设置。xml 默认全局设置提供程序=使用默认maven全局设置 TestNg文件 POM文件

  • 我对Scala并不熟悉SBT,我正在尝试弄清楚新的IntelliJide。 已添加项目

  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

  • 如何使目标“包”依赖于目标“测试”? 这里有一个解决方案:强制sbt 0.11运行测试,但它实际上不适用于xsbt web插件。