首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException在SparkStreaming示例中的应用

ClassNotFoundException在SparkStreaming示例中的应用
EN

Stack Overflow用户
提问于 2017-07-31 11:59:54
回答 2查看 675关注 0票数 0

我是新的星火流,并试图运行一个例子从教程,我是跟随制作和运行我们自己的NETWORKWORDCOUNT。我完成了第八步,用sbt做了一个罐子。

现在,我正尝试使用第9步中的命令来部署jar,如下所示:

代码语言:javascript
复制
bin/spark-submit --class "NetworkWordCount" --master spark://abc:7077 target/scala-2.11/networkcount_2.11-1.0.jar localhost 9999

但是,当我运行这个命令时,我会得到以下异常:

java.net.URLClassLoader.findClass(URLClassLoader.java:381),java.lang.ClassLoader.loadClass(ClassLoader.java:424),java.lang.ClassLoader.loadClass(ClassLoader.java:357),java.lang.Class.forName0(原生方法),java.lang.Class.forName(Class.java:348),org.apache.spark.util.Utils$.classForName(Utils.scala:229),org.apache。spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:700) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我创建的jar包含"NetworkWordCount"类,其代码来自spark示例

代码语言:javascript
复制
package src.main.scala

import org.apache.spark.SparkConf
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.{Seconds, StreamingContext}

object NetworkWordCount {
  def main(args: Array[String]) {
    if (args.length < 2) {
      System.err.println("Usage: NetworkWordCount <hostname> <port>")
      System.exit(1)
    }

    //StreamingExamples.setStreamingLogLevels()

    // Create the context with a 1 second batch size
    val sparkConf = new SparkConf().setAppName("MyNetworkWordCount")
    val ssc = new StreamingContext(sparkConf, Seconds(1))

    val lines = ssc.socketTextStream(args(0), args(1).toInt, StorageLevel.MEMORY_AND_DISK_SER)
    val words = lines.flatMap(_.split(" "))
    val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)
    wordCounts.print()
    ssc.start()
    ssc.awaitTermination()
  }
}

我无法辨认出我做错了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-31 13:08:12

spark-submit参数--class采用完全限定的类名。在上面的代码中,它应该是src.main.scala.NetworkCount

代码语言:javascript
复制
bin/spark-submit --class src.main.scala.NetworkCount --master spark://abc:7077 target/scala-2.11/networkcount_2.11-1.0.jar localhost 9999

注意:使用的包名看起来像是IDE设置问题。src/main/scalascala代码库的典型根,而不是包名。

票数 2
EN

Stack Overflow用户

发布于 2017-07-31 12:25:53

执行星火提交时,确保在当前dir中有"target/scala-2.11/networkcount_2.11-1.0.jar“文件。

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

https://stackoverflow.com/questions/45415366

复制
相关文章

相似问题

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