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

    https://github.com/apache/spark/pull/16923#discussion_r102358534
  
    --- Diff: 
sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala 
---
    @@ -106,21 +106,27 @@ private[hive] class HiveClientImpl(
     
         // Set up kerberos credentials for UserGroupInformation.loginUser 
within
         // current class loader
    -    // Instead of using the spark conf of the current spark context, a new
    -    // instance of SparkConf is needed for the original value of 
spark.yarn.keytab
    -    // and spark.yarn.principal set in SparkSubmit, as yarn.Client resets 
the
    -    // keytab configuration for the link name in distributed cache
    -    if (sparkConf.contains("spark.yarn.principal") && 
sparkConf.contains("spark.yarn.keytab")) {
    +    if (sparkConf.contains("spark.yarn.principal")) {
    --- End diff --
    
    I see. Man this is messy. Is there a better way to check where this code is 
running so that you don't have to to fs checks to see if the files exist? 
There's a very unlikely possibility that on the AM side "spark.yarn.keytab" 
might point at a real file that is not the desired keytab...
    
    I also noticed that in the client case, it doesn't seem like delegation 
token renewal will work. I'm not sure how well that works in general in client 
mode anyway, but might be something worth tracking in a separate bug.


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