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

    https://github.com/apache/spark/pull/20945#discussion_r178675596
  
    --- Diff: 
resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterScheduler.scala
 ---
    @@ -506,6 +506,10 @@ private[spark] class MesosClusterScheduler(
           options ++= Seq("--class", desc.command.mainClass)
         }
     
    +    desc.conf.getOption("spark.mesos.proxyUser").foreach { v =>
    +      options ++= Seq("--proxy-user", v)
    --- End diff --
    
    This looks a little odd. How's a cluster mode app run in Mesos?
    
    Basically what I want to know:
    - which process starts the driver
    - what user that process is running as, and which user will the driver 
process run as
    - what kerberos credentials does it have and how are they managed
    
    The gist is that running the Spark driver in client mode (which I think is 
how the driver in cluster mode is started eventually?) with a proxy user is a 
weird combination. It means the user code running in that driver has access to 
the credentials of the more privileged user - and could in its turn use those 
to run anything as any other user...
    
    In comparison, YARN + cluster mode + proxy user starts the YARN application 
as the proxy user. So the user code, which only runs in a YARN container, has 
no access to the privileged credentials, which only exist in the launcher.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to