在HDP 2.2上运行Spark Streaming作业时出现NoSuchMethodError

时间:2015-02-12 20:38:15

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

我正在尝试在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中的错误文本 -

  

线程中的异常&#34;驱动程序&#34; scala.MatchError:   java.lang.NoSuchMethodError:   scala.Predef $ $符合()Lscala / PREDEF $$少$ $结肠少。 (班级   java.lang.NoSuchMethodError)at   org.apache.spark.deploy.yarn.ApplicationMaster $$匿名$ 2.run(ApplicationMaster.scala:432)   15/02/12 15:07:23 INFO yarn.ApplicationMaster:等待火花   context initialization ... 1 15/02/12 15:07:33 INFO   yarn.ApplicationMaster:等待spark上下文初始化... 2

YARN接受作业但它永远不会进入RUNNING状态。

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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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