用idea调试Spark时,遇到java.lang.ClassNotFoundException??

fshjq 发布于 2017/03/03 13:00
阅读 746
收藏 0

写了段简单的代码测试下,连接虚拟机上的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提交,也同样报错。

加载中
0
GestureWei
GestureWei
driver报错还是executor报错,另外master设置了两遍
GestureWei
GestureWei
sparkconf里面存的都是url,没有实际存jar包,我一般用nfs解决这个问题,让本地目录一致
GestureWei
GestureWei
executor运行task的时候也要加载jar
fshjq
fshjq
回复 @GestureWei : 不对吖,不应该是driver访问到就好了么,然后由driver发送给executor
fshjq
fshjq
回复 @GestureWei : 按您的说法,我该怎么做??我是在windows下连接虚拟机上的spark standalone
GestureWei
GestureWei
回复 @fshjq : 手机没看清楚那个注释,executor报错是因为提交的jar必须在相同的位置,也就是说这个路径在各个节点上都能访问到
下一页
返回顶部
顶部