首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花流- java.lang.NoSuchMethodError错误

火花流- java.lang.NoSuchMethodError错误
EN

Stack Overflow用户
提问于 2016-05-14 19:12:27
回答 2查看 1.1K关注 0票数 1

我正在尝试访问来自星火流的流媒体推文。

这是软件配置。

Ubuntu 14.04.2 LTS

scala -version

Scala代码运行程序版本2.11.7 --版权2002-2013年,LAMP/EPFL

火花-提交-版本

火花版本1.6.0

下面是代码。

代码语言:javascript
复制
object PrintTweets
{
 def main(args: Array[String]) {

  // Configure Twitter credentials using twitter.txt
  setupTwitter()

  // Set up a Spark streaming context named "PrintTweets" that runs locally using
  // all CPU cores and one-second batches of data
  val ssc = new StreamingContext("local[*]", "PrintTweets", Seconds(1))

  // Get rid of log spam (should be called after the context is set up)
  setupLogging()

  // Create a DStream from Twitter using our streaming context
  val tweets = TwitterUtils.createStream(ssc, None)


  // Now extract the text of each status update into RDD's using map()
  val statuses = tweets.map(status => status.getText())

  // Print out the first ten
  statuses.print()

  // Kick it all off
  ssc.start()
  ssc.awaitTermination()
 }
}

Utilities.scala

代码语言:javascript
复制
object Utilities {
/** Makes sure only ERROR messages get logged to avoid log spam. */
def setupLogging() = {
  import org.apache.log4j.{Level, Logger}   
  val rootLogger = Logger.getRootLogger()
  rootLogger.setLevel(Level.ERROR)   
}

/** Configures Twitter service credentials using twiter.txt in the   main workspace directory */
def setupTwitter() = {
  import scala.io.Source

  for (line <- Source.fromFile("./data/twitter.txt").getLines) {
   val fields = line.split(" ")
   if (fields.length == 2) {
    System.setProperty("twitter4j.oauth." + fields(0), fields(1))
   }
 }

}

}

问题:

因为它需要twitter4j库,所以我添加了

twitter4j-core-4.0.4,twitter4j-流-4.0.4在eclipse构建路径中作为外部jars。

然后我运行程序,它没有抛出任何错误。但这些推文并没有出现在控制台里。它是空的。

因此,我看到一些论坛,并将twitter4j降级为3.0.3。在Eclipse中,我选择了构建路径窗口中的Scala2.10Library容器。

在那之后,我得到了java.lang.NoSuchMethodError运行时错误。

代码语言:javascript
复制
16/05/14 11:46:01 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
java.lang.NoSuchMethodError:    twitter4j.TwitterStream.addListener(Ltwitter4j/StreamListener;)V
at    org.apache.spark.streaming.twitter.TwitterReceiver.onStart(TwitterInputDStream.scala:72)
at   org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:148)
at org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:130)
at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:575)
at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:565)
at org.apache.spark.SparkContext$$anonfun$37.apply(SparkContext.scala:1992)
at org.apache.spark.SparkContext$$anonfun$37.apply(SparkContext.scala:1992)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
at org.apache.spark.scheduler.Task.run(Task.scala:89)
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)

请帮我解决这个问题。最初,我使用Scala2.11构建了spark。这就是问题所在。我需要卸载所有的东西并重新安装Scala 2.10,然后再安装Spark预编译包吗?

或者,除了Scala2.11之外,我的系统中还需要Scala2.10吗?

EN

回答 2

Stack Overflow用户

发布于 2016-05-16 13:39:50

以上异常似乎是由spark version 1.6.0twitter4j 3.0.3 version的不兼容引起的。

twitter4j.TwitterStream是在org.apache.spark.streaming.twitter.TwitterReceiveronStart方法中传递的,它有以twitter4j.StreamListener为实例的方法addListener。

twitter4j 3.0.3 version没有方法twitter4j.TwitterStream.addListener(StreamListener),而是很少有其他addListener方法,这些方法接受StreamListener的子类。

twitter4j 4.0.4 version有所需的方法,所以这个库没有出现错误。因此,改用twitter4j 3.0.3 version并不能解决这个问题。

问题就在别的地方。

票数 3
EN

Stack Overflow用户

发布于 2019-08-15 20:12:29

在我的案子里。我有过星火java项目。我清理了pom文件并开始按顺序添加。首先解决火花相关的错误,然后火花发射器,下一个病房基于更大的库。注:我使用的是cdh6.2.0环境

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37230822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档