我想从Hadoop文件系统中读取文件.
为了实现文件的正确路径,我需要hdfs的主机名和端口地址.
所以最后我的路径的文件将看起来像
Path path = new Path("hdfs://123.23.12.4344:9000/user/filename.txt")
现在我想知道提取HostName =“123.23.12.4344”&港口:9000?
基本上,我想访问Amazon EMR上的FileSystem,但是当我使用
FileSystem fs = FileSystem.get(getConf());
我得到
You possibly called FileSystem.get(conf) when you should have called FileSystem.get(uri,conf) to obtain a file system supporting your path
所以我决定使用URI. (我必须使用URI),但我不知道如何访问URI.
解决方法
您可以使用两种方法来解决您的错误.
1.
String infile = "file.txt"; Path ofile = new Path(infile); FileSystem fs = ofile.getFileSystem(getConf());
2.
Configuration conf = getConf(); System.out.println("fs.default.name : - " + conf.get("fs.default.name")); // It prints uri as : hdfs://10.214.15.165:9000 or something... String uri = conf.get("fs.default.name"); FileSystem fs = FileSystem.get(uri,getConf());