我是Hadoop的新手。我正在尝试在简单的代码下运行,但是随着消息No FileSystem for scheme: file
的出现而导致IOException不断增加。我在Ubuntu上运行单节点Hadoop 2.7.0。我怀疑这是配置问题。任何快速帮助将不胜感激。我已经搜索了StackOverflow,但没有找到合适的答案。
// Check if a file exists
public boolean exists() throws IOException {
boolean isExists = false;
try{
FileSystem hdfs = FileSystem.get(new Configuration());
Path newPath = new Path(hdfsRoot,file.getName());
isExists = hdfs.exists(newPath);
hdfs.close();
}catch(IOException ex){
// log exception and then re-throw
throw ex;
}
return isExists;
}
抛出IOException的是FileSystem.get方法。
最佳答案
// Check if a file exists
public boolean exists() throws IOException {
boolean isExists = false;
try{
FileSystem hdfs = FileSystem.get(new URI("hdfs://localhost:9000"),new Configuration());
Path newPath = new Path("/test.txt");
isExists = hdfs.exists(newPath);
hdfs.close();
}catch(IOException ex){
// log exception and then re-throw
throw ex;
}
return isExists;
}
注意-hdfsRoot应该是
hdfs://localhost:9000
,而file.getName()应该是您的文件名。表示您的文件位置应为hdfs:// localhost:9000 / test.txt让我知道是否行不通
关于java - Hadoop:FileSystem.get方法抛出IOException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32164500/