MASTER_RESULT - master computation result in each iteration.WORKER_RESULT - worker computation result in each iteration.public class GuaguaMasterService<MASTER_RESULT extends Bytable,WORKER_RESULT extends Bytable> extends Object implements GuaguaService
GuaguaMasterService is the basic implementation as a master for whole guagua application process.
All the properties used to create computable instance, interceptor instances are set in props.
After masterComputable, masterInterceptors are constructed, they will be used in start(),
run(Progressable), stop() to do the whole iteration logic.
GuaguaMasterService is only a skeleton and all implementations are in the interceptors and computable classes
defined by user.
The execution order of preXXXX is different with postXXXX. For preXXX, the order is FIFO, but for postXXX, the order is FILO.
| Constructor and Description |
|---|
GuaguaMasterService() |
| Modifier and Type | Method and Description |
|---|---|
void |
addMasterInterceptors(MasterInterceptor<MASTER_RESULT,WORKER_RESULT> masterInterceptor) |
String |
getAppId() |
String |
getContainerId() |
MasterContext<MASTER_RESULT,WORKER_RESULT> |
getContext() |
InMemoryCoordinator<MASTER_RESULT,WORKER_RESULT> |
getCoordinator() |
MasterComputable<MASTER_RESULT,WORKER_RESULT> |
getMasterComputable() |
List<MasterInterceptor<MASTER_RESULT,WORKER_RESULT>> |
getMasterInterceptors() |
String |
getMasterResultClassName() |
double |
getMinWorkersRatio() |
long |
getMinWorkersTimeOut() |
Properties |
getProps() |
int |
getTotalIteration() |
String |
getWorkerResultClassName() |
int |
getWorkers() |
void |
init(Properties props)
Parameter initialization, such as set result class name, iteration number and so on.
|
protected MASTER_RESULT |
iterate(MasterContext<MASTER_RESULT,WORKER_RESULT> context,
int iteration,
Progressable progress)
Call each iteration computation and preIteration, postIteration in interceptors.
|
void |
run(Progressable progress)
Iterate
MasterComputable.compute(MasterContext), and set hook point before and after each iteration. |
void |
setAppId(String appId)
App id for whole application.
|
void |
setContainerId(String containerId)
Set the unique container id for master or worker.
|
void |
setCoordinator(InMemoryCoordinator<MASTER_RESULT,WORKER_RESULT> coordinator) |
void |
setMasterComputable(MasterComputable<MASTER_RESULT,WORKER_RESULT> masterComputable) |
void |
setMasterInterceptors(List<MasterInterceptor<MASTER_RESULT,WORKER_RESULT>> masterInterceptors) |
void |
setMasterResultClassName(String masterResultClassName) |
void |
setMinWorkersRatio(double minWorkersRatio) |
void |
setMinWorkersTimeOut(long minWorkersTimeOut) |
void |
setProps(Properties props) |
void |
setSplits(List<GuaguaFileSplit> splits)
Assign splits to each worker to make them load that data.
|
void |
setTotalIteration(int totalIteration) |
void |
setWorkerResultClassName(String workerResultClassName) |
void |
setWorkers(int workers) |
void |
start()
Start point for the service.
|
void |
stop()
Stop services from interceptors which is used for resource cleaning or servers shutting down.
|
public void start()
GuaguaServicestart in interface GuaguaServicepublic void run(Progressable progress)
MasterComputable.compute(MasterContext), and set hook point before and after each iteration.run in interface GuaguaServiceprotected MASTER_RESULT iterate(MasterContext<MASTER_RESULT,WORKER_RESULT> context, int iteration, Progressable progress)
public void stop()
stop in interface GuaguaServicepublic void init(Properties props)
init in interface GuaguaServiceprops - which contains different properties for master and workers to use.public void setSplits(List<GuaguaFileSplit> splits)
GuaguaServicesetSplits in interface GuaguaServicepublic String getAppId()
public void setAppId(String appId)
GuaguaServicesetAppId in interface GuaguaServicepublic String getContainerId()
public void setContainerId(String containerId)
GuaguaServicesetContainerId in interface GuaguaServicepublic MasterContext<MASTER_RESULT,WORKER_RESULT> getContext()
public MasterComputable<MASTER_RESULT,WORKER_RESULT> getMasterComputable()
public void setMasterComputable(MasterComputable<MASTER_RESULT,WORKER_RESULT> masterComputable)
public List<MasterInterceptor<MASTER_RESULT,WORKER_RESULT>> getMasterInterceptors()
public void setMasterInterceptors(List<MasterInterceptor<MASTER_RESULT,WORKER_RESULT>> masterInterceptors)
public void addMasterInterceptors(MasterInterceptor<MASTER_RESULT,WORKER_RESULT> masterInterceptor)
public int getTotalIteration()
public void setTotalIteration(int totalIteration)
public int getWorkers()
public void setWorkers(int workers)
public Properties getProps()
public void setProps(Properties props)
public String getMasterResultClassName()
public void setMasterResultClassName(String masterResultClassName)
public String getWorkerResultClassName()
public void setWorkerResultClassName(String workerResultClassName)
public double getMinWorkersRatio()
public long getMinWorkersTimeOut()
public void setMinWorkersRatio(double minWorkersRatio)
public void setMinWorkersTimeOut(long minWorkersTimeOut)
public InMemoryCoordinator<MASTER_RESULT,WORKER_RESULT> getCoordinator()
public void setCoordinator(InMemoryCoordinator<MASTER_RESULT,WORKER_RESULT> coordinator)
Copyright © 2019. All Rights Reserved.