java – hdfs中的文件路径

我想从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());

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...