我是新的星火流,并试图运行一个例子从这教程,我是跟随制作和运行我们自己的NETWORKWORDCOUNT。我完成了第八步,用sbt做了一个罐子。
现在,我正尝试使用第9步中的命令来部署jar,如下所示:
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示例
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()
}
}我无法辨认出我做错了什么。
发布于 2017-07-31 13:08:12
spark-submit参数--class采用完全限定的类名。在上面的代码中,它应该是src.main.scala.NetworkCount
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/scala是scala代码库的典型根,而不是包名。
发布于 2017-07-31 12:25:53
执行星火提交时,确保在当前dir中有"target/scala-2.11/networkcount_2.11-1.0.jar“文件。
https://stackoverflow.com/questions/45415366
复制相似问题