Affects Version/s: None
Fix Version/s: 0.8.0-alpha
The Tez engine itself takes care of co-ordinating execution - controlling how data gets routed (different connection patterns), fault tolerance, scheduling of work, etc.
This is currently tied to TaskSpecs defined within Tez and on containers launched by Tez itself (TezChild).
The proposal is to allow Tez to work with external services instead of just containers launched by Tez. This involves several more pluggable layers to work with alternate Task Specifications, custom launch and task allocation mechanics, as well as custom scheduling sources.
A simple example would be a simple a process with the capability to execute multiple Tez TaskSpecs as threads. In such a case, a container launch isn't really need and can be mocked. Sourcing / scheduling containers would need to be pluggable.
A more advanced example would be LLAP (
This works with custom interfaces - which would need to be supported by Tez, along with a custom event model which would need translation hooks.
Tez should be able to work with a combination of certain vertices running in external services and others running in regular Tez containers.