我进行了很多搜索,但未能找到解决此问题的方法。 实际上我想要访问的文件位于HDFS中,但不在输入路径(输入到map/reduce作业的路径)中。我想从映射器访问它。 输入路径中指定的 hdfs 路径可以从映射器完全访问,但其他 hdfs 文件则不能。
内部映射器:-
FileSystem FS1=FileSystem.get(conf);
Path path=new Path(""+FS1.getHomeDirectory());
FSDataInputStream fsdis=FS1.open(path);
导致以下错误: java.io.IOException:无法打开文件名/user/hadoop
提前致谢, 严酷
最佳答案
我记得使用this tutorial得到类似的工作。你可以尝试一下,它与你写的只有一些区别,但仍然可能有帮助......
@Edit:啊,我刚刚注意到(在阅读评论后)您正在尝试打开 FS1.getHomeDirectory()
那是一个目录。我认为您应该指出文件而不是目录(您可以在“从文件读取数据”下的链接教程中查看它)。
关于java - 无法从映射器 Hadoop 打开 HDFS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9181058/