Index: common/src/java/org/apache/hadoop/hive/conf/HiveConf.java =================================================================== --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (revision 1221148) +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (working copy) @@ -552,6 +552,7 @@ // Whether to delete the scratchdir while startup HIVE_START_CLEANUP_SCRATCHDIR("hive.start.cleanup.scratchdir", false), HIVE_INSERT_INTO_MULTILEVEL_DIRS("hive.insert.into.multilevel.dirs", false), + HIVE_FILES_UMASK_VALUE("hive.files.umask.vlaue", 0002), ; public final String varname; Index: conf/hive-default.xml.template =================================================================== --- conf/hive-default.xml.template (revision 1221148) +++ conf/hive-default.xml.template (working copy) @@ -1191,4 +1191,10 @@ "insert directory '/HIVEFT25686/chinna/' from table" + + hive.files.umask.vlaue + 0002 + The dfs.umask value for the hive created folders + + Index: metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java (revision 1221148) +++ metastore/src/java/org/apache/hadoop/hive/metastore/Warehouse.java (working copy) @@ -41,6 +41,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.FsAction; +import org.apache.hadoop.fs.permission.FsPermission; import org.apache.hadoop.hive.common.FileUtils; import org.apache.hadoop.hive.common.JavaUtils; import org.apache.hadoop.hive.conf.HiveConf; @@ -171,6 +172,9 @@ try { fs = getFs(f); LOG.debug("Creating directory if it doesn't exist: " + f); + short umaskVal = (short) conf.getInt(HiveConf.ConfVars.HIVE_FILES_UMASK_VALUE.name(), 0002); + FsPermission fsPermission = new FsPermission(umaskVal); + FsPermission.setUMask(conf, fsPermission); return (fs.mkdirs(f) || fs.getFileStatus(f).isDir()); } catch (IOException e) { closeFs(fs);