package com.neverwinterdp.scribengin.cluster; import java.util.LinkedList; import java.util.List; import com.google.inject.Inject; import com.google.inject.name.Named; import com.neverwinterdp.scribengin.hostport.HostPort; import com.neverwinterdp.server.service.ServiceInfo; public class ScribeMasterClusterServiceInfo extends ServiceInfo { @Inject @Named("scribemaster:topics") private String topics; @Inject(optional=true) @Named("scribemaster:preCommitPrefix") public String preCommitPrefix="/tmp"; @Inject(optional=true) @Named("scribemaster:commitPrefix") public String commitPrefix="/committed"; @Inject(optional=true) @Named("scribemaster:hdfsPath") public String hdfsPath = null; @Inject(optional=true) @Named("scribemaster:partition") public int partition=0; @Inject @Named("scribemaster:brokerList") public String brokerList; // list of (host:port)s @Inject(optional=true) @Named("scribemaster:commitCheckPointInterval") public long commitCheckPointInterval=500; // ms @Inject(optional=true) @Named("scribemaster:cleanStart") public boolean cleanstart = false; @Inject(optional=true) @Named("scribemaster:date_partitioner") public String date_partitioner = null; //////////////////////// //Yarn config parameters @Inject(optional=true) @Named("scribemaster:appName") public String appname = "ScribeConsumer"; @Inject(optional=true) @Named("scribemaster:scribenginJar") public String scribenginjar = "/scribengin-1.0-SNAPSHOT.jar"; @Inject(optional=true) @Named("scribemaster:appMasterClassName") public String appMasterClassName = com.neverwinterdp.scribengin.yarn.ScribenginAM.class.getName(); @Inject(optional=true) @Named("scribemaster:containerMem") public int containerMem = 1024; @Inject(optional=true) @Named("scribemaster:applicationMasterMem") public int applicationMasterMem = 300; @Inject(optional=true) @Named("scribemaster:mode") public String mode = "distributed"; public String getTopics(){ return topics;} public List<String> getTopicsAsList(){ List<String> ret = new LinkedList<String>(); String[] split = this.topics.split(","); for(String x: split){ ret.add(x); } return ret; } public List<HostPort> getKafkaAsList(){ List<HostPort> res = new LinkedList<HostPort>(); String[] splitBrokers = this.brokerList.split(","); for(String x: splitBrokers){ String[] split = x.split(":"); res.add(new HostPort(split[0],split[1])); } return res; } }