2016-05-05 14 views
2

我有一個csv文件「test.csv」,我試圖複製到集羣上的所有節點。爲什麼「sc.addFile」和「spark-submit -files」不向所有工作人員分發本地文件?

我有一個4節點apache-spark 1.5.2獨立羣集。一個節點也有4名工作人員有主/司機以及工人。

如果我運行:

$SPARK_HOME/bin/pyspark --files=./test.csv OR從REPL界面內執行sc.addFile('file://' + '/local/path/to/test.csv')

我看到火花記錄以下:

16/05/05 15:26:08 INFO Utils: Copying /local/path/to/test.csv to /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv 
16/05/05 15:26:08 INFO SparkContext: Added file file:/local/path/to/test.csv at http://192.168.1.4:39578/files/test.csv with timestamp 1462461968158 

在關於主/驅動器節點我一個單獨的窗口可以使用ls輕鬆定位文件,即(ls -al /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv)。

但是如果我登錄到工人,有在/tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv沒有文件,甚至沒有在/tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b

一個文件夾,但Apache的火花Web界面,顯示工作運行和核心的所有節點,也沒有分配其他警告或錯誤出現在控制檯中。

+1

我相信每個工作者都會獨立管理用戶文件。日誌行'Copying /local/path/to/test.csv(...)'只發生在驅動程序中。然後,每個工作人員將根據其配置將文件存儲在不同的位置,並將其名稱指向正確的位置。 –

+0

啊我以爲它到處都使用確定性的文件夾結構,謝謝 – whisperstream

回答

2

正如丹尼爾所評論的,每個工作人員都以不同的方式管理文件。如果你想訪問添加的文件,那麼你可以使用SparkFiles.get(file)。如果你想看看你的文件目錄是哪個目錄,那麼你可以打印輸出SparkFiles.getDirectory

相關問題