Hi Soheil,

That is a correct behavior. The full qualified path of you home directory in 
HDFS is "{fs.defaultFS} + /user/myUserName" and getHomeDirectory complements it.

You can access paths by a few ways.
======
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://nn-hostname");
FileSystem fs = FileSystem.get(conf);

// your home directory
fs.getFileStatus(new Path("."))  // relative path
fs.getFileStatus(new Path("/user/myUserName"))  // absolute path
fs.getFileStatus(new Path("hdfs://nn-hostname/user/myUserName"))  // full path

// root directory
fs.getFileStatus(new Path("/"))  // absolute path
fs.getFileStatus(new Path("hdfs://nn-hostname/"))  // full path
======

Thanks,
- Takanobu

From: Soheil Pourbafrani [mailto:soheil.i...@gmail.com]
Sent: Monday, May 28, 2018 7:55 PM
To: user@hadoop.apache.org
Subject: Wrong Root Directory in HDFS API

Hi,

I use HDFS java API to do some process. I pass HDFS configuration file 
(core-site.xml and hdfs-site.xml) as Configuration. My Hadoop property

fs.defaultFS
has the value

hdfs://ha-cluster
but when I get HDFS home directory like the following:

FileSystem.get(conf).getHomeDirectory();
It has the value

hdfs://ha-cluster/user/myUserName
!!!

What is the reason and how can I set correct home directory?


Reply via email to