【发布时间】:2020-07-27 01:30:32
【问题描述】:
我正在开发一个 Java 程序,专门用于在 HDFS 文件系统(位于 HDFS_IP)上使用 Spark。
我的目标之一是检查路径hdfs://HDFS_IP:HDFS_PORT/path/to/file.json 的HDFS 上是否存在文件。在本地调试我的程序时,我发现我无法使用以下代码访问这个远程文件
private boolean existsOnHDFS(String path) {
Configuration conf = new Configuration();
FileSystem fs;
Boolean fileDoesExist = false ;
try {
fs = FileSystem.get(conf);
fileDoesExist = fs.exists(new Path(path)) ;
} catch (IOException e) {
e.printStackTrace();
}
return fileDoesExist ;
}
实际上,fs.exists 试图在我的本地 FS 中而不是 HDFS 中查找文件 hdfs://HDFS_IP:HDFS_PORT/path/to/file.json。顺便说一句,让hdfs://HDFS_IP:HDFS_PORT 前缀使fs.existscrash 并抑制它回答false,因为/path/to/file.json 在本地不存在。
fs 的适当配置是什么才能在本地和从 Hadoop 集群执行 Java 程序时正常工作?
编辑:我终于放弃并将错误修复传递给我团队中的其他人。感谢那些试图帮助我的人!
【问题讨论】:
标签: java apache-spark hadoop hdfs