Class DrillControllerFactory

java.lang.Object
org.apache.drill.yarn.appMaster.DrillControllerFactory
All Implemented Interfaces:
ControllerFactory

public class DrillControllerFactory extends Object implements ControllerFactory
Builds a controller for a cluster of Drillbits. The AM is designed to be mostly generic; only this class contains knowledge that the tasks being managed are drillbits. This design ensures that we can add other Drill components in the future without the need to make major changes to the AM logic.

The controller consists of a generic dispatcher and cluster controller, along with a Drill-specific scheduler and task launch specification. Drill also includes an interface to ZooKeeper to monitor Drillbits.

The AM is launched by YARN. All it knows is what is in its launch environment or configuration files. The client must set up all the information that the AM needs. Static information appears in configuration files. But, dynamic information (or that which is inconvenient to repeat in configuration files) must arrive in environment variables. See DrillOnYarnConfig for more information.