Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/18648#discussion_r131814291
--- Diff: core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala ---
@@ -581,17 +581,15 @@ object SparkSubmit extends CommandLineUtils {
if (clusterManager == YARN || clusterManager == LOCAL) {
if (args.principal != null) {
require(args.keytab != null, "Keytab must be specified when
principal is specified")
- if (!new File(args.keytab).exists()) {
- throw new SparkException(s"Keytab file: ${args.keytab} does not
exist")
- } else {
- // Add keytab and principal configurations in sysProps to make
them available
- // for later use; e.g. in spark sql, the isolated class loader
used to talk
- // to HiveMetastore will use these settings. They will be set as
Java system
- // 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)
+ Try { SparkHadoopUtil.get.loginUserFromKeytab(args.principal,
args.keytab)} match {
+ case Success(_) =>
+ // Add keytab and principal configurations in sysProps to make
them available
+ // for later use; e.g. in spark sql, the isolated class loader
used to talk
+ // to HiveMetastore will use these settings. They will be set
as Java system
+ // properties and then loaded by SparkConf
+ sysProps.put("spark.yarn.keytab", args.keytab)
+ sysProps.put("spark.yarn.principal", args.principal)
+ case Failure(exception) => throw exception
--- End diff --
we can just write
```
SparkHadoopUtil.get.loginUserFromKeytab(args.principal, args.keytab)
// the comments ...
sysProps.put("spark.yarn.keytab", args.keytab)
sysProps.put("spark.yarn.principal", args.principal)
```
---
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]