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

10-12 22:40