- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Spark 流和 Scala 的初学者。对于项目要求,我试图运行 github 中的 TwitterPopularTags 示例。由于 SBT 组件对我不起作用并且我不熟悉 SBT,因此我正在尝试使用 Maven 进行构建。经过很多最初的打嗝,我能够创建 jar 文件。但是在尝试执行它时,我收到以下错误。有人可以帮我解决这个问题吗?
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/twitter/TwitterUtils$
at TwitterPopularTags$.main(TwitterPopularTags.scala:43)
at TwitterPopularTags.main(TwitterPopularTags.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:331)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.streaming.twitter.TwitterUtils$
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 9 more
最佳答案
感谢您提出建议。我只能通过使用 SBT 程序集来解决这个问题。以下是有关我如何做到这一点的详细信息。
Spark - 已经存在于 Cloudera VM 中
Scala - 不确定 Cloudera 中是否存在,如果没有,我们可以安装它
SBT - 这也需要安装。我在本地机器上进行了安装并将 Jar 转移到 VM。为了安装它,我使用了以下链接
https://gist.github.com/visenger/5496675
1)一旦创建了所有这些。我们必须为我们的项目创建父文件夹。我创建了一个名为 Twitter 的文件夹。
2) 使用以下结构创建另一个文件夹 Twitter/src/main/scala,并在此文件夹中创建名为 TwitterPopularTags.scala 的 .scala 文件。这与我们从 github 获得的代码略有不同。我不得不更改导入语句
import org.apache.spark.streaming.Seconds
import org.apache.spark.streaming.StreamingContext
import org.apache.spark.streaming.StreamingContext._
import org.apache.spark.SparkContext._
import org.apache.spark.streaming.twitter._
import org.apache.spark.SparkConf
resolvers += Resolver.url("sbt-plugin-releases-scalasbt", url("http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/"))
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
name := "TwitterPopularTags"
version := "1.0"
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
}
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0" % "provided"
libraryDependencies += "org.apache.spark" %% "spark-streaming" % "1.1.0" % "provided"
libraryDependencies += "org.apache.spark" %% "spark-streaming-twitter" % "1.2.0"
libraryDependencies += "org.twitter4j" % "twitter4j-stream" % "3.0.3"
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"
sbt assembly
./bin/spark-submit \
--class TwitterPopularTags \
--master local[4] \
/path/to/TwitterPopilarTags.jar \
comsumerkey consumersecret accesstoken accesssecret
关于scala - java.lang.NoClassDefFoundError : org/apache/spark/streaming/twitter/TwitterUtils$ while running TwitterPopularTags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165032/
有没有办法在使用 TwitterUtils.createStream() 时仅提取发布推文的特定用户? (Java)“过滤器”参数指定需要包含在推文中的字符串,但我不确定如何使用它来指定我感兴趣的用户
我是 Spark 流和 Scala 的初学者。对于项目要求,我试图运行 github 中的 TwitterPopularTags 示例。由于 SBT 组件对我不起作用并且我不熟悉 SBT,因此我正在尝
我是一名优秀的程序员,十分优秀!