写了段简单的代码测试下,连接虚拟机上的Spark standalone:
object SparkHbase {
def main(args: Array[String]) {
System.setProperty("spark.executor.memory", "512m")
System.setProperty("spark.driver.memory", "512m")
val conf = new SparkConf().setAppName("spark-hbase")
.setMaster("spark://ubuntu:7077")
.setJars(Array("E:\javawebapps\SparkRecommerSystem\out\artifacts\sparkrecommersystem_jar\sparkrecommersystem.jar"))
// .setMaster("local[5]")
val sc = new SparkContext(conf)
sc.addJar("E:\javawebapps\SparkRecommerSystem\out\artifacts\sparkrecommersystem_jar\sparkrecommersystem.jar")
//
val data = Array(1, 2, 3, 4, 5, 6)
val dataRDD = sc.parallelize(data)
dataRDD.foreach(println)
sc.stop()
}
}
windows下与虚拟机网络上是互通的,同时我也调用了SparkConf.setJars(),却依旧无法找到我写的这个主类编译后的一个类(SparkHbase$$anonfun$main$1)。
尝试打成Jar包后,使用spark-submit提交,也同样报错。
你没有指定主类,类似于:
--class com.juanpi.bi.streaming.KafkaConsumer
问题报得很明显,找不到 lang包里的类,缺少包或者是jdk环境变量问题
spark-submit中要指定class主类
如果你的driver是你的windows,你的setJar(''e:xxxx)才可用