You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/04/16 16:36:25 UTC
svn commit: r1468440 -
/hive/branches/branch-0.11/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
Author: hashutosh
Date: Tue Apr 16 14:36:25 2013
New Revision: 1468440
URL: http://svn.apache.org/r1468440
Log:
HIVE-4315 : enable doAs in unsecure mode for hive server2, when MR job runs locally (Thejas Nair via Ashutosh Chauhan)
Modified:
hive/branches/branch-0.11/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
Modified: hive/branches/branch-0.11/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.11/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java?rev=1468440&r1=1468439&r2=1468440&view=diff
==============================================================================
--- hive/branches/branch-0.11/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java (original)
+++ hive/branches/branch-0.11/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java Tue Apr 16 14:36:25 2013
@@ -58,6 +58,8 @@ import org.apache.hadoop.hive.ql.session
import org.apache.hadoop.hive.serde2.ColumnProjectionUtils;
import org.apache.hadoop.hive.serde2.objectinspector.InspectableObject;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.shims.HadoopShims;
+import org.apache.hadoop.hive.shims.ShimLoader;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.util.ReflectionUtils;
@@ -195,6 +197,14 @@ public class MapredLocalTask extends Tas
// }
+ //Set HADOOP_USER_NAME env variable for child process, so that
+ // it also runs with hadoop permissions for the user the job is running as
+ // This will be used by hadoop only in unsecure(/non kerberos) mode
+ HadoopShims shim = ShimLoader.getHadoopShims();
+ String endUserName = shim.getShortUserName(shim.getUGIForConf(job));
+ console.printInfo("setting HADOOP_USER_NAME\t" + endUserName);
+ variables.put("HADOOP_USER_NAME", endUserName);
+
if (variables.containsKey(HADOOP_OPTS_KEY)) {
variables.put(HADOOP_OPTS_KEY, variables.get(HADOOP_OPTS_KEY) + hadoopOpts);
} else {