2013-05-01 45 views
0

使用Hadoop流:hadoop是否自動複製輸入文件不在HDFS上?

hadoop jar hadoop/contrib/streaming/hadoop-streaming-1.0.3.jar -file mapper.rb -mapper mapper.rb -file reducer.rb -reducer reducer.rb -input textfile.txt -output output 

假設我在目錄 「/ home/user中/ SEI /文檔」 和TextFile.txt的

1) is in the same folder as the directory I am currently in 
2) I did not use -copyFromLocal to put textfile.txt into HDFS 

是否Hadoop的自動複製輸入文件(在這種情況下textfile.txt)到HDFS上的某個位置(即執行時自動執行「/user/sei/textfile.txt」)以用於處理?這是否適用於所有hadoop命令(即hadoop jar jarfile myfilename

回答

1

否它不會將記錄複製到HDFS中,您必須自行完成。如果您在一臺機器上運行單個節點或僞分佈式羣集,則應該使用本地文件路徑。但是,如果您正在運行分佈式集羣,則映射器和縮減器將無法找到該文件。

+0

如果我正在運行一個節點,爲什麼一臺機器/單節點集羣可以使用本地文件路徑?我認爲擁有HDFS的關鍵在於hadoop需要HDFS上的所有文件?由於數據在NFS上是本地的,因此hadoop不能找到該文件? – Setsuna 2013-05-01 04:06:52

+2

如果它是一個本地文件,它仍然可以訪問該節點,而不是其他節點。對於HDFS本身,Hadoop分佈式文件系統,羣集中的所有節點都可以訪問那裏的文件。 HDFS的主要特點是複製,分佈式可訪問性和其他一些功能,但對於hadoop在單臺機器上運行並不是必需的。 – greedybuddha 2013-05-01 04:19:14

+0

最啓發,貪婪。 – Setsuna 2013-05-01 04:26:14