Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
The ContainerExecutor interface today does not encapsulate method arguments in any way - this makes it brittle when executor implementations need additional arguments in order to implement certain functionality. A couple of example methods where this is a problem : startLocalizer , launchContainer - additional arguments would break the existing interface and would require changes to all executor implementations in YARN. In order to make this interface less brittle in the future, it would make sense to encapsulate arguments in some kind of a ‘context’ object which could be modified/extended without breaking the ContainerExecutor interface in the future.
Edit as per comment below : Along with this, we should also cleanup the abstraction to look more like an abstraction instead of a bolt-on--and-add-what-you-want kind of interface.