ml.shifu.guagua.worker
类 AbstractWorkerComputable<MASTER_RESULT extends Bytable,WORKER_RESULT extends Bytable,KEY extends Bytable,VALUE extends Bytable>

java.lang.Object
  继承者 ml.shifu.guagua.worker.AbstractWorkerComputable<MASTER_RESULT,WORKER_RESULT,KEY,VALUE>
类型参数:
MASTER_RESULT - master result for computation in each iteration.
WORKER_RESULT - worker result for computation in each iteration.
KEY - key type for each record
VALUE - value type for each record
所有已实现的接口:
WorkerComputable<MASTER_RESULT,WORKER_RESULT>

public abstract class AbstractWorkerComputable<MASTER_RESULT extends Bytable,WORKER_RESULT extends Bytable,KEY extends Bytable,VALUE extends Bytable>
extends Object
implements WorkerComputable<MASTER_RESULT,WORKER_RESULT>

Abstract implementation to load data one by one.

To load data successfully, one must make sure initialize GuaguaRecordReader firstly.

TODO how to add the first iteration to computation.

TODO add multi-thread version to load data.


构造方法摘要
AbstractWorkerComputable()
           
 
方法摘要
 WORKER_RESULT compute(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
          Computation for each iteration.
abstract  WORKER_RESULT doCompute(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
          Real computation logic after data loading.
 GuaguaRecordReader<KEY,VALUE> getRecordReader()
           
abstract  void init(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
          Initialization work for the whole computation
abstract  void initRecordReader(GuaguaFileSplit fileSplit)
          Each GuaguaFileSplit must be initialized before loading data.
abstract  void load(KEY currentKey, VALUE currentValue, WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
          Load data one by one before computation.
protected  void postLoad(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
          Do some post work before loading data.
protected  void preLoad(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
          Do some pre work before loading data.
 void setRecordReader(GuaguaRecordReader<KEY,VALUE> recordReader)
           
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

AbstractWorkerComputable

public AbstractWorkerComputable()
方法详细信息

compute

public WORKER_RESULT compute(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
                                      throws IOException
从接口 WorkerComputable 复制的描述
Computation for each iteration.

指定者:
接口 WorkerComputable<MASTER_RESULT extends Bytable,WORKER_RESULT extends Bytable> 中的 compute
参数:
workerContext - worker context instance which includes worker info for each iteration.
抛出:
IOException - If any io exception in computation, for example, IOException in reading data.

preLoad

protected void preLoad(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
Do some pre work before loading data.


postLoad

protected void postLoad(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
Do some post work before loading data.


initRecordReader

public abstract void initRecordReader(GuaguaFileSplit fileSplit)
                               throws IOException
Each GuaguaFileSplit must be initialized before loading data.

抛出:
IOException

init

public abstract void init(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
Initialization work for the whole computation


doCompute

public abstract WORKER_RESULT doCompute(WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
Real computation logic after data loading.


load

public abstract void load(KEY currentKey,
                          VALUE currentValue,
                          WorkerContext<MASTER_RESULT,WORKER_RESULT> workerContext)
Load data one by one before computation.


getRecordReader

public GuaguaRecordReader<KEY,VALUE> getRecordReader()

setRecordReader

public void setRecordReader(GuaguaRecordReader<KEY,VALUE> recordReader)


Copyright © 2014. All Rights Reserved.