2014-12-03 51 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

相关问题