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