diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java b/metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java index 25119abf97382df7c0615edbaff29ba20624a137..2c4f6afd24d7b84a42d9c843767939b60a1c6876 100755 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java @@ -21,6 +21,7 @@ import static org.apache.hadoop.hive.metastore.MetaStoreUtils.DATABASE_WAREHOUSE_SUFFIX; import static org.apache.hadoop.hive.metastore.MetaStoreUtils.DEFAULT_DATABASE_NAME; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.AbstractList; @@ -138,8 +139,16 @@ public static void closeFs(FileSystem fs) throws MetaException { */ public static Path getDnsPath(Path path, Configuration conf) throws MetaException { FileSystem fs = getFs(path, conf); - return (new Path(fs.getUri().getScheme(), fs.getUri().getAuthority(), path - .toUri().getPath())); + + Path absolutePath; + if (path.isAbsolute()) { + absolutePath = path; + } else { + String warehouseRootPathString = HiveConf.getVar(conf, HiveConf.ConfVars.METASTOREWAREHOUSE); + absolutePath = new Path(warehouseRootPathString, path); + } + + return (new Path(fs.getUri().getScheme(), fs.getUri().getAuthority(), absolutePath.toUri().getPath())); } public Path getDnsPath(Path path) throws MetaException {