2011-08-01 121 views
1

我希望寫一個文件,並通過併購的MapReduce代碼創建我的本地文件系統中的目錄。另外,如果我在作業執行期間在工作目錄中創建目錄,那麼在清理之前如何將其移至本地文件系統。如何使本地文件系統的映射寫在Hadoop中

+0

如果整個交易是在您的計算機上,您可以在本地模式下運行的Hadoop(相對於分佈式),一切都將被寫入到本地文件系統。 – delmet

回答

1

當你的映射器的一些運行/集羣中的任何一臺機器,當然你也可以使用基本的Java文件操作寫入文件。您可以使用org.apache.hadoop.hdfs.DFSClient訪問HDFS上的任何文件以複製到本地文件(我建議您在HDFS中複製並在作業完成後從其中獲取任何文件)。

當然,你的本地文件將是本地的客戶機(我假設不同的機器上),那麼將需要像NFS讓書面文件提供給您的任何客戶端上。注意併發問題。

-1

我很感興趣在datanode本地寫入文件。對於這一點,我用java.io.FileWriter和java.io.BufferedWriter中:

FileWriter fstream = new FileWriter("log.out",true); 
BufferedWriter bout = new BufferedWriter(fstream);    
bout.append(build.toString()); 
bout.close(); 

通過月食執行時,它只創建該文件。當使用下一個命令作爲.jar運行時:

hadoop jar jarFile.jar Mainclass 

它不會創建任何內容。我不知道它是否是一個misexecution,錯誤配置的問題,或者只是某事物缺少

其實這只是創建調試日誌文件。我想讓datanode在本地寫入的實際文件是通過Runtime.getRuntime()創建的。然而,同樣的事情發生。如果通過eclipse進行執行,那就沒問題。在eclipse之外,它看起來很好,但沒有創建任何文件。

在做之前就應該在單個節點上運行的羣集上,所以整個事情是東德一臺計算機上現在。

+0

親愛的埃琳娜,您應該添加此評論而不是回覆。仔細想想!這是這個問題的答案嗎? – Chamil

相關問題