2016-03-06 76 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

這是不能做到的。 我已經從獨立移到紗線