Repository: incubator-ignite Updated Branches: refs/heads/ignite-218 27ad40871 -> 688585e78
[IGNITE-218]: temp workaround set. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/688585e7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/688585e7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/688585e7 Branch: refs/heads/ignite-218 Commit: 688585e7848c347ec2ea697dc88a1f065e74a25c Parents: 27ad408 Author: iveselovskiy <iveselovs...@gridgain.com> Authored: Thu Apr 16 22:37:04 2015 +0300 Committer: iveselovskiy <iveselovs...@gridgain.com> Committed: Thu Apr 16 22:37:04 2015 +0300 ---------------------------------------------------------------------- .../hadoop/fs/v1/IgniteHadoopFileSystem.java | 22 +++++++++++++++----- .../hadoop/fs/v2/IgniteHadoopFileSystem.java | 2 +- .../hadoop/v2/HadoopV2JobResourceManager.java | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/688585e7/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v1/IgniteHadoopFileSystem.java ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v1/IgniteHadoopFileSystem.java b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v1/IgniteHadoopFileSystem.java index c53aabf..6fd6d1b 100644 --- a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v1/IgniteHadoopFileSystem.java +++ b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v1/IgniteHadoopFileSystem.java @@ -22,6 +22,7 @@ import org.apache.hadoop.fs.*; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.permission.*; import org.apache.hadoop.hdfs.*; +import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.security.*; import org.apache.hadoop.util.*; import org.apache.ignite.*; @@ -175,12 +176,23 @@ public class IgniteHadoopFileSystem extends FileSystem { * Gets non-null and interned user name as per the Hadoop file system viewpoint. * @return the user name, never null. */ - public static String getFsHadoopUser() throws IOException { + public static String getFsHadoopUser(Configuration cfg) throws IOException { String user = null; - UserGroupInformation currUgi = UserGroupInformation.getCurrentUser(); - if (currUgi != null) - user = currUgi.getShortUserName(); + // ------------------------------------------- + // TODO: Temporary workaround. + // We have an issue there: sometimes FileSystem created from MR jobs gets incorrect + // UserGroupInformation.getCurrentUser() despite of the fact that it is invoked in correct + // ugi.doAs() closure. + if (cfg != null) + user = cfg.get(MRJobConfig.USER_NAME); + // ------------------------------------------- + + if (user == null) { + UserGroupInformation currUgi = UserGroupInformation.getCurrentUser(); + if (currUgi != null) + user = currUgi.getShortUserName(); + } user = IgfsUserContext.fixUserName(user); @@ -229,7 +241,7 @@ public class IgniteHadoopFileSystem extends FileSystem { uriAuthority = uri.getAuthority(); - user = getFsHadoopUser(); + user = getFsHadoopUser(cfg); // Override sequential reads before prefetch if needed. seqReadsBeforePrefetch = parameter(cfg, PARAM_IGFS_SEQ_READS_BEFORE_PREFETCH, uriAuthority, 0); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/688585e7/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v2/IgniteHadoopFileSystem.java ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v2/IgniteHadoopFileSystem.java b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v2/IgniteHadoopFileSystem.java index 8330143..f3fbe9c 100644 --- a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v2/IgniteHadoopFileSystem.java +++ b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/v2/IgniteHadoopFileSystem.java @@ -144,7 +144,7 @@ public class IgniteHadoopFileSystem extends AbstractFileSystem implements Closea uri = name; - user = getFsHadoopUser(); + user = getFsHadoopUser(cfg); try { initialize(name, cfg); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/688585e7/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/HadoopV2JobResourceManager.java ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/HadoopV2JobResourceManager.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/HadoopV2JobResourceManager.java index 340891a..0b2f7df 100644 --- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/HadoopV2JobResourceManager.java +++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/HadoopV2JobResourceManager.java @@ -103,7 +103,7 @@ public class HadoopV2JobResourceManager { String user = cfg.get(MRJobConfig.USER_NAME); if (user == null) - user = IgniteHadoopFileSystem.getFsHadoopUser(); + user = IgniteHadoopFileSystem.getFsHadoopUser(cfg); user = user.intern();