我正在尝试将文件从 HDFS 复制到本地文件系统进行预处理。下面的代码应该根据文档工作。尽管它没有给出任何错误消息并且映射缩减作业运行顺利,但我在本地硬盘驱动器上看不到任何输出。您认为问题出在哪里?谢谢。
try {
Path phdfs_input = new Path("hdfs://master:54310/user/hduser/conninput/"+value.toString());
Path plocal_input = new Path("/home/hduser/Desktop/"+avlue.toString());
FileSystem fs = FileSystem.get(context.getConfiguration());
fs.copyToLocalFile(phdfs_input, plocal_input);
/* String localoutput_file = "/home/hduser/Destop/output/"+value.toString();
String cmd1[] = {"mafia", "-mfi", ".5", "-ascii", "~/Desktop/"+value.toString(), localoutput_file };
File mafia_dir = new File("/home/hduser/");
ShellCommandExecutor s = new ShellCommandExecutor(cmd1, mafia_dir);*/
} catch (Exception e) {
e.printStackTrace();
}
最佳答案
尝试在 Path
构造函数中使用 /user/hduser/conninput/"+value.toString()
而不是提供 master:54310
部分。它应该从 Configuration
中找出 master:54310
。
关于hadoop - 使用JAVA将文件从HDFS复制到本地文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9494304/