Author: thejas
Date: Fri Nov 22 02:22:26 2013
New Revision: 1544394

URL: http://svn.apache.org/r1544394
Log:
HIVE-5618 : Hive local task fails to run when run from oozie in a secure 
cluster (Prasad Mujumdar via Thejas Nair)

Modified:
    
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java
    
hive/trunk/shims/0.20/src/main/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java
    
hive/trunk/shims/common-secure/src/main/java/org/apache/hadoop/hive/shims/HadoopShimsSecure.java
    
hive/trunk/shims/common/src/main/java/org/apache/hadoop/hive/shims/HadoopShims.java

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java?rev=1544394&r1=1544393&r2=1544394&view=diff
==============================================================================
--- 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java 
(original)
+++ 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java 
Fri Nov 22 02:22:26 2013
@@ -230,8 +230,7 @@ public class MapredLocalTask extends Tas
 
 
       if(ShimLoader.getHadoopShims().isSecurityEnabled() &&
-          conf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS) == true
-          ){
+          ShimLoader.getHadoopShims().isLoginKeytabBased()) {
         //If kerberos security is enabled, and HS2 doAs is enabled,
         // then additional params need to be set so that the command is run as
         // intended user

Modified: 
hive/trunk/shims/0.20/src/main/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/shims/0.20/src/main/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java?rev=1544394&r1=1544393&r2=1544394&view=diff
==============================================================================
--- 
hive/trunk/shims/0.20/src/main/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java
 (original)
+++ 
hive/trunk/shims/0.20/src/main/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java
 Fri Nov 22 02:22:26 2013
@@ -572,6 +572,11 @@ public class Hadoop20Shims implements Ha
     throwKerberosUnsupportedError();
   }
 
+  @Override
+  public boolean isLoginKeytabBased() throws IOException {
+    return false;
+  }
+
   private void throwKerberosUnsupportedError() throws 
UnsupportedOperationException{
     throw new UnsupportedOperationException("Kerberos login is not supported" +
         " in this hadoop version (" + VersionInfo.getVersion() + ")");

Modified: 
hive/trunk/shims/common-secure/src/main/java/org/apache/hadoop/hive/shims/HadoopShimsSecure.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/shims/common-secure/src/main/java/org/apache/hadoop/hive/shims/HadoopShimsSecure.java?rev=1544394&r1=1544393&r2=1544394&view=diff
==============================================================================
--- 
hive/trunk/shims/common-secure/src/main/java/org/apache/hadoop/hive/shims/HadoopShimsSecure.java
 (original)
+++ 
hive/trunk/shims/common-secure/src/main/java/org/apache/hadoop/hive/shims/HadoopShimsSecure.java
 Fri Nov 22 02:22:26 2013
@@ -537,6 +537,11 @@ public abstract class HadoopShimsSecure 
   }
 
   @Override
+  public boolean isLoginKeytabBased() throws IOException {
+    return UserGroupInformation.isLoginKeytabBased();
+  }
+
+  @Override
   abstract public JobTrackerState getJobTrackerState(ClusterStatus 
clusterStatus) throws Exception;
 
   @Override

Modified: 
hive/trunk/shims/common/src/main/java/org/apache/hadoop/hive/shims/HadoopShims.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/shims/common/src/main/java/org/apache/hadoop/hive/shims/HadoopShims.java?rev=1544394&r1=1544393&r2=1544394&view=diff
==============================================================================
--- 
hive/trunk/shims/common/src/main/java/org/apache/hadoop/hive/shims/HadoopShims.java
 (original)
+++ 
hive/trunk/shims/common/src/main/java/org/apache/hadoop/hive/shims/HadoopShims.java
 Fri Nov 22 02:22:26 2013
@@ -303,6 +303,13 @@ public interface HadoopShims {
    */
   public void reLoginUserFromKeytab() throws IOException;
 
+  /***
+   * Check if the current UGI is keytab based
+   * @return
+   * @throws IOException
+   */
+  public boolean isLoginKeytabBased() throws IOException;
+
   /**
    * Move the directory/file to trash. In case of the symlinks or mount 
points, the file is
    * moved to the trashbin in the actual volume of the path p being deleted


Reply via email to