问题描述
我在linux上安装了spark,单节点,master节点也是worker节点,ip是192.168.90.74.使用spark-shell的时候很正常。我想在eclipse开发spark程序并且直接运行调试,但遇到了各种问题,向大家求教。我程序运行在自己的笔记本上,ip是192.168.90.88,我的测试程序如下:System.setProperty("user.name","webuser");JavaSparkContextct=newJavaSparkContext("spark://192.168.90.74:7077","test--1","/home/webuser/spark/spark-1.5.2-bin-hadoop2.4","C://newWorkSpace/java.spark.test/target/java.spark.test-0.0.1-SNAPSHOT.jar");Listlist=newArrayList();list.add(1);list.add(6);list.add(9);JavaRDD<String>rdd=ct.parallelize(list);System.out.println(rdd.collect());rdd.saveAsTextFile("/home/webuser/temp");ct.close();
1.运行的时候要把jar包加进去,这里是使用sparkContext的构造函数加进来的。请问这个jar包必须事先上传到master上然后使用master上的路径吗?2.当我把jar路径指定为maste上jar包路径的时候程序才可以运行,之前一直报错找不到盘符c。运行后又有新问题,程序成功的打出了collect结果,但是saveAsTextFile结果不正确,他在我开发的电脑的c盘下面创建了/home/webuser/temp文件夹,没有在运行spark的server上创建,请问这是什么原理?我的理解rdd的action应该运行在worker节点,而我程序运行的地方是driver,为啥他会在driver上创建文件而不是在worker上?