Github user harishreedharan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/4688#discussion_r27252140
  
    --- Diff: yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala ---
    @@ -540,6 +563,26 @@ private[spark] class Client(
         amContainer
       }
     
    +  def setupCredentials(): Unit = {
    +    if (args.principal != null) {
    +      require(args.keytab != null, "Keytab must be specified when 
principal is specified.")
    +      logInfo("Attempting to login to the Kerberos" +
    +        s" using principal: ${args.principal} and keytab: ${args.keytab}")
    +      val f = new File(args.keytab)
    +      // Generate a file name that can be used for the keytab file, that 
does not conflict
    +      // with any user file.
    +      val keytabFileName = f.getName + "-" + UUID.randomUUID().toString
    +      val ugi = 
UserGroupInformation.loginUserFromKeytabAndReturnUGI(args.principal, 
args.keytab)
    +      credentials = ugi.getCredentials
    +      loginFromKeytab = true
    +      sparkConf.set("spark.yarn.keytab", keytabFileName)
    --- End diff --
    
    The main reason I kept this as command line args is that it makes it easy 
for a user to use the same config file for different apps which may use 
different credentials. I have seen some customers do this, and in some cases 
may want to use different credentials to write to HDFS from different apps(and 
don't want proxying). I wouldn't mind supporting both, with the command line 
params overriding the conf values, but I'd rather do that in a separate PR.


---
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]

Reply via email to