org.apache.hadoop.hbase.procedure
Class MasterProcedureManager
java.lang.Object
org.apache.hadoop.hbase.procedure.ProcedureManager
org.apache.hadoop.hbase.procedure.MasterProcedureManager
- All Implemented Interfaces:
- Stoppable
- Direct Known Subclasses:
- SnapshotManager
@InterfaceAudience.Private
@InterfaceStability.Evolving
public abstract class MasterProcedureManager
- extends ProcedureManager
- implements Stoppable
A life-cycle management interface for globally barriered procedures on master.
See the following doc on details of globally barriered procedure:
https://issues.apache.org/jira/secure/attachment/12555103/121127-global-barrier-proc.pdf
To implement a custom globally barriered procedure, user needs to extend two classes:
MasterProcedureManager
and RegionServerProcedureManager
. Implementation of
MasterProcedureManager
is loaded into HMaster
process via configuration
parameter 'hbase.procedure.master.classes', while implementation of
RegionServerProcedureManager
is loaded into HRegionServer
process via
configuration parameter 'hbase.procedure.regionserver.classes'.
An example of globally barriered procedure implementation is SnapshotManager
and
RegionServerSnapshotManager
.
A globally barriered procedure is identified by its signature (usually it is the name of the
procedure znode). During the initialization phase, the initialize methods are called by both
HMaster
and HRegionServer
witch create the procedure znode and register the
listeners. A procedure can be triggered by its signature and an instant name (encapsulated in
a HBaseProtos.ProcedureDescription
object). When the servers are shutdown, the stop methods on both
classes are called to clean up the data associated with the procedure.
MasterProcedureManager
public MasterProcedureManager()
initialize
public abstract void initialize(MasterServices master,
MetricsMaster metricsMaster)
throws org.apache.zookeeper.KeeperException,
IOException,
UnsupportedOperationException
- Initialize a globally barriered procedure for master.
- Parameters:
master
- Master service interface
- Throws:
org.apache.zookeeper.KeeperException
IOException
UnsupportedOperationException
execProcedure
public abstract void execProcedure(HBaseProtos.ProcedureDescription desc)
throws IOException
- Execute a distributed procedure on cluster
- Parameters:
desc
- Procedure description
- Throws:
IOException
isProcedureDone
public abstract boolean isProcedureDone(HBaseProtos.ProcedureDescription desc)
throws IOException
- Check if the procedure is finished successfully
- Parameters:
desc
- Procedure description
- Returns:
- true if the specified procedure is finished successfully
- Throws:
IOException
Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.