我正在尝试从 Spark 流式处理访问流式推文。
这是软件配置。
Ubuntu 14.04.2 LTS
scala版本
Scala代码运行器版本2.11.7——版权所有2002-2013,LAMP/EPFL
火花提交版本
火花版本1.6.0
以下是代码。
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
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))
}
}
}
}
问题:
由于它需要推特4j库,所以我
在日食构建路径中添加了推特4j-核心-4.0.4,推特4j-流-4.0.4作为外部罐子。
然后我运行了程序,它没有抛出任何错误。但是推文没有出现在控制台中。它是空的。
所以我看到了一些论坛,并将twitter4j降级为3.0.3。同样在Eclipse中,我在BuildPath窗口中选择了Scala2.10Library容器。
之后我得到了java.lang.NoSuchMethodError运行时错误。
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)
请帮我解决这个问题。最初我使用Scala 2.11构建了spark。这就是问题所在。我需要卸载所有内容并重新安装Scala 2.10,然后再安装Spark预编译包吗。
或者除了Scala 2.11之外,我的系统中还需要Scala 2.10吗?
在我的情况下。我有一个spark java项目。我清理了pom文件并开始按顺序添加。首先解决了火花相关的错误,然后是火花发射器,接下来是基于更大的库。注意我使用的是cdh6.2.0环境
上述异常似乎是由火花版本1.6.0
和twitter4j 3.0.3版本
不兼容造成的。
twitter4j.TwitterStream
在org.apache.spark.streaming.twitter.TwitterReceiver
的onStart
方法中传递的,具有方法addListener,该方法接受twitter4j.StreamListener
的实例。
twitter4j3.0.3版本
没有方法twitter3j.TwitterStream。addListener(StreamListener)
,相反,它有几个其他的addListener
方法,它们采用StreamListener
的子类。
twitter4j 4.0.4版本
具有所需的方法,所以这个库没有错误。所以更改为twitter4j 3.0.3版本
不会解决问题。
问题出在别的地方。
问题内容: 我使用Jersey作为Rest Web服务和Hibernate实体管理器来持久化JPA模型。我正在使用Tomcat 8作为容器。 这是persistence.xml文件的内容: 我的Rest呼叫就这么简单: 这是我的web.xml文件 但这给了我这个错误: 我无法弄清楚问题出在哪里!有什么帮助吗? 根据建议,这是mvn依赖项:tree日志: 问题答案: 根据@Ravindran Kan
本文向大家介绍解决 java.lang.NoSuchMethodError的错误,包括了解决 java.lang.NoSuchMethodError的错误的使用技巧和注意事项,需要的朋友参考一下 解决 java.lang.NoSuchMethodError的错误 1 原因 在项目依赖比较复杂或者 Java 运行的环境有问题时,或者同一类型的 jar 包有不同版本存在,都可能触发该错误。本质上说是
我刚开始使用Spark streaming并尝试运行本教程中的一个示例,我正在跟踪制作并运行我们自己的NetworkWordCount。我已经完成了第8步,并从SBT制作了一个罐子。 现在我正在尝试使用第9步中的命令运行deploy my jar,如下所示: 我创建的jar包含“NetworkWordCount”类,该类具有来自spark示例的以下代码 我无法确定我做错了什么。
问题内容: 当我运行junit测试时,我可以获得正确的结果,并且数据可以存储到数据库中。 当我将项目部署到tomcat时,出现了此异常。 我的Spring版本是3.1.1,tomcat版本是6.0。 这是行不通的 ): pom.xml: 问题答案: 正确的签名是 but something tries to call 使用spring 3.1或更高版本来构建应用程序和之前的版本3.1在tomcat
我正在尝试从下面的git链接运行代码 但我有个错误 nosuchMethodError:没有静态方法getFont(landroid/content/context;ilandroid/util/typedvalue;ilandroid/widget/textview;)landroid/graphics/typeface;在Landroid/Support/V4/Content/Res/Reso
问题内容: 春天来了 这是我的存储库,这是导致问题的存储库 我该如何解决? 问题答案: ClassTypeInformation在1.1.0版中引入了该方法: 确保您的spring-data-commons版本> = 1.1.0
我在Jenkinsfile中有以下代码,并且已经安装了kubernetes插件。 我得到以下错误 java.lang.NoSuchMethodError:在步骤[approverereceivedevent、approveRequestedEvent、archive、bat、build、catchError、checkout、container、containerLog、createEvent、d
我下载并安装了uCanAccess JAR,方法如下:不使用ODBC从Java操作Access数据库,我正在学习如何使用microsoft Access db for Java,这是我使用的代码 当我运行java程序时,它会出现这样的错误 UCANAccess-2.0.9.3.jar commons-lang-2.6.jar commons-logging-1.1.1.jar 所以...我怎么才能