Github user vanzin commented on a diff in the pull request:
https://github.com/apache/spark/pull/17665#discussion_r112282249
--- Diff: core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala ---
@@ -564,12 +566,22 @@ object SparkSubmit extends CommandLineUtils {
// properties and then loaded by SparkConf
sysProps.put("spark.yarn.keytab", args.keytab)
sysProps.put("spark.yarn.principal", args.principal)
-
- UserGroupInformation.loginUserFromKeytab(args.principal,
args.keytab)
}
}
}
+
+ // [SPARK-20328]. HadoopRDD calls into a Hadoop library that fetches
delegation tokens with
+ // renewer set to the YARN ResourceManager. Since YARN isn't
configured in Mesos mode, we
+ // must trick it into thinking we're YARN.
+ if (clusterManager == MESOS && UserGroupInformation.isSecurityEnabled)
{
+ val shortUserName =
UserGroupInformation.getCurrentUser.getShortUserName
+ val key = s"spark.hadoop.${YarnConfiguration.RM_PRINCIPAL}"
--- End diff --
The renewer for delegation tokens should be the user that created them (if
the service is not doing it for the user, like in the YARN case); only the
logged in user can create tokens, so this has to be the current user (not the
proxy user, which happens later).
The tokens should be created in the proxy user's name (so user = "proxy"
renewer = "real user"), when you care to support that.
> Once I add renewal
So do you mean that currently this only works until the delegation tokens
need renewal (which is 1 day by default - a lot shorter than the max life time)?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]