【问题标题】:NoSuchMethodError while running Spark Streaming job on HDP 2.2在 HDP 2.2 上运行 Spark Streaming 作业时出现 NoSuchMethodError
【发布时间】:2015-12-11 14:00:20
【问题描述】:

我正在尝试在 HDP 2.2 Sandbox 上运行一个简单的流式传输作业,但遇到 java.lang.NoSuchMethodError 错误。我可以在这台机器上运行 SparkPi 示例而不会出现问题。

以下是我正在使用的版本-

    <kafka.version>0.8.2.0</kafka.version>
    <twitter4j.version>4.0.2</twitter4j.version>
    <spark-version>1.2.1</spark-version>
    <scala.version>2.11</scala.version>

代码片段 -

val sparkConf = new SparkConf().setAppName("TweetSenseKafkaConsumer").setMaster("yarn-cluster");
val ssc = new StreamingContext(sparkConf, Durations.seconds(5));

来自节点管理器 UI 的错误文本-

线程“驱动程序”scala.MatchError 中的异常: java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less; (班级的 java.lang.NoSuchMethodError) 在 org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:432) 15/02/12 15:07:23 INFO yarn.ApplicationMaster: 等待火花 上下文初始化 ... 1 15/02/12 15:07:33 信息 yarn.ApplicationMaster:等待火花上下文初始化... 2

作业在 YARN 中被接受,但从未进入 RUNNING 状态。

我认为这是由于 Scala 版本差异造成的。我尝试更改 POM 配置,但仍然无法修复错误。

提前感谢您的帮助。

【问题讨论】:

  • "我尝试更改 POM 配置,但仍然无法修复错误。"你做了哪些改变?根据 Spark 文档“对于 Scala API,Spark 1.2.0 使用 Scala 2.10。您将需要使用兼容的 Scala 版本 (2.10.x)。” - 您使用的是 2.11,这很可能是您的问题
  • 实际上,我之前指定了 spark-streaming_2.10 的依赖项(使用 Scala 2.10 编译的 Spark)。我没有为 Scala 编译器本身指定依赖项。似乎 Maven 自动提取了 2.11(可能是由于其他一些依赖)。在尝试调试此问题时,我添加了对 Scala 编译器 2.11 的依赖项。现在,在您发表评论后,我将该依赖项更改为 2.10 并且它正在工作。非常感谢您的帮助。

标签: scala apache-spark hortonworks-data-platform spark-streaming


【解决方案1】:

之前我为 spark-streaming_2.10 指定了依赖项(使用 Scala 2.10 编译的 Spark)。我没有为 Scala 编译器本身指定依赖项。似乎 Maven 自动提取了 2.11(可能是由于其他一些依赖)。在尝试调试此问题时,我添加了对 Scala 编译器 2.11 的依赖项。现在,在 Paul 发表评论后,我将 Scala 依赖项版本更改为 2.10,它正在运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 2016-08-31
    • 2014-01-29
    • 2017-08-31
    • 2017-04-02
    • 2021-11-17
    • 2017-07-19
    相关资源
    最近更新 更多