SchedulerFactory工厂类负责创建所有的Scheduler实例。SchedulerFactory本身采用了Singleton设计模式,保证全局唯一实例,与Scheduler和其实现类之前形成了“简单工厂”设计模式:
每个具体的Interpreter实现类在获取Scheduler实例时,都由自己决定初始化哪种类型的Scheduler实例:
(PS:图中的SparkInterpreter是采用FIFOScheduler的代表,HiveInterpreter是采用ParallelScheduler的代表,而RemoteInterpreterInterpreter是唯一采用RemoteScheduler的)
各个Scheduler的共同点是:
1) 都是基于“共享缓冲区的生产者——消费者”模型,该模型中的几个角色对应如下:
a) 产品:org.apache.zeppelin.scheduler.