Hbase源码之HMaster
2012-12-19 20:16
337 查看
HMaster是Hbase中管理数据库元数据的服务器。
1、HMaster由下述的几组线程为其服务:
1)RootScanner:根节点HRegion的扫描线程;
2)MetaScanner:Meta节点HRegion的扫描线程;
3)LeaseMonitor:HMaster与外部客户交互时,会用到一些资源,当外部客户没有发送心跳信息时,会需要释放这些资源,Leases线程用来处理这个任务;
4)提供Master信息的一组web服务线程;
5)提供两组RPC服务(HMasterInterface、HMasterRegionInterface)的一组线程,包括1个Responder、1个Listener、默认10个Handler;
6)HMaster自身主线程:循环从delayedToDoQueue、toDoQueue两个队列中获取操作,并处理;
2、实现了两组rpc服务(协议),其中HMasterInterface如下:
1)判断Master是否可用;
2)创建一个表;
3)删除一个表;
4)将一个列加到一个表中;
5)修改表中的某个列;
6)删除列;
7)激活一个表;
8)disable一个表;
9)关闭HBase集群;
10)得到Root节点Region路径;
HMasterRegionInterface如下:
1)HRegionServer初次启动时,进行注册;
2)更新租约,向Master报告RegionServer的行为,并领取新的指令;
1、HMaster由下述的几组线程为其服务:
1)RootScanner:根节点HRegion的扫描线程;
2)MetaScanner:Meta节点HRegion的扫描线程;
3)LeaseMonitor:HMaster与外部客户交互时,会用到一些资源,当外部客户没有发送心跳信息时,会需要释放这些资源,Leases线程用来处理这个任务;
4)提供Master信息的一组web服务线程;
5)提供两组RPC服务(HMasterInterface、HMasterRegionInterface)的一组线程,包括1个Responder、1个Listener、默认10个Handler;
6)HMaster自身主线程:循环从delayedToDoQueue、toDoQueue两个队列中获取操作,并处理;
2、实现了两组rpc服务(协议),其中HMasterInterface如下:
1)判断Master是否可用;
public boolean isMasterRunning();
2)创建一个表;
public void createTable(HTableDescriptor desc) throws IOException;
3)删除一个表;
public void deleteTable(Text tableName) throws IOException;
4)将一个列加到一个表中;
public void addColumn(Text tableName, HColumnDescriptor column) throws IOException;
5)修改表中的某个列;
public void modifyColumn(Text tableName, Text columnName, HColumnDescriptor descriptor) throws IOException;
6)删除列;
public void deleteColumn(Text tableName, Text columnName) throws IOException;
7)激活一个表;
public void enableTable(Text tableName) throws IOException;
8)disable一个表;
public void disableTable(Text tableName) throws IOException;
9)关闭HBase集群;
public void shutdown() throws IOException;
10)得到Root节点Region路径;
public HServerAddress findRootRegion();
HMasterRegionInterface如下:
1)HRegionServer初次启动时,进行注册;
public HbaseMapWritable regionServerStartup(HServerInfo info) throws IOException;
2)更新租约,向Master报告RegionServer的行为,并领取新的指令;
public HMsg[] regionServerReport(HServerInfo info, HMsg msgs[]) throws IOException;
相关文章推荐
- HBase1.0.0版源码分析之HMaster启动代码分析(1)
- Hbase0.96源码之HMaster(二)Hmaster主要循环becomeActiveMaster
- Hbase0.96源码之HMaster(一)
- hbase源码系列(六)HMaster启动过程
- HBase源码解析(一) HMaster启动流程
- HBase-HMaster源码分析
- HBase1.0.0版源码分析之HMaster启动代码分析(2)
- Hbase0.96源码之HMaster(一)
- HBase源码解析(二) HMaster主要类成员解析
- HBase的Compact和Split源码分析与应用--基于0.94.5
- org.apache.hadoop.hbase.master.HMasterCommandLine: Master exiting java.lang.RuntimeException: HMaster Aborted
- HBase中MemStore flush的源码解析
- HBase BlockCache机制讲解&源码分析
- hbase服务端源码分析
- HBase源码系列(一)客户端入口HTable
- HBase的Hmaster,HRegionsever,Region,Hstore,memstore,Hfile的关系
- HBase源码分析之Region上线
- HBase源码系列(六)HBase存储结构与StoreFile存储格式
- Hbase启动的时候出现:[RpcServer.handler=28,port=60000] ipc.RpcServer: RpcServer.handler=28,port=60000: exiting,master.HMasterCommandLine: Master exiting
- Hbase0.96源代码之HMaster(三)Hmaster主要循环