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:34:51 UTC
svn commit: r1468438 -
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
Author: hashutosh
Date: Tue Apr 16 14:34:50 2013
New Revision: 1468438
URL: http://svn.apache.org/r1468438
Log:
HIVE-4315 : enable doAs in unsecure mode for hive server2, when MR job runs locally (Thejas Nair via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java?rev=1468438&r1=1468437&r2=1468438&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java Tue Apr 16 14:34:50 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 {