Github user vanzin commented on the pull request:
https://github.com/apache/spark/pull/4188#issuecomment-73335694
Yeah, Yarn makes a mess out of this. Basically, it does this:
val args = List("abd", "def", "g h")
val cmd = args.mkString(" ")
So even though you have 3 arguments in `args`, the actual execution will
have 4 when interpreted by the shell. So the code in `ExecutorRunnable` works
because it just builds a big command line, instead of trying to parse that
command line into a proper argument list with `Utils.splitCommandString`.
Anyway, Yarn's API is broken but it is what it is, so we have to work with
it. It would be nice if both `Client` and `ExecutorRunnable` used the same
approach, for consistency, but not needed to fix this issue.
---
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]