无法使用spring hadoop连接到远程hdfs

z9ju0rcb  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(302)

我刚刚开始使用hadoop,我正在尝试从远程hdfs(docker容器中的远程hdfs,可以从localhost:32783)通过spring hadoop,我得到以下错误:

org.springframework.data.hadoop.HadoopException: 
Cannot list resources Failed on local exception: 
java.io.EOFException; Host Details : local host is: "user/127.0.1.1";    
destination host is: "localhost":32783;

我正在使用以下代码读取文件:

HdfsClient hdfsClient = new HdfsClient();

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://localhost:32783");
    FileSystem fs = FileSystem.get(conf);
    SimplerFileSystem sFs = new SimplerFileSystem(fs);
    hdfsClient.setsFs(sFs);

    String filePath = "/tmp/tmpTestReadTest.txt";
    String output = hdfsClient.readFile(filePath);

hdfsclient.readfile(filepath)的作用如下:

public class HdfsClient {

        private SimplerFileSystem sFs;

        public String readFile(String filePath) throws IOException {

            FSDataInputStream inputStream = this.sFs.open(filePath);
            output =  getStringFromInputStream(inputStream.getWrappedStream());
            inputStream.close();
        }

        return output;
}

猜猜为什么我不能从远程hdfs读取数据?删除conf.set(“fs.defaultfs”,”hdfs://localhost:32783"); 我可以读取,但只能从本地文件路径读取。
我知道hdfs://localhost:32783“是正确的,因为通过随机uri更改它会导致连接被拒绝错误
我的hadoop配置可能有问题吗?
谢谢您!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题