写了段简单的代码测试下,连接虚拟机上的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提交,也同样报错。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
driver报错还是executor报错,另外master设置了两遍sparkconf里面存的都是url,没有实际存jar包,我一般用nfs解决这个问题,让本地目录一致executor运行task的时候也要加载jar回复<aclass="referer"target="_blank">@GestureWei:不对吖,不应该是driver访问到就好了么,然后由driver发送给executor回复<aclass="referer"target="_blank">@GestureWei:按您的说法,我该怎么做??我是在windows下连接虚拟机上的sparkstandalone回复<aclass="referer"target="_blank">@fshjq:手机没看清楚那个注释,executor报错是因为提交的jar必须在相同的位置,也就是说这个路径在各个节点上都能访问到
楼主 我也遇到了同样的问题 请问你最后解决了吗