Hadoop:FileSystem.get方法抛出IOException

时间:2015-08-23 08:04:06

标签: java hadoop hdfs

我是Hadoop的新手。我试图在简单代码下面运行,但继续获取IOException,消息为No FileSystem for scheme: file。我在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方法。

1 个答案:

答案 0 :(得分:0)

// 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

让我知道如果不工作