package com.neverwinterdp.scribengin.cluster; import org.slf4j.Logger; import com.google.inject.Injector; import com.google.inject.Inject; import com.neverwinterdp.scribengin.ScribeMaster; import com.neverwinterdp.scribengin.ScribeConsumerManager.ClusterScribeConsumerManager; import com.neverwinterdp.scribengin.ScribeConsumerManager.YarnScribeConsumerManager; import com.neverwinterdp.scribengin.scribeconsumer.ScribeConsumerConfig; import com.neverwinterdp.server.service.AbstractService; import com.neverwinterdp.server.module.ModuleProperties; import com.neverwinterdp.util.LoggerFactory; public class ScribeMasterClusterService extends AbstractService{ private Logger logger ; private ScribeMaster sm; private ScribeMasterClusterServiceInfo serviceInfo; @Inject public void init(Injector container, LoggerFactory factory, ModuleProperties moduleProperties, ScribeMasterClusterServiceInfo serviceInfo) throws Exception { this.logger = factory.getLogger(ScribeMasterClusterService.class) ; this.serviceInfo = serviceInfo ; } public void start() throws Exception { logger.info("Starting ScribeMaster"); ScribeConsumerConfig conf = new ScribeConsumerConfig(); conf.applicationMasterMem = this.serviceInfo.applicationMasterMem; conf.appMasterClassName = this.serviceInfo.appMasterClassName; conf.appname = this.serviceInfo.appname; conf.brokerList = this.serviceInfo.getKafkaAsList(); conf.cleanStart = this.serviceInfo.cleanstart; conf.COMMIT_PATH_PREFIX = this.serviceInfo.commitPrefix; conf.commitCheckPointInterval = this.serviceInfo.commitCheckPointInterval; conf.containerMem = this.serviceInfo.containerMem; conf.hdfsPath = this.serviceInfo.hdfsPath; conf.partition = this.serviceInfo.partition; conf.PRE_COMMIT_PATH_PREFIX = this.serviceInfo.preCommitPrefix; conf.scribenginJarPath = this.serviceInfo.scribenginjar; conf.topic = null; conf.date_partitioner = this.serviceInfo.date_partitioner; sm = new ScribeMaster(this.serviceInfo.getTopicsAsList(), conf); if(! this.serviceInfo.mode.matches("yarn")){ sm.setScribeConsumerManager(new ClusterScribeConsumerManager()); } else{ sm.setScribeConsumerManager(new YarnScribeConsumerManager()); } sm.start(); //Thread.sleep(5000); //sm.checkOnConsumersThreaded(1000); logger.info("Starting ScribeMaster Complete"); } public void stop() { logger.info("Stopping ScribeMaster"); sm.stop(); logger.info("Stopping ScribeMaster Complete"); } }