2016-03-06 77 views
0

我一直试图在火花独立的一个简单的wordcount应用程序。 我有1个Windows机器和1个Linux机器, Windows运行主机&奴隶 Linux运行从机。火花独立无hdfs

连接非常简单。 我尽量避免使用hdfs,但我确实想在集群上工作。 到目前为止我的代码是:

String fileName = "full path at client"; 
    File file = new File(fileName); 
    Path filePath = new Path(file); 
    String uri= filePath.toURI().toString(); 
    SparkConf conf = new sparkConf().setAppName("stam").setMaster("spark://192.168.15.17:7077").setJars(new String[] { ..,.. }); 
    sc = new JavaSparkContext(conf); 
    sc.addFile(uri); 
    JavaRDD<String> textFile = sc.textFile(SparkFiles.get(getOnlyFileName(fileName))).cache(); 

这种失败

输入路径不存在:........ 或 java.net.URISyntaxException:绝对相对路径URI

要看什么我尝试,错误的是从Linux从

任何想法,如果这可能吗? 该文件正被复制到所有从属工作目录。 请帮忙

+0

你能打印uri的内容吗?它是以file:///开头的吗? – urug

+0

另外,你确定两台机器都能够使用你提供'textFile'的路径来访问文件吗? – climbage

+0

这就是问题所在,我找不到文本文件方法的正确输入!,我刚刚通过addFile添加了文件,而SparkFiles.get只返回原始驱动程序机器(OS窗口)的路径。我知道文件已经发送到执行器的workDir中的文件目录,为什么路径不是相对的?或者为什么我不能使用%workFiles%文件名,或者其他什么。 – minsky

回答

0

这是不能做到的。 我已经从独立移到纱线