2014-12-03 72 views
0

我想將日誌文件從windows/unix環境複製到特定目錄結構中的HDFS。我知道我可以在hadoop shell中做copyFromLocal,但是可以通過使用Mapper的java代碼來完成。如何通過hadoop mapreduce作業訪問windows/unix目錄中的文本文件

+0

爲什麼你會使用映射做的東西?你不能編寫腳本來做copyFromLocal嗎? – SMA 2014-12-03 08:39:32

+0

我不想使用任何shell腳本..只是純Java代碼。 – abhijeet 2014-12-03 08:44:20

+0

是的腳本,並從Java調用? – SMA 2014-12-03 08:46:46

回答

3

如果你的意思是複製從本地計算機本地文件(或目錄)到HDFS,這裏是代碼:

Configuration conf = new Configuration(); 
    FileSystem fs = FileSystem.get(conf); 
    Path localPath = new Path("your_local_path"); 
    Path remotePath = new Path("your_hdfs_path"); 
    fs.copyFromLocalFile(localPath, remotePath); 
+0

謝謝..請問你能告訴我你的意思是說它應該在驅動程序中調用嗎? – abhijeet 2014-12-03 09:40:59

+0

因爲映射程序可以在羣集中的任何節點上運行,所以映射程序的「本地」不是確定性的。該驅動程序將在您的本地機器上運行。所以你應該在其中調用'copyFromLocalFile'。 – zsxwing 2014-12-03 09:46:00

+0

完美...謝謝:) – abhijeet 2014-12-03 10:38:02

相關問題